Hello,
I'm not a regular subscriber to this list. I'm just following the suggestion in the README. Please excuse me if this bug has already been hashed to death.
I ran into a problem installing GPC(gpc-19990118) after the compile. I am running Solaris 2.7 (sparc) with gcc 2.8.1. I copied the "p" directory to the gcc-2.8.1 source directory. Installed the patches. Compiled C/C++/GPC without a problem. The problem started when I tried to "make install". Particularly, in the "pascal.install-info" section. Anyway, I tracked it down to a problem in the "Make-lang.in" file. Basicly, in the "Make-lang.in", whenever you had a "cd" before a call to ($INSTALL_DATA) the Makefile couldn't find "./install.sh -c". Also, I had to remove the "$$f" (files) from the Target-Dir option to "install.sh"
I hope this helps,
__Jim O'Dell
Here's the Make-lang.in I used to install GPC ********************************************************************** # -*- mode: makefile-mode -*- # Top level makefile fragment for GNU Pascal. # Copyright (C) 1994, 1995 Free Software Foundation, Inc.
#This file is part of GNU Pascal.
#GNU Pascal is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation; either version 2, or (at your option) #any later version.
#GNU Pascal is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details.
#You should have received a copy of the GNU General Public License #along with GNU Pascal; see the file COPYING. If not, write to #the Free Software Foundation, 59 Temple Place - Suite 330, #Boston, MA 02111-1307, USA.
# This file provides the language dependent support in the main Makefile. # Each language makefile fragment must provide the following targets: # # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, # foo.info, foo.dvi, # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, # foo.uninstall, foo.distdir, # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 # # where `foo' is the name of the language. # # It should also provide rules for: # # - making any compiler driver (eg: gpc) # - the compiler proper (eg: gpc1) # - define the names for selecting the language in LANGUAGES.
# Can be overwritten for DJGPP host HARDLINK=ln
# Where to install the demos (relative to the prefix) DEMO_DIR=doc/gpc/demos demodir=$(prefix)/$(DEMO_DIR)
# Analogous to objext interfaceext=.gpi
# Version numbers gpc_major=2 gpc_minor=0 gpc_release=19990118 gpc_version=$(gpc_release) rts_version=$(gpc_release)
# Extra flags to pass to recursive makes. GPC_FLAGS_TO_PASS = \ "CROSS=$(CROSS)" \ "X_CFLAGS=$(X_CFLAGS)" \ "GPC_EGCS_FLAG=$(GPC_EGCS_FLAG)" \ "EXTRA_LIBS=$(EXTRA_LIBS)" \ "MAYBE_TARGET_DEFAULT=$(MAYBE_TARGET_DEFAULT)" \ "MAYBE_USE_COLLECT2=$(MAYBE_USE_COLLECT2)" \ "SCHED_CFLAGS=$(SCHED_CFLAGS)" \ "includedir=`echo '$(includedir)'|sed -e 's/\$$/\\&&/g'`" \ "libsubdir=`echo '$(libsubdir)'|sed -e 's/\$$/\\&&/g'`" \ "target_alias=$(target_alias)" \ "gpc_version=$(gpc_version)" \ "rts_version=$(rts_version)" \ "version=$(version)" # "LIBS=`echo "$(LIBS)"|sed -e 's,../libiberty/libiberty.a,../../libiberty/libiberty.a,g' -e 's,obstack.o,../obstack.o,g'`" \
# Extra flags to pass when building the RTS. RTS_FLAGS_TO_PASS = \ CROSS="$(CROSS)" \ AR_FLAGS="$(AR_FLAGS)" \ AR_FOR_TARGET="$(AR_FOR_TARGET)" \ BISON="$(BISON)" \ BISONFLAGS="$(BISONFLAGS)" \ CFLAGS="$(CFLAGS)" \ X_CFLAGS="$(X_CFLAGS)" \ LDFLAGS="$(LDFLAGS)" \ RANLIB="$(RANLIB)" \ RANLIB_TEST="$(RANLIB_TEST)" \ RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)" \ RANLIB_TEST_FOR_TARGET="$(RANLIB_TEST_FOR_TARGET)" \ SHELL="$(SHELL)"
# Actual names to use when installing a native compiler. GPC_INSTALL_NAME = `t='$(program_transform_name)'; echo gpc | sed $$t`
# Additional driver aliases. PC_INSTALL_NAME = `t='$(program_transform_name)'; echo pc | sed $$t` EPC_INSTALL_NAME = `t='$(program_transform_name)'; echo epc | sed $$t` BPC_INSTALL_NAME = `t='$(program_transform_name)'; echo bpc | sed $$t`
# Actual names to use when installing a cross-compiler. GPC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gpc | sed $$t`
# Additional cross driver aliases. PC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo pc | sed $$t` EPC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo epc | sed $$t` BPC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo bpc | sed $$t`
# The GPC to use for compiling libgpc.a # Usually the one we just built. GPC_FOR_TARGET = ./xgpc -B./
# Define the names for selecting Pascal in LANGUAGES. Pascal pascal: xgpc$(exeext) gpc1$(exeext) gpc-cpp$(exeext) pascal.rts specs
# Tell GNU make to ignore these if they exist. .PHONY: Pascal pascal
GPC_SRCS = \ $(srcdir)/c-aux-info.c \ $(srcdir)/c-iterate.c \ $(srcdir)/c-pragma.c \ $(srcdir)/convert.c \ $(srcdir)/dbxout.c \ $(srcdir)/expr.c \ $(srcdir)/fold-const.c \ $(srcdir)/function.c \ $(srcdir)/optabs.c \ $(srcdir)/stor-layout.c \ $(srcdir)/toplev.c \ $(srcdir)/tree.c \ $(srcdir)/p/assert_.h \ $(srcdir)/p/circle-buf.c \ $(srcdir)/p/circle-buf.h \ $(srcdir)/p/gbe.h \ $(srcdir)/p/gpc-common.c \ $(srcdir)/p/gpc-convert.c \ $(srcdir)/p/gpc-decl.c \ $(srcdir)/p/gpc-defs.h \ $(srcdir)/p/gpc-lang.c \ $(srcdir)/p/gpc-lang.h \ $(srcdir)/p/gpc-lex.c \ $(srcdir)/p/gpc-typeck.c \ $(srcdir)/p/gpi-hash.c \ $(srcdir)/p/gpi-hash.h \ $(srcdir)/p/lang-options.h \ $(srcdir)/p/lang-specs.h \ $(srcdir)/p/mkstemp.c \ $(srcdir)/p/module.c \ $(srcdir)/p/module.h \ $(srcdir)/p/objects.c \ $(srcdir)/p/objects.h \ $(srcdir)/p/parse.y \ $(srcdir)/p/setop.c \ $(srcdir)/p/setop.h \ $(srcdir)/p/rts.c \ $(srcdir)/p/rts.h \ $(srcdir)/p/types.c \ $(srcdir)/p/types.h \ $(srcdir)/p/util.c \ $(srcdir)/p/util.h \ $(srcdir)/p/version.c
GPC_TEXI = $(srcdir)/p/doc/gpc.texi \ $(srcdir)/p/doc/copying.texi \ $(srcdir)/p/doc/funding.texi \ $(srcdir)/p/doc/lookfeel.texi \ $(srcdir)/p/doc/gnu.texi \ $(srcdir)/p/doc/contributors.texi \ $(srcdir)/p/doc/welcome.texi \ $(srcdir)/p/doc/install.texi \ $(srcdir)/p/doc/invoke.texi \ $(srcdir)/p/doc/programming.texi \ $(srcdir)/p/doc/reference.texi \ $(srcdir)/p/doc/keywords.texi \ $(srcdir)/p/doc/builtin.texi \ $(srcdir)/p/doc/extend.texi \ $(srcdir)/p/doc/borland2ep.texi \ $(srcdir)/p/doc/bpqstart.texi \ $(srcdir)/p/doc/bugs.texi \ $(srcdir)/p/doc/support.texi \ $(srcdir)/p/doc/how-to-contrib.texi \ $(srcdir)/p/doc/gpc-source.texi \ $(srcdir)/p/doc/notes.texi \ $(srcdir)/p/doc/pvs.texi \ $(srcdir)/p/doc/sets.texi
p/gpc.o: $(srcdir)/p/gpc.c $(CONFIG_H) gansidecl.h multilib.h Makefile $(lang_specs_files) $(CC) -DGPC $(GPC_EGCS_FLAG) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DGPC_MAJOR=""$(gpc_major)"" \ -DGPC_MINOR=""$(gpc_minor)"" \ -DGPC_RELEASE=""$(gpc_release)"" \ $(DRIVER_DEFINES) \ -c `echo $(srcdir)/p/gpc.c | sed 's,^./,,'` -o $@
p/gpc_date: date '+%h %e %Y' > $@
p/gpc_time: date '+%H:%M:%S' > $@
p/version.o: p/gpc_date p/gpc_time $(srcdir)/p/version.c config.status $(CC) -DGPC $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DGPC_TIME=""`cat p/gpc_time`"" \ -DGPC_DATE=""`cat p/gpc_date`"" \ -DGCC_VERSION=""$(version)"" \ -DGPC_VERSION=""$(gpc_version)"" \ -c `echo $(srcdir)/p/version.c | sed 's,^./,,'` -o $@
p/mkstemp.o: p/mkstemp.c $(CC) -DGPC $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $< -o $@
# We call this executable `xgpc' rather than `gpc' # to avoid confusion if the current directory is in the path # and PC is `gpc'. It is renamed to `gpc' when it is installed. xgpc$(exeext): p/gpc.o version.o choose-temp.o pexecute.o prefix.o p/version.o \ p/mkstemp.o $(LIBDEPS) $(EXTRA_GCC_OBJS) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ p/gpc.o prefix.o p/version.o \ choose-temp.o pexecute.o p/mkstemp.o $(EXTRA_GCC_OBJS) $(LIBS) $(EXTRA_LIBS)
# Also create gpc-cross, so that pascal.install-common will install properly. gpc-cross$(exeext): xgpc$(exeext) cp xgpc$(exeext) gpc-cross$(exeext)
gpc1$(exeext): $(P) $(GPC_SRCS) $(LIBDEPS) stamp-objlist c-aux-info.o \ c-iterate.o c-pragma.o choose-temp.o pexecute.o p/mkstemp.o p/version.c cd p; $(MAKE) $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) ../gpc1$(exeext)
gpc-cpp$(exeext): $(P) mbchar.o cexp.o $(srcdir)/p/gpc-cccp.c $(srcdir)/p/version.c cd p; $(MAKE) $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) ../gpc-cpp$(exeext)
pascal.rts: p/rts/Makefile case "$(LANGUAGES)" in \ *pascal*) cd p/rts && $(MAKE) \ GCC_FOR_TARGET="`case '$(GCC_FOR_TARGET)' in \ './xgcc -B./'*) echo ../../xgcc -B../../;; \ *) echo '$(GCC_FOR_TARGET)';; esac`" \ GPC_FOR_TARGET="`case '$(GPC_FOR_TARGET)' in \ './xgpc -B./'*) echo ../../xgpc -B../../;; \ *) echo '$(GPC_FOR_TARGET)';; esac`" \ GCC_FLAGS="$(GCC_FLAGS)" $(RTS_FLAGS_TO_PASS) \ all ;; \ esac
# The configuration of the runtime system relies on an autoconf-type # configure, not a Cygnus-type one. It needs to be run *after* the # appropriate (cross-)compiler has been built, thus depend on GCC_PARTS. # `stmp-headers' ensures that float.h has been built. # dj: Depending on $(GCC_PARTS) here is bad news - very bad news. # mk: but it needs $(EXTRA_OBJS) and $(LIBGCC), what to do? p/rts/Makefile: $(srcdir)/p/rts/Makefile.in $(srcdir)/p/rts/configure \ $(GCC_PARTS) stmp-headers if [ -d p/rts ]; then true; else mkdir p/rts; fi src=`cd $(srcdir); pwd`; \ cd p/rts; \ CC="`case '$(GCC_FOR_TARGET)' in \ './xgcc -B./'*) echo ../../xgcc -B../../;; \ *) echo '$(GCC_FOR_TARGET)';; esac`" \ PC="`case '$(GPC_FOR_TARGET)' in \ './xgpc -B./'*) echo ../../xgpc -B../../;; \ *) echo '$(GPC_FOR_TARGET)';; esac`" \ $(RTS_FLAGS_TO_PASS) CONFIG_SITE=nonexisting-file $(SHELL) \ $${src}/p/rts/configure --srcdir=$${src}/p/rts
# Derive parts of the documentation of the run time library directly # from the source. p/doc/gpcpas.texi: $(srcdir)/p/rts/gpc.pas if [ -d p/doc ]; then true; else mkdir p/doc; fi sed -e 's/[@{}]/@&/g' < $(srcdir)/p/rts/gpc.pas > p/doc/gpcpas.texi # Build hooks:
pascal.all.build: xgpc$(exeext) pascal.all.cross: gpc-cross$(exeext) pascal.start.encap: pascal.rest.encap:
pascal.info: p/doc/gpc.info pascal.dvi: p/doc/gpc.dvi
p/doc/gpc.info: $(GPC_TEXI) p/doc/gpcpas.texi if [ -d p/doc ]; then true; else mkdir p/doc; fi src=`cd $(srcdir); pwd`; \ cd p/doc; $(MAKEINFO) -I$${src}/p/doc -o gpc.info $${src}/p/doc/gpc.texi
p/doc/gpc.dvi: $(GPC_TEXI) p/doc/gpcpas.texi if [ -d p/doc ]; then true; else mkdir p/doc; fi $(TEXI2DVI) -I$(srcdir)/p -o p/doc/gpc.dvi $(srcdir)/p/doc/gpc.texi
$(srcdir)/p/INSTALL: $(srcdir)/p/doc/install.texi cd $(srcdir)/p; $(MAKEINFO) -DINSTALLONLY --no-header \ --no-split doc/install.texi -o INSTALL
# Install hooks: # gpc1 is installed elsewhere as part of $(COMPILERS).
unitsubdir=$(libsubdir)/units
pascal.install-normal: install-gpc-cpp install-libgpc pascal.install-units pascal.install-demos
install-gpc-cpp: gpc-cpp$(exeext) -rm -f $(libsubdir)/gpc-cpp$(exeext) $(INSTALL_PROGRAM) gpc-cpp$(exeext) $(libsubdir)/gpc-cpp$(exeext)
install-libgpc: pascal.install-dir pascal.rts -if [ -f libgpc.a ] ; then \ rm -f $(libsubdir)/libgpc.a; \ $(INSTALL_DATA) libgpc.a $(libsubdir)/libgpc.a; \ if $(RANLIB_TEST_FOR_TARGET) ; then \ (cd $(libsubdir); $(RANLIB_FOR_TARGET) libgpc.a); else true; fi; \ chmod a-x $(libsubdir)/libgpc.a; \ else true; fi
$(srcdir)/p/units/crtc.h: $(srcdir)/p/units/crt.inc (echo '/* Automatically generated from crt.inc'; \ echo ' DO NOT CHANGE THIS FILE MANUALLY! */'; \ sed -e '1,/^const/d;s/^([^=]*)= #?([^;]*);(.*;)?$$/#define \1 \2/' \ -e '/^.$$/d' < $(srcdir)/p/units/crt.inc) > $(srcdir)/p/units//crtc.h
pascal.install-units: pascal.install-dir $(srcdir)/p/units/crtc.h $(INSTALL_DATA) $(srcdir)/p/rts/gpc.pas $(unitsubdir)/gpc.pas; \ chmod a-x $(unitsubdir)/gpc.pas; \ $(INSTALL_DATA) $(srcdir)/p/rts/internal.pas $(unitsubdir)/internal.pas; \ chmod a-x $(unitsubdir)/internal.pas; \ $(INSTALL_DATA) $(srcdir)/p/rts/getopt.h $(unitsubdir)/getopt.h; \ chmod a-x $(unitsubdir)/getopt.h; \ $(INSTALL_DATA) $(srcdir)/p/rts/pexecute.h $(unitsubdir)/pexecute.h; \ chmod a-x $(unitsubdir)/pexecute.h; \ cd $(srcdir)/p/units; \ for file in *.pas *.inc *.c *.h; do \ ../../$(INSTALL_DATA) $$file $(unitsubdir); \ chmod a-x $(unitsubdir)/$$file; \ done
pascal.install-demos: pascal.install-dir cd $(srcdir)/p/demos; \ for file in *; do \ ../../$(INSTALL_DATA) $$file $(demodir); \ chmod a-x $(demodir)/$$file; \ done
# Install the driver program as $(target)-gpc # and also as either gpc (if native) or $(tooldir)/bin/gpc. pascal.install-common: -if [ -f gpc1$(exeext) ] ; then \ if [ -f gpc-cross$(exeext) ] ; then \ rm -f $(bindir)/$(GPC_CROSS_NAME)$(exeext); \ $(INSTALL_PROGRAM) gpc-cross$(exeext) $(bindir)/$(GPC_CROSS_NAME)$(exeext); \ chmod a+x $(bindir)/$(GPC_CROSS_NAME)$(exeext); \ rm -f $(bindir)/$(PC_CROSS_NAME)$(exeext); \ $(HARDLINK) $(bindir)/$(GPC_CROSS_NAME)$(exeext) $(bindir)/$(PC_CROSS_NAME)$(exeext) \ > /dev/null 2>&1 \ || cp $(bindir)/$(GPC_CROSS_NAME)$(exeext) $(bindir)/$(PC_CROSS_NAME)$(exeext) ; \ rm -f $(bindir)/$(EPC_CROSS_NAME)$(exeext); \ $(HARDLINK) $(bindir)/$(GPC_CROSS_NAME)$(exeext) $(bindir)/$(EPC_CROSS_NAME)$(exeext) \ > /dev/null 2>&1 \ || cp $(bindir)/$(GPC_CROSS_NAME)$(exeext) $(bindir)/$(EPC_CROSS_NAME)$(exeext) ; \ rm -f $(bindir)/$(BPC_CROSS_NAME)$(exeext); \ $(HARDLINK) $(bindir)/$(GPC_CROSS_NAME)$(exeext) $(bindir)/$(BPC_CROSS_NAME)$(exeext) \ > /dev/null 2>&1 \ || cp $(bindir)/$(GPC_CROSS_NAME)$(exeext) $(bindir)/$(BPC_CROSS_NAME)$(exeext) ; \ else \ rm -f $(bindir)/$(GPC_INSTALL_NAME)$(exeext); \ $(INSTALL_PROGRAM) xgpc$(exeext) $(bindir)/$(GPC_INSTALL_NAME)$(exeext); \ chmod a+x $(bindir)/$(GPC_INSTALL_NAME)$(exeext); \ rm -f $(bindir)/$(PC_INSTALL_NAME)$(exeext); \ $(HARDLINK) $(bindir)/$(GPC_INSTALL_NAME)$(exeext) $(bindir)/$(PC_INSTALL_NAME)$(exeext) \ > /dev/null 2>&1 \ || cp $(bindir)/$(GPC_INSTALL_NAME)$(exeext) $(bindir)/$(PC_INSTALL_NAME)$(exeext) ; \ rm -f $(bindir)/$(EPC_INSTALL_NAME)$(exeext); \ $(HARDLINK) $(bindir)/$(GPC_INSTALL_NAME)$(exeext) $(bindir)/$(EPC_INSTALL_NAME)$(exeext) \ > /dev/null 2>&1 \ || cp $(bindir)/$(GPC_INSTALL_NAME)$(exeext) $(bindir)/$(EPC_INSTALL_NAME)$(exeext) ; \ rm -f $(bindir)/$(BPC_INSTALL_NAME)$(exeext); \ $(HARDLINK) $(bindir)/$(GPC_INSTALL_NAME)$(exeext) $(bindir)/$(BPC_INSTALL_NAME)$(exeext) \ > /dev/null 2>&1 \ || cp $(bindir)/$(GPC_INSTALL_NAME)$(exeext) $(bindir)/$(BPC_INSTALL_NAME)$(exeext) ; \ fi ; \ fi
pascal.install-info: pascal.info -rm -f $(infodir)/gpc.info* ; if [ -f p/doc/gpc.info ]; then \ cd p/doc; \ else \ cd $(srcdir)/p/doc; \ fi; \ for f in gpc.info*; do \ ../../$(INSTALL_DATA) $$f $(infodir); \ done -chmod a-x $(infodir)/gpc.info*
pascal.install-man: $(srcdir)/p/gpc.1 -if [ -f gpc1$(exeext) ] ; then \ if [ -f gpc-cross$(exeext) ] ; then \ rm -f $(mandir)/$(GPC_CROSS_NAME)$(manext); \ $(INSTALL_DATA) $(srcdir)/p/gpc.1 $(mandir)/$(GPC_CROSS_NAME)$(manext); \ chmod a-x $(mandir)/$(GPC_CROSS_NAME)$(manext); \ for f in $(PC_CROSS_NAME) $(EPC_CROSS_NAME) $(BPC_CROSS_NAME); do \ rm -f $(mandir)/$$f$(manext); \ ln -s $(GPC_CROSS_NAME)$(manext) $(mandir)/$$f$(manext); \ done; \ else \ rm -f $(mandir)/$(GPC_INSTALL_NAME)$(manext); \ $(INSTALL_DATA) $(srcdir)/p/gpc.1 $(mandir)/$(GPC_INSTALL_NAME)$(manext); \ chmod a-x $(mandir)/$(GPC_INSTALL_NAME)$(manext); \ for f in $(PC_INSTALL_NAME) $(EPC_INSTALL_NAME) $(BPC_INSTALL_NAME); do \ rm -f $(mandir)/$$f$(manext); \ ln -s $(GPC_INSTALL_NAME)$(manext) $(mandir)/$$f$(manext); \ done; \ fi; \ else true; fi
pascal.install-dir: -for directory in $(bindir) $(libsubdir) $(unitsubdir) $(demodir) $(infodir) $(mandir); do \ if [ -d $$directory ]; then \ true; \ else \ mkdir -p $$directory; \ fi; \ done
# Install gpc1 et.al. # Do *not* overwrite files if they exist. pascal.install-compiler: pascal for file in gpc1$(exeext); do \ if [ -f $$file ] ; then \ rm -f $(libsubdir)/$$file; \ $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; \ else true; \ fi; \ done for file in $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) ..; do \ if [ x"$$file" != x.. ]; then \ if ! [ -f $(libsubdir)/$$file ]; then \ $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file; else true; fi; \ else true; fi; \ done for file in $(EXTRA_PARTS) ..; do \ if [ x"$$file" != x.. ]; then \ if ! [ -f $(libsubdir)/$$file ]; then \ $(INSTALL_DATA) $$file $(libsubdir); else true; fi; \ else true; fi; \ done # Don't mess with specs if it doesn't exist yet. -if [ -f specs ] ; then \ if ! [ -f $(libsubdir)/specs ]; then \ $(INSTALL_DATA) specs $(libsubdir)/specs; fi; \ fi # Install libgcc.a FIXME: doesn't handle multilib (multiple libgcc.a) -if [ -f libgcc.a ] ; then \ if ! [ -f $(libsubdir)/libgcc.a ]; then \ $(INSTALL_DATA) libgcc.a $(libsubdir)/libgcc.a; \ if $(RANLIB_TEST_FOR_TARGET) ; then \ (cd $(libsubdir); $(RANLIB_FOR_TARGET) libgcc.a); else true; fi; \ chmod a-x $(libsubdir)/libgcc.a; fi; \ else true; fi
# This target will install GPC into an existing GCC installation, # without overwriting existing files. # The semicolon is to prevent the install.sh -> install default rule # from doing anything. Having it run true helps avoid problems and # noise from versions of make which don't like to have null commands. pascal.install: pascal.install-dir pascal.install-compiler pascal.install-common \ pascal.install-normal pascal.install-info pascal.install-man ; @true
pascal.uninstall: -rm -rf $(bindir)/$(GPC_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(GPC_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(PC_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(PC_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(EPC_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(EPC_CROSS_NAME)$(exeext) -rm -rf $(bindir)/$(BPC_INSTALL_NAME)$(exeext) -rm -rf $(bindir)/$(BPC_CROSS_NAME)$(exeext) -rm -rf $(mandir)/$(GPC_INSTALL_NAME)$(manext) -rm -rf $(mandir)/$(GPC_CROSS_NAME)$(manext)
pascal.bindist: pascal tmp_base=`pwd`/tmp ; \ tmp_prefix=$${tmp_base}/$(prefix) ; \ if [ -d "$${tmp_prefix}" ]; \ then true; \ else mkdir -p "$${tmp_prefix}"; \ fi; \ $(MAKE) pascal.install prefix=$${tmp_prefix} exeext=$(exeext) HARDLINK=$(HARDLINK) && \ cd $${tmp_base} && tar cvzf ../gpc-$(gpc_version).$(target).tar.gz * && \ rm -rf $${tmp_base} # Clean hooks: # A lot of the ancillary files are deleted by the main makefile. # We just have to delete files specific to us.
pascal.mostlyclean: -rm -f p/*$(objext) -cd p/rts; $(MAKE) -f ../../$(srcdir)/p/rts/Makefile.in mostlyclean pascal.clean: -rm -f xgpc -cd p/rts; $(MAKE) -f ../../$(srcdir)/p/rts/Makefile.in clean -if [ -d p/test ]; then cd p/test; $(MAKE) clean; fi pascal.distclean: -cd p/rts; $(MAKE) -f ../../$(srcdir)/p/rts/Makefile.in distclean -if [ -d p/test ]; then cd p/test; $(MAKE) clean; fi -rm -f p/Makefile p/gpc-config.h p/site.exp p/site.bak units/crtc.h -rm -f p/config.cache p/config.log p/config.status -rm -f p/testsuite/gpc.log p/testsuite/gpc.sum -rm -f p/parse.output -rm -f p/gpc_date p/gpc_time -rm -f gcc-version.h # like gcc's extraclean, which does clean p/ for us, but not p/rts. pascal.extraclean: -if [ -d p/test ]; then cd p/test; $(MAKE) clean; fi -if [ -d p/test/knownbugs ]; then -cd p/test/knownbugs; $(MAKE) -f ../Makefile clean; fi -rm -f p/*/=* p/*/"#"* p/*/*~* -rm -f p/*/patch* p/*/*.orig p/*/*.rej -rm -f p/*/*.dvi p/*/*.oaux p/*/*.d p/*/*.[zZ] p/*/*.gz -rm -f p/*/*.tar p/*/*.xtar p/*/*.tar.* p/*/*.xtar.* -rm -f p/*/*lose p/*/*.s p/*/*.s[0-9] p/*/*.i pascal.maintainer-clean: -cd p/rts; $(MAKE) -f ../../$(srcdir)/p/rts/Makefile.in maintainer-clean -if [ -d p/test ]; then cd p/test; $(MAKE) clean; fi -rm -f p/doc/gpc.info* p/gpc.*aux p/TAGS p/INSTALL p/NEWS -rm -f p/parse.c p/parse.h # Stage hooks: # The main makefile has already created stage?/p.
GPCSTAGESTUFF = p/*$(objext) p/stamp-gbe p/stamp-gpc1
RTSSTAGESTUFF = p/rts/*$(objext) p/rts/*$(interfaceext) p/rts/config.cache p/rts/config.log \ p/rts/config.status p/rts/Makefile p/rts/rts-config.h
UNITSSTAGESTUFF = p/units/*$(objext) p/units/*$(interfaceext)
pascal.stage1: -if [ -d stage1/p/rts ] ; then true ; else mkdir stage1/p/rts ; fi -if [ -d stage1/p/units ] ; then true ; else mkdir stage1/p/units ; fi -mv $(GPCSTAGESTUFF) stage1/p -mv $(RTSSTAGESTUFF) stage1/p/rts -mv $(UNITSSTAGESTUFF) stage1/p/units pascal.stage2: -if [ -d stage2/p/rts ] ; then true ; else mkdir stage2/p/rts ; fi -if [ -d stage2/p/units ] ; then true ; else mkdir stage2/p/units ; fi -mv $(GPCSTAGESTUFF) stage2/p -mv $(RTSSTAGESTUFF) stage2/p/rts -mv $(UNITSSTAGESTUFF) stage2/p/units pascal.stage3: -if [ -d stage3/p/rts ] ; then true ; else mkdir stage3/p/rts ; fi -if [ -d stage3/p/units ] ; then true ; else mkdir stage3/p/units ; fi -mv $(GPCSTAGESTUFF) stage3/p -mv $(RTSSTAGESTUFF) stage3/p/rts -mv $(UNITSSTAGESTUFF) stage3/p/units pascal.stage4: -if [ -d stage4/p/rts ] ; then true ; else mkdir stage4/p/rts ; fi -if [ -d stage4/p/units ] ; then true ; else mkdir stage4/p/units ; fi -mv $(GPCSTAGESTUFF) stage4/p -mv $(RTSSTAGESTUFF) stage4/p/rts -mv $(UNITSSTAGESTUFF) stage4/p/units # Maintenance hooks:
# This target creates the files that can be rebuilt, but go in the # distribution anyway. It then copies the files to the distdir directory. pascal.distdir: mkdir tmp/p cd p ; $(MAKE) $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) parse.c hash.h cd p/doc ; $(MAKE) $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) info cd p; \ for file in *[0-9a-zA-Z+]; do \ ln $$file ../tmp/p >/dev/null 2>&1 || p $$file ../tmp/p; \ done
Jim O'Dell wrote:
I'm not a regular subscriber to this list. I'm just following the suggestion in the README. Please excuse me if this bug has already been hashed to death.
It isn't.
Basicly, in the "Make-lang.in", whenever you had a "cd" before a call to ($INSTALL_DATA) the Makefile couldn't find "./install.sh -c".
Which `make' are you using? Did you try GNU make?
Can you think of a solution that works with all `make's?
Also, I had to remove the "$$f" (files) from the Target-Dir option to "install.sh"
Okay, this should not hurt, but anyway I'd like to know why this fails on your system. What command is `make' trying to execute?
Peter
PS: The GNU Pascal mailing list has moved from gpc@hut.fi to gpc@gnu.de.