Hi
Saw in the news that gcc-3.0 is promised to release on 6/15. So downloaded gcc-core-3.0-20010525.tar.gz and using gcc-2.97.diff as a guide, created gcc-3.0.diff (attached).
caution: it does patch ok, but that's as far as I got. There could be a typo hiding in there.
enjoy Russ
Russ Whitaker wrote:
Saw in the news that gcc-3.0 is promised to release on 6/15. So downloaded gcc-core-3.0-20010525.tar.gz and using gcc-2.97.diff as a guide, created gcc-3.0.diff (attached).
caution: it does patch ok, but that's as far as I got. There could be a typo hiding in there.
Thanks. Actually, Matthias has also made a diff for 3.0 -- since I'm not involved with anything related to 3.0 (and don't really want to be), I'm putting them both in the diffs directory for Peter to have a look at them when he gets around to it ...
Frank
On Tue, 29 May 2001, I wrote:
There could be a typo hiding in there.
Found three. If you're interested can send a corrected copy.
Next steps were
../gcc-3.0-2*/configure --enable-languages=pascal make bootstrap
and it got this far:
no rule to make target 'p/Makefile' needed by 'gpc1'
Any hints ?
Russ
Russ Whitaker wrote:
On Tue, 29 May 2001, I wrote:
There could be a typo hiding in there.
Found three. If you're interested can send a corrected copy.
Yes, please.
Next steps were
../gcc-3.0-2*/configure --enable-languages=pascal make bootstrap
and it got this far:
no rule to make target 'p/Makefile' needed by 'gpc1'
I'll really have to leave this to Peter. If he won't reply (due to time reasons), you're on your own for now ...
Frank
On Fri, 1 Jun 2001, Frank Heckenbach wrote:
Russ Whitaker wrote:
If you're interested can send a corrected copy.
Yes, please.
Attachment 1 is the slightly patched mkdiff used to make attachment 2. Attachment 2 is the gcc-3.0.diff after making *.orig, *.c, etc from gcc-2.97.diff.
The patched gcc will compile without gpc.
Next steps were
../gcc-3.0-2*/configure --enable-languages=pascal make bootstrap
and it got this far:
no rule to make target 'p/Makefile' needed by 'gpc1'
I'll really have to leave this to Peter. If he won't reply (due to time reasons), you're on your own for now ...
That's OK, I can put it on the back burner for now.
Russ
Russ Whitaker writes:
The patched gcc will compile without gpc.
Next steps were
../gcc-3.0-2*/configure --enable-languages=pascal make bootstrap
and it got this far:
no rule to make target 'p/Makefile' needed by 'gpc1'
I'll really have to leave this to Peter. If he won't reply (due to time reasons), you're on your own for now ...
That's OK, I can put it on the back burner for now.
Attached are the makefiles for gcc-3.0 (dated 010522).
#!/bin/sh # This is a shell archive (produced by GNU sharutils 4.2.1). # To extract the files from this archive, save it to some FILE, remove # everything before the `!/bin/sh' line above, then type `sh FILE'. # # Made on 2001-06-04 11:33 MEST by doko@gate.klose.in-berlin.de. # Source directory was `/home/debian/src/gcc/gcc-3.0-3.0.ds5/debian/patches'. # # Existing files will *not* be overwritten unless `-c' is specified. # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 35719 -rw-r--r-- Make-lang-3.0.in # 13395 -rw-r--r-- Makefile-3.0.in # save_IFS="${IFS}" IFS="${IFS}:" gettext_dir=FAILED locale_dir=FAILED first_param="$1" for dir in $PATH do if test "$gettext_dir" = FAILED && test -f $dir/gettext \ && ($dir/gettext --version >/dev/null 2>&1) then set `$dir/gettext --version 2>&1` if test "$3" = GNU then gettext_dir=$dir fi fi if test "$locale_dir" = FAILED && test -f $dir/shar \ && ($dir/shar --print-text-domain-dir >/dev/null 2>&1) then locale_dir=`$dir/shar --print-text-domain-dir` fi done IFS="$save_IFS" if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED then echo=echo else TEXTDOMAINDIR=$locale_dir export TEXTDOMAINDIR TEXTDOMAIN=sharutils export TEXTDOMAIN echo="$gettext_dir/gettext -s" fi if touch -am -t 200112312359.59 $$.touch >/dev/null 2>&1 && test ! -f 200112312359.59 -a -f $$.touch; then shar_touch='touch -am -t $1$2$3$4$5$6.$7 "$8"' elif touch -am 123123592001.59 $$.touch >/dev/null 2>&1 && test ! -f 123123592001.59 -a ! -f 123123592001.5 -a -f $$.touch; then shar_touch='touch -am $3$4$5$6$1$2.$7 "$8"' elif touch -am 1231235901 $$.touch >/dev/null 2>&1 && test ! -f 1231235901 -a -f $$.touch; then shar_touch='touch -am $3$4$5$6$2 "$8"' else shar_touch=: echo $echo 'WARNING: not restoring timestamps. Consider getting and' $echo "installing GNU `touch', distributed in GNU File Utilities..." echo fi rm -f 200112312359.59 123123592001.59 123123592001.5 1231235901 $$.touch # if mkdir _sh02028; then $echo 'x -' 'creating lock directory' else $echo 'failed to create lock directory' exit 1 fi # ============= Make-lang-3.0.in ============== if test -f 'Make-lang-3.0.in' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'Make-lang-3.0.in' '(file already exists)' else $echo 'x -' extracting 'Make-lang-3.0.in' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'Make-lang-3.0.in' && # -*- mode: makefile-mode -*- # Top level makefile fragment for GNU Pascal. # Copyright (C) 1994, 1995, 1997-2001 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. X # 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. X # Version numbers VERSION_FILENAME = $(srcdir)/p/version.h RTS_VERSION_FILENAME = $(srcdir)/p/rts/rts-version gpc_major=2 gpc_minor=0 gpc_version=`sed -ne 's/.*GPC_VERSION_STRING *"(.*)"/\1/p' < $(VERSION_FILENAME)` rts_version=`cat $(RTS_VERSION_FILENAME)` X GPCSOLIBSHORTNAME=libgpc.so GPCSOLIBNAME=$(GPCSOLIBSHORTNAME).$(gpc_major).$(gpc_minor).$(rts_version) GPCSOLIBDIR=lib WITH_SHARED=@with_shared@ X # Can be overwritten for Dos hosts SYMLINK=ln -s X # Where to install the documentation and demos (relative to the prefix) DOC_DIR=doc/gpc docdir=$(prefix)/$(DOC_DIR) demodir=$(docdir)/demos docdemodir=$(docdir)/docdemos X # How to create the GPC binary distribution archive. tar can be given extra # flags (e.g. `--owner=root --group=root' with newer versions of GNU tar), # and for Dos hosts, MAKEGPCBINDIST needs to be overwritten completely... EXTRA_TARFLAGS= MAKEGPCBINDIST=tar -cz $(EXTRA_TARFLAGS) -f ../gpc-$$version.$(target).tar.gz X # While installing, real_prefix is the real, not temp, prefix, in order # to get symlinks right real_prefix=$(prefix) X # While installing, install_prefix is the prefix below the temp # directory. Usually equal to prefix, but on DJGPP, prefix is # '$DJDIR', but install_prefix is empty. install_prefix=$(prefix) X # Extra flags to pass to recursive makes. GPC_FLAGS_TO_PASS = \ X "srcdir=$(srcdir)/p" \ X "OBJS=$(OBJS)" \ X "CROSS=$(CROSS)" \ X "X_CFLAGS=$(X_CFLAGS)" \ X "EXTRA_LIBS=$(EXTRA_LIBS)" \ X "MAYBE_TARGET_DEFAULT=$(MAYBE_TARGET_DEFAULT)" \ X "MAYBE_USE_COLLECT2=$(MAYBE_USE_COLLECT2)" \ X "SCHED_CFLAGS=$(SCHED_CFLAGS)" \ X "includedir=`echo '$(includedir)'|sed -e 's/\$$/\\&&/g'`" \ X "libsubdir=`echo '$(libsubdir)'|sed -e 's/\$$/\\&&/g'`" \ X "target_alias=$(target_alias)" \ X "version=$(version)" \ X "target_alias=$(target_alias)" \ X "program_transform_name=$(program_transform_name)" \ X "program_transform_cross_name=$(program_transform_cross_name)" \ X "exeext=$(exeext)" \ X "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ X "GPC_FOR_TARGET=$(GPC_FOR_TARGET)" \ X "GPCSOLIBSHORTNAME=$(GPCSOLIBSHORTNAME)" \ X "GPCSOLIBDIR=$(GPCSOLIBDIR)" \ X "WITH_SHARED=$(WITH_SHARED)" # "LIBS=`echo '$(LIBS)'|sed -e 's,../libiberty/libiberty.a,../../libiberty/libiberty.a,g' -e 's,obstack.o,../obstack.o,g'`" \ X # Extra flags to pass when installing GPC. GPC_INSTALL_FLAGS_TO_PASS = \ X "exeext=$(exeext)" \ X "version=$(version)" \ X "target_alias=$(target_alias)" \ X "program_transform_name=$(program_transform_name)" \ X "program_transform_cross_name=$(program_transform_cross_name)" \ X "SYMLINK=$(SYMLINK)" \ X "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ X "GPC_FOR_TARGET=$(GPC_FOR_TARGET)" \ X "GPCSOLIBSHORTNAME=$(GPCSOLIBSHORTNAME)" \ X "GPCSOLIBDIR=$(GPCSOLIBDIR)" \ X "WITH_SHARED=$(WITH_SHARED)" \ X "FLOAT_H=$(FLOAT_H)" \ X "EXTRA_PARTS=$(EXTRA_PARTS)" X # Extra flags to pass when building the RTS. RTS_FLAGS_TO_PASS = \ X SHELL="$(SHELL)" \ X CFLAGS="$(CFLAGS)" \ X AR="$(AR_FOR_TARGET)" \ X AR_FLAGS="$(AR_FLAGS)" \ X RANLIB="$(RANLIB_FOR_TARGET)" \ X RANLIB_TEST="$(RANLIB_TEST_FOR_TARGET)" \ X RTSFLAGS="$(RTSFLAGS)" \ X DESTDIR="../.." X # Actual names to use when installing a native compiler. GPC_INSTALL_NAME = `t='$(program_transform_name)'; echo gpc | sed $$t` X # Actual names to use when installing a cross-compiler. GPC_CROSS_NAME = `t='$(program_transform_cross_name)'; echo gpc | sed $$t` X # The GPC to use for compiling libgpc.a # Usually the one we just built. GPC_FOR_TARGET = ./xgpc -B./ X ADD_RTS_PARENT_DIR = sed -e 's,-B([^/][^:]),-B../../\1,g;s,^([^/][^:]),../../\1,' X # The ' ' is there so, e.g., `-B.' will be replaced by ADD_RTS_PARENT_DIR RTS_COMPILERS = CC="`echo $(GCC_FOR_TARGET)' ' | $(ADD_RTS_PARENT_DIR)`" \ X PC="`echo $(GPC_FOR_TARGET)' ' | $(ADD_RTS_PARENT_DIR)`" X GPC_GENERATED_SRC = \ X $(srcdir)/p/parse.c \ X $(srcdir)/p/parse.h \ X $(srcdir)/p/hash.h X GPC_SRCS = \ X $(GPC_GENERATED_SRC) \ X $(srcdir)/c-aux-info.c \ X $(srcdir)/c-pragma.c \ X $(srcdir)/convert.c \ X $(srcdir)/dbxout.c \ X $(srcdir)/expr.c \ X $(srcdir)/fold-const.c \ X $(srcdir)/function.c \ X $(srcdir)/optabs.c \ X $(srcdir)/stor-layout.c \ X $(srcdir)/toplev.c \ X $(srcdir)/tree.c \ X $(srcdir)/p/circle-buf.c \ X $(srcdir)/p/circle-buf.h \ X $(srcdir)/p/gbe.h \ X $(srcdir)/p/gpc-common.c \ X $(srcdir)/p/gpc-convert.c \ X $(srcdir)/p/gpc-decl.c \ X $(srcdir)/p/gpc-defs.h \ X $(srcdir)/p/gpc-lex.c \ X $(srcdir)/p/gpc-options.h \ X $(srcdir)/p/gpc-typeck.c \ X $(srcdir)/p/gpc.gperf \ X $(srcdir)/p/gpi-hash.c \ X $(srcdir)/p/gpi-hash.h \ X $(srcdir)/p/memfiles.c \ X $(srcdir)/p/memfiles.h \ X $(srcdir)/p/lang.c \ X $(srcdir)/p/lang.h \ X $(srcdir)/p/lang-options.h \ X $(srcdir)/p/lang-specs.h \ X $(srcdir)/p/module.c \ X $(srcdir)/p/module.h \ X $(srcdir)/p/objects.c \ X $(srcdir)/p/objects.h \ X $(srcdir)/p/parse.y \ X $(srcdir)/p/rts.c \ X $(srcdir)/p/rts.h \ X $(srcdir)/p/types.c \ X $(srcdir)/p/types.h \ X $(srcdir)/p/util.c \ X $(srcdir)/p/util.h \ X $(srcdir)/p/rts/constants.h X GPC_GENERAL_TEXI = \ X $(srcdir)/p/doc/macros.texi \ X $(srcdir)/p/doc/generated/version.texi X GPC_GENERATED_TEXI = \ X $(srcdir)/p/doc/generated/version.texi \ X $(srcdir)/p/doc/generated/lang-options.texi \ X $(srcdir)/p/doc/generated/gpcpas.texi \ X $(srcdir)/p/doc/generated/crt.texi \ X $(srcdir)/p/doc/generated/dos.texi \ X $(srcdir)/p/doc/generated/dosunix.texi \ X $(srcdir)/p/doc/generated/fileutils.texi \ X $(srcdir)/p/doc/generated/gmp.texi \ X $(srcdir)/p/doc/generated/gpcutil.texi \ X $(srcdir)/p/doc/generated/heapmon.texi \ X $(srcdir)/p/doc/generated/md5.texi \ X $(srcdir)/p/doc/generated/overlay.texi \ X $(srcdir)/p/doc/generated/pipe.texi \ X $(srcdir)/p/doc/generated/ports.texi \ X $(srcdir)/p/doc/generated/printer.texi \ X $(srcdir)/p/doc/generated/regex.texi \ X $(srcdir)/p/doc/generated/strings.texi \ X $(srcdir)/p/doc/generated/stringutils.texi \ X $(srcdir)/p/doc/generated/system.texi \ X $(srcdir)/p/doc/generated/trap.texi \ X $(srcdir)/p/doc/generated/turbo3.texi \ X $(srcdir)/p/doc/generated/windos.texi \ X $(srcdir)/p/doc/generated/keyword.texi X GPC_TEXI_EN = \ X $(GPC_GENERATED_TEXI) \ X $(srcdir)/p/doc/macros.texi \ X $(srcdir)/p/doc/contributors.texi \ X $(srcdir)/p/doc/en/gpc.texi \ X $(srcdir)/p/doc/en/welcome.texi \ X $(srcdir)/p/doc/en/purpose.texi \ X $(srcdir)/p/doc/en/about.texi \ X $(srcdir)/p/doc/en/news.texi \ X $(srcdir)/p/doc/en/faq.texi \ X $(srcdir)/p/doc/en/libs.texi \ X $(srcdir)/p/doc/en/install.texi \ X $(srcdir)/p/doc/en/bpqstart.texi \ X $(srcdir)/p/doc/en/invoke.texi \ X $(srcdir)/p/doc/en/programming.texi \ X $(srcdir)/p/doc/en/reference.texi \ X $(srcdir)/p/doc/en/keywords.texi \ X $(srcdir)/p/doc/en/support.texi \ X $(srcdir)/p/doc/en/todo.texi \ X $(srcdir)/p/doc/en/internals.texi \ X $(srcdir)/p/doc/en/resources.texi \ X $(srcdir)/p/doc/en/authors.texi \ X $(srcdir)/p/doc/en/copying.texi \ X $(srcdir)/p/doc/en/gnu.texi X GPC_GENERATED_FILES = \ X $(GPC_GENERATED_SRC) \ X $(GPC_GENERATED_TEXI) \ X $(srcdir)/p/INSTALL \ X $(srcdir)/p/README \ X $(srcdir)/p/NEWS \ X $(srcdir)/p/FAQ \ X $(srcdir)/p/LIBS \ X $(srcdir)/p/AUTHORS \ X $(srcdir)/p/COPYING \ X $(srcdir)/p/units/crtc.h \ X $(srcdir)/p/rts/acconfig.h \ X $(srcdir)/p/rts/configure \ X $(srcdir)/p/rts/rts-config.in \ X $(srcdir)/p/rts/gpc.pas \ X $(srcdir)/p/test/README X GPC_DOC_DIRS=-I $(srcdir)/p/doc -I $(srcdir)/p/doc/en -I $(srcdir)/p/doc/generated X # Define the names for selecting Pascal in LANGUAGES. Pascal pascal: p/Makefile xgpc$(exeext) gpc1$(exeext) gpcpp$(exeext) pascal.rts specs \ X $(GPC_GENERATED_FILES) pascal.info pascal.docdemos X # Tell GNU make to ignore these if they exist. X.PHONY: Pascal pascal X # In gcc-3.0, `configure' no more produces `p/Makefile'. p/Makefile: force X $(srcdir)/p/script/mkdir-p p X if [ ! -f p/Makefile ] || [ $(srcdir)/p/Makefile.in -nt p/Makefile ]; then \ X cp $(srcdir)/p/Makefile.in p/Makefile; \ X else \ X true; \ X fi X # Create all files in the source directory that can be created automatically pascal.generated-files: $(GPC_GENERATED_FILES) pascal.info X pascal.cvsfiles: $(srcdir)/p/INSTALL X pascal.update-release: X ( \ X echo '/* Generated automatically by the Makefile.' && \ X echo ' DO NOT CHANGE THIS FILE MANUALLY! */' && \ X echo '' && \ X echo '#define GPC_MAJOR "$(gpc_major)"' && \ X echo '#define GPC_MINOR "$(gpc_minor)"' && \ X echo '#define GPC_VERSION_STRING "'`date '+%Y%m%d'`'"' \ X ) > $(VERSION_FILENAME) || \ X (rm -f $(VERSION_FILENAME); false) X @echo "New GPC release version is $(gpc_version)" X touch $(srcdir)/p/lang-specs.h # because GCC's Makefile doesn't know about p/version.h X cd $(srcdir)/p/rts && $(MAKE) -f Makefile.in srcdir=. rts.update-release X $(srcdir)/p/units/crtc.h: $(srcdir)/p/units/crt.inc X $(srcdir)/p/script/crtinc2h $(srcdir)/p/units/crt.inc $(srcdir)/p/units/crtc.h X # Derive parts of the documentation directly from the source. X $(srcdir)/p/doc/generated/version.texi: $(VERSION_FILENAME) X ( \ X release=$(gpc_version) && \ X echo "@c Generated automatically from `echo $(VERSION_FILENAME) | sed -e 's,.*/,,'`" && \ X echo '@c DO NOT CHANGE THIS FILE MANUALLY!' && \ X echo '' && \ X echo "@set GPCRelease $$release" && \ X echo "@set GPCversion version $$release" && \ X echo "@set GPCVersion version $$release" && \ X echo "@set GCCversion version 3.0" && \ X echo "@set GCCVersion version 3.0" \ X ) > $(srcdir)/p/doc/generated/version.texi || \ X (rm -f $(srcdir)/p/doc/generated/version.texi; false) X $(srcdir)/p/doc/generated/lang-options.texi: $(srcdir)/p/lang-options.h X $(srcdir)/p/script/lang-options2texi $(srcdir)/p/lang-options.h $(srcdir)/p/doc/generated/lang-options.texi X $(srcdir)/p/doc/generated/keyword.texi: $(srcdir)/p/gpc.gperf X $(srcdir)/p/script/gperf2texi $(srcdir)/p/gpc.gperf $(srcdir)/p/doc/generated/keyword.texi X # Use Makefile.in in RTS source directory, so this can be run from the GPC source directory $(srcdir)/p/rts/gpc.pas: X cd $(srcdir)/p/rts && $(MAKE) -f Makefile.in srcdir=. SHELL="$(SHELL)" generated-files X $(srcdir)/p/doc/generated/gpcpas.texi: $(srcdir)/p/rts/gpc.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/rts/gpc.pas $(srcdir)/p/doc/generated/gpcpas.texi X # This is stupid, but some stupid makes don't support nice pattern rules... # $(srcdir)/p/doc/generated/%.texi: $(srcdir)/p/units/%.pas # $(srcdir)/p/script/pas2texi $< $@ $(srcdir)/p/doc/generated/crt.texi: $(srcdir)/p/units/crt.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/crt.pas $(srcdir)/p/doc/generated/crt.texi $(srcdir)/p/doc/generated/dos.texi: $(srcdir)/p/units/dos.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/dos.pas $(srcdir)/p/doc/generated/dos.texi $(srcdir)/p/doc/generated/dosunix.texi: $(srcdir)/p/units/dosunix.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/dosunix.pas $(srcdir)/p/doc/generated/dosunix.texi $(srcdir)/p/doc/generated/fileutils.texi: $(srcdir)/p/units/fileutils.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/fileutils.pas $(srcdir)/p/doc/generated/fileutils.texi $(srcdir)/p/doc/generated/gmp.texi: $(srcdir)/p/units/gmp.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/gmp.pas $(srcdir)/p/doc/generated/gmp.texi $(srcdir)/p/doc/generated/gpcutil.texi: $(srcdir)/p/units/gpcutil.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/gpcutil.pas $(srcdir)/p/doc/generated/gpcutil.texi $(srcdir)/p/doc/generated/heapmon.texi: $(srcdir)/p/units/heapmon.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/heapmon.pas $(srcdir)/p/doc/generated/heapmon.texi $(srcdir)/p/doc/generated/md5.texi: $(srcdir)/p/units/md5.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/md5.pas $(srcdir)/p/doc/generated/md5.texi $(srcdir)/p/doc/generated/overlay.texi: $(srcdir)/p/units/overlay.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/overlay.pas $(srcdir)/p/doc/generated/overlay.texi $(srcdir)/p/doc/generated/pipe.texi: $(srcdir)/p/units/pipe.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/pipe.pas $(srcdir)/p/doc/generated/pipe.texi $(srcdir)/p/doc/generated/ports.texi: $(srcdir)/p/units/ports.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/ports.pas $(srcdir)/p/doc/generated/ports.texi $(srcdir)/p/doc/generated/printer.texi: $(srcdir)/p/units/printer.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/printer.pas $(srcdir)/p/doc/generated/printer.texi $(srcdir)/p/doc/generated/regex.texi: $(srcdir)/p/units/regex.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/regex.pas $(srcdir)/p/doc/generated/regex.texi $(srcdir)/p/doc/generated/strings.texi: $(srcdir)/p/units/strings.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/strings.pas $(srcdir)/p/doc/generated/strings.texi $(srcdir)/p/doc/generated/stringutils.texi: $(srcdir)/p/units/stringutils.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/stringutils.pas $(srcdir)/p/doc/generated/stringutils.texi $(srcdir)/p/doc/generated/system.texi: $(srcdir)/p/units/system.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/system.pas $(srcdir)/p/doc/generated/system.texi $(srcdir)/p/doc/generated/trap.texi: $(srcdir)/p/units/trap.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/trap.pas $(srcdir)/p/doc/generated/trap.texi $(srcdir)/p/doc/generated/turbo3.texi: $(srcdir)/p/units/turbo3.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/turbo3.pas $(srcdir)/p/doc/generated/turbo3.texi $(srcdir)/p/doc/generated/windos.texi: $(srcdir)/p/units/windos.pas X $(srcdir)/p/script/pas2texi $(srcdir)/p/units/windos.pas $(srcdir)/p/doc/generated/windos.texi X $(srcdir)/p/INSTALL: $(srcdir)/p/doc/en/install.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DINSTALLONLY --no-header --no-split install.texi -o ../INSTALL X $(srcdir)/p/README: $(srcdir)/p/doc/en/welcome.texi $(srcdir)/p/doc/en/purpose.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DREADMEONLY --no-header --no-split welcome.texi -o ../README X $(srcdir)/p/NEWS: $(srcdir)/p/doc/en/news.texi $(srcdir)/p/doc/en/welcome.texi \ X $(srcdir)/p/doc/en/purpose.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DNEWSONLY --no-header --no-split news.texi -o ../NEWS X $(srcdir)/p/FAQ: $(srcdir)/p/doc/en/faq.texi $(srcdir)/p/doc/en/purpose.texi \ X $(srcdir)/p/doc/en/libs.texi $(srcdir)/p/doc/en/support.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DFAQONLY --no-header --no-split --number-sections faq.texi -o ../FAQ X $(srcdir)/p/LIBS: $(srcdir)/p/doc/en/libs.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DLIBSONLY --no-header --no-split libs.texi -o ../LIBS X $(srcdir)/p/AUTHORS: $(srcdir)/p/doc/en/authors.texi $(srcdir)/p/doc/contributors.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DAUTHORSONLY --no-header --no-split authors.texi -o ../AUTHORS X $(srcdir)/p/COPYING: $(srcdir)/p/doc/en/copying.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DCOPYINGONLY --no-header --no-split copying.texi -o ../COPYING X $(srcdir)/p/test/README: $(srcdir)/p/doc/en/support.texi $(GPC_GENERAL_TEXI) X cd $(srcdir)/p/doc && makeinfo -I en -I generated -DTESTREADMEONLY --no-header --no-split support.texi -o ../test/README X pascal.docdemos: p/stamp-docdemos p/stamp-docdemos: $(GPC_TEXI_EN) X rm -rf p/docdemos X $(srcdir)/p/script/mkdir-p p/docdemos X $(srcdir)/p/script/extract-doc-demos -o p/docdemos $(srcdir)/p/doc/*.texi $(srcdir)/p/doc/generated/*.texi $(srcdir)/p/doc/en/*.texi X touch p/stamp-docdemos X p/gpc.o: $(srcdir)/p/gpc.c $(CONFIG_H) gansidecl.h multilib.h Makefile \ X $(lang_specs_files) $(srcdir)/p/version.h X $(CC) -DGPC $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ X $(DRIVER_DEFINES) \ X -c `echo $(srcdir)/p/gpc.c | sed 's,^./,,'` -o $@ X # 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 prefix.o version.o \ X $(LIBDEPS) $(EXTRA_GCC_OBJS) X $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ p/gpc.o prefix.o version.o \ X $(EXTRA_GCC_OBJS) $(LIBS) $(EXTRA_LIBS) X # Also create gpc-cross, so that pascal.install-common will install properly. gpc-cross$(exeext): xgpc$(exeext) X cp xgpc$(exeext) gpc-cross$(exeext) X $(srcdir)/p/parse.h: $(srcdir)/p/parse.c $(srcdir)/p/parse.c: $(srcdir)/p/parse.y X cd $(srcdir)/p && $(BISON) $(BISONFLAGS) -d -o parse.c parse.y X $(srcdir)/p/hash.h: $(srcdir)/p/gpc.gperf X gperf -p -j1 -G -o -t -N is_reserved_word -k 1,2,$$ \ X $(srcdir)/p/gpc.gperf > $(srcdir)/p/hash.h X gpc1$(exeext): $(P) $(GPC_SRCS) $(LIBDEPS) $(OBJS) c-aux-info.o c-pragma.o X cd p && $(MAKE) $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) ../gpc1$(exeext) X gpcpp$(exeext): $(P) mbchar.o p/cexp.y version.o $(srcdir)/p/gpcpp.c $(srcdir)/p/pcp.h \ X $(srcdir)/p/gpc-options.h $(srcdir)/p/lang-options.h X cd p && $(MAKE) $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) ../gpcpp$(exeext) X pascal.rts: p/rts/Makefile X cd p/rts && $(MAKE) $(RTS_COMPILERS) $(RTS_FLAGS_TO_PASS) all X $(srcdir)/p/rts/acconfig.h: $(srcdir)/p/rts/configure.in X m4 $(srcdir)/p/script/make-acconfig-h.m4 $(srcdir)/p/rts/configure.in > $(srcdir)/p/rts/acconfig.h || \ X (rm -f $(srcdir)/p/rts/acconfig.h; false) X # The touch commands in the following rules are to prevent them from # being run next time. Though they cause the whole RTS to be rebuilt, # sometimes unnecessarily... $(srcdir)/p/rts/configure: $(srcdir)/p/rts/configure.in $(srcdir)/p/rts/acconfig.h X cd $(srcdir)/p/rts && autoconf && touch configure X # @@ The `rm -f rts-config.in' is a workaround for a bug with `mv -f' under Cygwin. $(srcdir)/p/rts/rts-config.in: $(srcdir)/p/rts/configure.in $(srcdir)/p/rts/acconfig.h X rm -f $(srcdir)/p/rts/rts-config.in; cd $(srcdir)/p/rts && autoheader && touch rts-config.in X # The configuration of the Run Time 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? # fh: $(GCC_PARTS) doesn't include the Pascal compiler, so I added explicit dependencies. p/rts/Makefile: $(srcdir)/p/rts/Makefile.in $(srcdir)/p/rts/configure $(srcdir)/p/rts/rts-config.in \ X $(GCC_PARTS) stmp-int-hdrs xgpc$(exeext) gpc1$(exeext) gpcpp$(exeext) X $(srcdir)/p/script/mkdir-p p/rts X src=`cd $(srcdir) && pwd` && \ X cd p/rts && \ X $(RTS_COMPILERS) CONFIG_SITE=nonexisting-file \ X $$src/p/rts/configure --silent > /dev/null --srcdir=$$src/p/rts \ X `if [ x$(WITH_SHARED) = xyes ]; then echo '--with-shared'; fi` X # Build hooks: X pascal.all.build: xgpc$(exeext) pascal.all.cross: gpc-cross$(exeext) pascal.start.encap: pascal.rest.encap: X pascal.info: $(srcdir)/p/doc/en/info/gpc.info pascal.dvi: gpc.dvi X $(srcdir)/p/doc/en/info: X [ -d "$(srcdir)/p/doc/en/info" ] || $(srcdir)/p/script/mkdir-p "$(srcdir)/p/doc/en/info" X $(srcdir)/p/doc/en/info/gpc.info: $(GPC_TEXI_EN) $(srcdir)/p/doc/en/info X cd $(srcdir)/p/doc/en/info && makeinfo -I .. -I ../.. -I ../../generated -o gpc.info gpc.texi X # Better use texi2dvi. The old action was: # TEXINPUTS=$(srcdir)/p/doc:$$TEXINPUTS \ # tex gpc.texi && texindex gpc.?? && tex gpc.texi gpc.dvi: $(GPC_TEXI_EN) X @echo "I've silenced TeX. Don't be surprised..." # TeX is way too noisy... X TEXINPUTS=$(srcdir)/p/doc:$$TEXINPUTS \ X MAKEINFO="makeinfo $(GPC_DOC_DIRS)" \ X texi2dvi $(GPC_DOC_DIRS) -b $(srcdir)/p/doc/en/gpc.texi > gpc.to X if grep -i overfull gpc.to gpc.log; then false; else true; fi X $(srcdir)/p/script/dvi-reorder gpc.dvi X cp $(srcdir)/p/doc/GnuPascal.eps . X gpc.ps: gpc.dvi X dvips -q -o gpc.ps gpc.dvi X # pdftex uses TEXPSHEADERS to search GnuPascal.pdf gpc.pdf: $(GPC_TEXI_EN) X TEXINPUTS=$(srcdir)/p/doc:$$TEXINPUTS \ X TEXPSHEADERS=$(srcdir)/p/doc:$$TEXPSHEADERS \ X MAKEINFO="makeinfo $(GPC_DOC_DIRS)" \ X texi2pdf $(GPC_DOC_DIRS) -b $(srcdir)/p/doc/en/gpc.texi > gpc.po X if grep -i overfull gpc.po gpc.log; then false; else true; fi X HTML_DIR=p/html X $(HTML_DIR)/gpc.html: $(GPC_TEXI_EN) X $(srcdir)/p/script/mkdir-p $(HTML_DIR) X @if [ "`texi2html --version`" != "texi2html 1.61" ]; then \ X echo "@@ Sorry, the GPC Manual currently requires texi2html 1.61" >&2; \ X echo "@@ (no older, no newer version released so far will do)" >&2; \ X exit 1; \ X fi X -rm -f $(HTML_DIR)/*.html X texi2html -menu -split_node -subdir $(HTML_DIR) $(GPC_DOC_DIRS) $(srcdir)/p/doc/en/gpc.texi X pascal.html-dist: p/stamp-pascal-html X r=$(gpc_version) && cd p && tar -cz $(EXTRA_TARFLAGS) -f ../gpc-html-$$r.tar.gz html X pascal.html: p/stamp-pascal-html # @@ This rule also depends on $(srcdir)/p/doc/*.png, $(srcdir)/p/doc/*.jpg # and $(srcdir)/p/demos/*, but wildcards aren't allowed here and I don't want # to put the whole list of files there. So, you'll have to force rebuilding # when you only change one of those. p/stamp-pascal-html: $(HTML_DIR)/gpc.html gpc.dvi gpc.ps \ X $(srcdir)/p/doc/en/home.html.in $(VERSION_FILENAME) X $(srcdir)/p/script/mkdir-p $(HTML_DIR) X cd $(HTML_DIR) && tar czf gpc-html.tar.gz gpc*.html X $(srcdir)/p/script/make-homepage $(gpc_version) $(srcdir)/p/doc/en $(HTML_DIR) X cp -f $(srcdir)/p/doc/*.png $(srcdir)/p/doc/*.jpg $(HTML_DIR) X for f in $(srcdir)/p/demos/*; do \ X if [ $$f != $(srcdir)/p/demos/CVS ]; then \ X cp -f $$f $(HTML_DIR) || exit 1; \ X fi; \ X done X cp -f gpc.dvi gpc.ps $(srcdir)/p/doc/GnuPascal.eps $(HTML_DIR) X sed -e "s/@value{GPCversion}/$(gpc_version)/g" < $(srcdir)/p/doc/en/todo.texi > $(HTML_DIR)/gpc-todo.texi X cd $(HTML_DIR) && makeinfo --no-split gpc-todo.texi X rm -f $(HTML_DIR)/README $(HTML_DIR)/gpc.dvi.gz $(HTML_DIR)/gpc.ps.gz $(HTML_DIR)/gpc-todo.texi.gz X gzip $(HTML_DIR)/gpc.dvi $(HTML_DIR)/gpc.ps $(HTML_DIR)/gpc-todo.texi X rm -f $(HTML_DIR)/gpc-doc.html $(HTML_DIR)/index.html X cd $(HTML_DIR) && ln -s gpc.html gpc-doc.html && ln -s home.html index.html X touch p/stamp-pascal-html X # Install hooks: # gpc1 is installed elsewhere as part of $(COMPILERS). X unitsubdir=$(libsubdir)/units man1dir=$(mandir)/man1 X pascal.install-dir: X for directory in $(prefix) $(bindir) $(unitsubdir) $(libsubdir)/include \ X $(infodir) $(docdir) $(demodir) $(docdemodir) $(man1dir); do \ X $(srcdir)/p/script/mkdir-p -m a+rx $$directory || exit 1; \ X done X install-gpcpp: pascal.install-dir gpcpp$(exeext) X rm -f $(libsubdir)/gpcpp$(exeext) X $(INSTALL_PROGRAM) gpcpp$(exeext) $(libsubdir)/gpcpp$(exeext) X # Install the driver program as $(target)-gpc # and also as either gpc (if native) or $(tooldir)/bin/gpc. pascal.install-common: pascal.install-dir X -if [ -f gpc1$(exeext) ]; then \ X if [ -f gpc-cross$(exeext) ]; then \ X rm -f $(bindir)/$(GPC_CROSS_NAME)$(exeext); \ X $(INSTALL_PROGRAM) gpc-cross$(exeext) $(bindir)/$(GPC_CROSS_NAME)$(exeext); \ X chmod a+x $(bindir)/$(GPC_CROSS_NAME)$(exeext); \ X else \ X rm -f $(bindir)/$(GPC_INSTALL_NAME)$(exeext); \ X $(INSTALL_PROGRAM) xgpc$(exeext) $(bindir)/$(GPC_INSTALL_NAME)$(exeext); \ X chmod a+x $(bindir)/$(GPC_INSTALL_NAME)$(exeext); \ X fi; \ X fi X install-libgpc: pascal.install-dir pascal.rts X if [ -f libgpc.a ]; then \ X rm -f $(libsubdir)/libgpc.a; \ X if $(RANLIB_TEST_FOR_TARGET); then \ X $(RANLIB_FOR_TARGET) libgpc.a || exit 1; \ X fi; \ X $(INSTALL_DATA) libgpc.a $(libsubdir)/libgpc.a && \ X chmod a-x $(libsubdir)/libgpc.a || exit 1; \ X fi; exit 0 X if [ x$(WITH_SHARED) = xyes ] && [ -f $(GPCSOLIBNAME) ]; then \ X $(srcdir)/p/script/mkdir-p -m a+rx $(prefix)/$(GPCSOLIBDIR) && \ X rm -f $(libsubdir)/$(GPCSOLIBSHORTNAME) $(prefix)/$(GPCSOLIBDIR)/$(GPCSOLIBNAME); \ X $(INSTALL_DATA) $(GPCSOLIBNAME) $(prefix)/$(GPCSOLIBDIR)/$(GPCSOLIBNAME) && \ X chmod a-x $(prefix)/$(GPCSOLIBDIR)/$(GPCSOLIBNAME) && \ X $(SYMLINK) $(real_prefix)/$(GPCSOLIBDIR)/$(GPCSOLIBNAME) $(libsubdir)/$(GPCSOLIBSHORTNAME); \ X else \ X true; \ X fi X pascal.install-units: pascal.install-dir $(srcdir)/p/units/crtc.h $(srcdir)/p/rts/gpc.pas X $(INSTALL_DATA) p/rts/rts-config.inc $(unitsubdir)/rts-config.inc X $(INSTALL_DATA) $(srcdir)/p/rts/gpc.pas $(unitsubdir)/gpc.pas X chmod a-x $(unitsubdir)/rts-config.inc $(unitsubdir)/gpc.pas X for f in `cd $(srcdir)/p/units && echo *`; do \ X if [ $$f = gpc-in-c.h ]; then \ X rm -f $(libsubdir)/include/$$f; \ X $(INSTALL_DATA) $(srcdir)/p/units/$$f $(libsubdir)/include/$$f || exit 1; \ X chmod a-x $(libsubdir)/include/$$f; \ X elif [ $$f != CVS ]; then \ X rm -f $(unitsubdir)/$$f; \ X $(INSTALL_DATA) $(srcdir)/p/units/$$f $(unitsubdir)/$$f || exit 1; \ X chmod a-x $(unitsubdir)/$$f; \ X fi; \ X done X # AIX has tight command-line length limits which would be exceeded # in `rm -f $(docdemodir)/*' or `chmod a-x $(docdemodir)/*', # probably also (soon) in `cd p/docdemos && echo *' pascal.install-doc: pascal.install-dir $(srcdir)/p/README \ X $(srcdir)/p/NEWS $(srcdir)/p/FAQ $(srcdir)/p/LIBS $(srcdir)/p/AUTHORS \ X $(srcdir)/p/COPYING $(srcdir)/p/test/README pascal.docdemos X for f in README NEWS INSTALL FAQ LIBS AUTHORS COPYING; do \ X rm -f "$(docdir)/$$f"; \ X $(INSTALL_DATA) "$(srcdir)/p/$$f" "$(docdir)/$$f" || exit 1; \ X chmod a-x "$(docdir)/$$f"; \ X done X rm -f "$(docdir)/BUGS" X $(INSTALL_DATA) "$(srcdir)/p/test/README" "$(docdir)/BUGS" X for f in `cd "$(srcdir)/p/demos" && echo *`; do \ X if [ "$$f" != CVS ]; then \ X rm -f "$(demodir)/$$f"; \ X $(INSTALL_DATA) "$(srcdir)/p/demos/$$f" "$(demodir)/$$f" || exit 1; \ X fi \ X done X chmod a-x "$(docdir)/BUGS" "$(demodir)"/* X if [ "`cd p/docdemos && echo a*`" != "a*" ]; then \ X (cd "$(docdemodir)"; for f in *; do rm -f "$$f"; done) && \ X for f in `cd p/docdemos && echo *`; do \ X rm -f "$(docdemodir)/$$f"; \ X $(INSTALL_DATA) "p/docdemos/$$f" "$(docdemodir)/$$f" && \ X chmod a-x "$(docdemodir)/$$f" || exit 1; \ X done; \ X fi X pascal.install-info: pascal.install-dir pascal.info X rm -f $(infodir)/gpc.info* X for f in `cd $(srcdir)/p/doc/en/info && echo gpc.info*`; do \ X $(INSTALL_DATA) $(srcdir)/p/doc/en/info/$$f $(infodir)/$$f || exit 1; \ X done X chmod a-x $(infodir)/gpc.info* X pascal.install-man: pascal.install-dir $(srcdir)/p/doc/en/gpc.1 X -if [ -f gpc1$(exeext) ]; then \ X if [ -f gpc-cross$(exeext) ]; then \ X rm -f $(man1dir)/$(GPC_CROSS_NAME)$(manext); \ X $(INSTALL_DATA) $(srcdir)/p/doc/en/gpc.1 $(man1dir)/$(GPC_CROSS_NAME)$(manext); \ X chmod a-x $(man1dir)/$(GPC_CROSS_NAME)$(manext); \ X else \ X rm -f $(man1dir)/$(GPC_INSTALL_NAME)$(manext); \ X $(INSTALL_DATA) $(srcdir)/p/doc/en/gpc.1 $(man1dir)/$(GPC_INSTALL_NAME)$(manext); \ X chmod a-x $(man1dir)/$(GPC_INSTALL_NAME)$(manext); \ X fi; \ X else \ X true; \ X fi X # Install gpc1 et.al. # Do *not* overwrite files if they exist. pascal.install-compiler: pascal.install-dir pascal X for file in gpc1$(exeext); do \ X if [ -f $$file ]; then \ X rm -f $(libsubdir)/$$file; \ X $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file || exit 1; \ X fi; \ X done; exit 0 X for file in $(EXTRA_PASSES) $(EXTRA_PROGRAMS) $(USE_COLLECT2) ..; do \ X if [ x"$$file" != x.. ] && [ ! -f $(libsubdir)/$$file ]; then \ X $(INSTALL_PROGRAM) $$file $(libsubdir)/$$file || exit 1; \ X fi; \ X done; exit 0 X for file in $(EXTRA_PARTS) ..; do \ X if [ x"$$file" != x.. ] && [ ! -f $(libsubdir)/$$file ]; then \ X $(INSTALL_DATA) $$file $(libsubdir)/$$file && \ X chmod a-x $(libsubdir)/$$file || exit 1; \ X fi; \ X done; exit 0 # Don't mess with specs if it doesn't exist yet. X if [ -f specs ] && [ ! -f $(libsubdir)/specs ]; then \ X $(INSTALL_DATA) specs $(libsubdir)/specs && \ X chmod a-x $(libsubdir)/specs || exit 1; \ X fi; exit 0 # Install libgcc.a @@FIXME: doesn't handle multilib (multiple libgcc.a) X if [ -f libgcc.a ] && [ ! -f $(libsubdir)/libgcc.a ]; then \ X if $(RANLIB_TEST_FOR_TARGET); then \ X $(RANLIB_FOR_TARGET) libgcc.a || exit 1; \ X fi; \ X $(INSTALL_DATA) libgcc.a $(libsubdir)/libgcc.a && \ X chmod a-x $(libsubdir)/libgcc.a || exit 1; \ X fi; exit 0 X pascal.install-normal: pascal.install-common pascal.install-compiler \ X install-gpcpp install-libgpc pascal.install-man pascal.install-info \ X pascal.install-units pascal.install-doc X # 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-normal; @true X pascal.uninstall: X -rm -rf $(bindir)/$(GPC_INSTALL_NAME)$(exeext) X -rm -rf $(bindir)/$(GPC_CROSS_NAME)$(exeext) X -rm -rf $(man1dir)/$(GPC_INSTALL_NAME)$(manext) X -rm -rf $(man1dir)/$(GPC_CROSS_NAME)$(manext) X pascal.bindist: pascal X tmp_base=`pwd`/tmp && \ X tmp_prefix=$$tmp_base/$(install_prefix) && \ X rm -rf $$tmp_base && \ X $(srcdir)/p/script/mkdir-p -m a+rx $$tmp_prefix && \ X $(MAKE) pascal.install $(GPC_INSTALL_FLAGS_TO_PASS) "real_prefix=$(real_prefix)" prefix=$$tmp_prefix && \ X version=$(gpc_version) && cd $$tmp_base && $(MAKEGPCBINDIST) * && \ X rm -rf $$tmp_base X # Test targets X # A make dependency doesn't work here because make would confuse # $(srcdir)/p/test/Makefile and p/test/Makefile because of VPATH p/test/Makefile: force X $(srcdir)/p/script/mkdir-p p/test X if [ ! -f p/test/Makefile ] || [ $(srcdir)/p/test/Makefile -nt p/test/Makefile ]; then \ X cp $(srcdir)/p/test/Makefile p/test/Makefile; \ X else \ X true; \ X fi X MAKE_TEST = \ X srcdir=`cd $(srcdir)/p/test && pwd`; \ X builddir=`pwd`; \ X cd p/test && $(MAKE) \ X PC="$$builddir/xgpc -B$$builddir/" \ X srcdir=$$srcdir \ X EXTRA_PFLAGS="--unit-path=$$builddir/p/units --object-path=$$builddir/p/units" X check-pascal: pascal.check pascal.check: p/test/Makefile X $(MAKE_TEST) pascal.check X check-pascal-long: pascal.check-long pascal.check-long: p/test/Makefile X $(MAKE_TEST) pascal.check-long X # @@ Is this meant to be done like this? CHECK_TARGETS += check-pascal X # Clean hooks: # A lot of the ancillary files are deleted by the main makefile. # We just have to delete files specific to us. X pascal.mostlyclean: X -rm -f p/*.o p/stamp-docdemos p/stamp-pascal-html X -rm -rf p/docdemos $(HTML_DIR) X -if [ -d p/rts ]; then rtssrc=`cd $(srcdir)/p/rts && pwd` && cd p/rts && $(MAKE) -f $$rtssrc/Makefile.in srcdir=$$rtssrc mostlyclean; fi X -if [ -d p/test ]; then cd p/test && $(MAKE) mostlyclean; fi pascal.clean: pascal.mostlyclean X -rm -f xgpc X -if [ -d p/rts ]; then rtssrc=`cd $(srcdir)/p/rts && pwd` && cd p/rts && $(MAKE) -f $$rtssrc/Makefile.in srcdir=$$rtssrc clean; fi X -if [ -d p/test ]; then cd p/test && $(MAKE) clean; fi pascal.distclean: pascal.clean X -rm -f p/Makefile p/gpc-config.h p/config.cache p/config.log p/config.status X -rm -f p/parse.output gcc-version.h X -rm -f gpc.aux gpc.cp gpc.cps gpc.fn gpc.ky gpc.log gpc.pg gpc.toc X -rm -f gpc.tp gpc.vr gpc.dvi gpc.ps gpc.pdf p/gpc.*aux X -if [ -d p/rts ]; then rtssrc=`cd $(srcdir)/p/rts && pwd` && cd p/rts && $(MAKE) -f $$rtssrc/Makefile.in srcdir=$$rtssrc distclean; fi X -if [ -d p/test ]; then cd p/test && $(MAKE) distclean; fi # like gcc's extraclean, which does clean p/ for us, but not p/rts. pascal.extraclean: pascal.distclean X -rm -f p/*/=* p/*/"#"* p/*/*~* p/*/patch* p/*/*.orig p/*/*.rej X -rm -f p/*/*.dvi p/*/*.oaux p/*/*.d p/*/*.[zZ] p/*/*.gz X -rm -f p/*/*.tar p/*/*.xtar p/*/*.tar.* p/*/*.xtar.* X -rm -f p/*/*lose p/*/*.s p/*/*.s[0-9] p/*/*.i X -rm -f p/gpc-[0-9]*[0-9].tar.gz X -rm -rf p/tmp p/gpc-[0-9]*[0-9] X -if [ -d p/rts ]; then rtssrc=`cd $(srcdir)/p/rts && pwd` && cd p/rts && $(MAKE) -f $$rtssrc/Makefile.in srcdir=$$rtssrc extraclean; fi X -if [ -d p/test ]; then cd p/test && $(MAKE) extraclean; fi pascal.maintainer-clean: pascal.extraclean X -rm -f p/TAGS $(GPC_GENERATED_FILES) $(srcdir)/p/doc/*/info/gpc.info* X -for d in $(srcdir)/p/doc/*; do if [ -d $$d/info ]; then rmdir $$d/info; fi; done X -if [ -d p/rts ]; then rtssrc=`cd $(srcdir)/p/rts && pwd` && cd p/rts && $(MAKE) -f $$rtssrc/Makefile.in srcdir=$$rtssrc maintainer-clean; fi X -cd $(srcdir)/p/rts && $(MAKE) -f Makefile.in srcdir=. maintainer-clean X -if [ -d p/test ]; then cd p/test && $(MAKE) maintainer-clean; fi X # Stage hooks: # The main makefile has already created stage?/p. X GPCSTAGESTUFF = p/*.o p/stamp-gbe p/stamp-gpc1 X RTSSTAGESTUFF = p/rts/*.o p/rts/*.lo p/rts/*.gpi p/rts/*.gpm p/rts/*.gpd \ X p/rts/config.cache p/rts/config.log \ X p/rts/config.status p/rts/Makefile p/rts/rts-config.h X pascal.stage1: X $(srcdir)/p/script/mkdir-p stage1/p/rts X -mv $(GPCSTAGESTUFF) stage1/p X -mv $(RTSSTAGESTUFF) stage1/p/rts pascal.stage2: X $(srcdir)/p/script/mkdir-p stage2/p/rts X -mv $(GPCSTAGESTUFF) stage2/p X -mv $(RTSSTAGESTUFF) stage2/p/rts pascal.stage3: X $(srcdir)/p/script/mkdir-p stage3/p/rts X -mv $(GPCSTAGESTUFF) stage3/p X -mv $(RTSSTAGESTUFF) stage3/p/rts pascal.stage4: X $(srcdir)/p/script/mkdir-p stage4/p/rts X -mv $(GPCSTAGESTUFF) stage4/p X -mv $(RTSSTAGESTUFF) stage4/p/rts X # Maintenance hooks: X # This target creates the files that can be rebuilt, but go in the # distribution anyway. It then copies the files to the distdir directory. # # This will fail on systems that don't support symlinks. Tough luck... # (The symlinks will disappear after integration into GCC, anyway.) # # We use `-f Makefile.in' for the make in p/, so it will work without # configuring a binary, which might be useful for a source distribution. pascal.distdir: pascal.extraclean pascal.generated-files X cd $(srcdir)/p && dir=`pwd`; $(MAKE) -f Makefile.in $(FLAGS_TO_PASS) $(GPC_FLAGS_TO_PASS) srcdir=$$dir $$dir/parse.c $$dir/hash.h X $(srcdir)/p/script/mkdir-p tmp/p X dest=`cd tmp/p && pwd` && \ X cd $(srcdir)/p && \ X for file in `find . -path ./test/internal -prune -o -type d -print`; do \ X $(srcdir)/p/script/mkdir-p $$dest/$$file || exit 1; \ X done && \ X for file in `find . -path ./test/internal -prune -o -type f -print`; do \ X ln $$file $$dest/$$file >/dev/null 2>&1 || cp $$file $$dest/$$file || exit 1; \ X done && \ X for file in `find . -path ./test/internal -prune -o -type l -print`; do \ X ln -s `ls -l $$file | sed -e 's/.*-> *//'` $$dest/$$file || exit 1; \ X done X pascal.dist: pascal.distdir X mv tmp gpc-$(gpc_version) X tar -cz $(EXTRA_TARFLAGS) -f gpc-$(gpc_version).tar.gz gpc-$(gpc_version) X rm -rf gpc-$(gpc_version) X force: SHAR_EOF (set 20 01 05 08 10 48 26 'Make-lang-3.0.in'; eval "$shar_touch") && chmod 0644 'Make-lang-3.0.in' || $echo 'restore of' 'Make-lang-3.0.in' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum [' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'Make-lang-3.0.in:' 'MD5 check failed' 75351af0e2036b49e6bae51ad86e0910 Make-lang-3.0.in SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'Make-lang-3.0.in'`" test 35719 -eq "$shar_count" || $echo 'Make-lang-3.0.in:' 'original size' '35719,' 'current size' "$shar_count!" fi fi # ============= Makefile-3.0.in ============== if test -f 'Makefile-3.0.in' && test "$first_param" != -c; then $echo 'x -' SKIPPING 'Makefile-3.0.in' '(file already exists)' else $echo 'x -' extracting 'Makefile-3.0.in' '(text)' sed 's/^X//' << 'SHAR_EOF' > 'Makefile-3.0.in' && # Makefile for GNU Pascal compiler. # Copyright (C) 1987, 88, 90-94, 1995, 1997-2001 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. X # The makefile built from this file lives in the language subdirectory. # Its purpose is to provide support for: # # 1) recursion where necessary, and only then (building .o's), and # 2) building and debugging gpc1 from the language subdirectory, and # 3) nothing else. # # The parent makefile handles all other chores, with help from the # language makefile fragment, of course. # # The targets for external use are: # all, TAGS, ???mostlyclean, ???clean. X # Suppress smart makes who think they know how to automake Yacc files X.y.c: X # Variables that exist for you to override. # See below for how to change them for certain systems. X ALLOCA = X # Various ways of specifying flags for compilations: # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2. # BOOT_CFLAGS is the value of CFLAGS to pass # to the stage2 and stage3 compilations # XCFLAGS is used for most compilations but not when using the GCC just built. XXCFLAGS = CFLAGS = -g BOOT_CFLAGS = -O $(CFLAGS) # These exists to be overridden by the x-* and t-* files, respectively. XX_CFLAGS = T_CFLAGS = X XX_CPPFLAGS = T_CPPFLAGS = X CC = cc BISON = bison BISONFLAGS = LEX = flex LEXFLAGS = AR = ar AR_FLAGS = rc SHELL = /bin/sh MAKEINFO = makeinfo TEXI2DVI = texi2dvi X # Define this as & to perform parallel make on a Sequent. # Note that this has some bugs, and it seems currently necessary # to compile all the gen* files first by hand to avoid erroneous results. P = X # This is used in the definition of SUBDIR_USE_ALLOCA. # ??? Perhaps it would be better if it just looked for *gcc*. OLDCC = cc X # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. # It omits XCFLAGS, and specifies -B./. # It also specifies -B$(tooldir)/ to find as and ld for a cross compiler. GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) X # Tools to use when building a cross-compiler. # These are used because `configure' appends `cross-make' # to the makefile when making a cross-compiler. X target= ... `configure' substitutes actual target name here. xmake_file= ... `configure' substitutes actual x- file name here. tmake_file= ... `configure' substitutes actual t- file name here. X # Directory where sources are, from where we are. srcdir = . X # Additional system libraries to link with. CLIB= X # Change this to a null string if obstacks are installed in the # system library. OBSTACK=obstack.o X # Choose the real default target. ALL=error X # End of variables for you to override. X # Bomb out error: X echo "Invoke make from toplevel only" X # Definition of `all' is here so that new rules inserted by sed # do not specify the default target. all: all.indirect X # This tells GNU Make version 3 not to put all variables in the environment. X.NOEXPORT: X # sed inserts variable overrides after the following line. ####target overrides ####host overrides ####cross overrides ####build overrides X # Now figure out from those variables how to compile and link. X all.indirect: Makefile ../gpc1$(exeext) ../gpcpp$(exeext) ../libgpc.a X # IN_GCC tells obstack.h that we are using gcc's <stddef.h> file. INTERNAL_CFLAGS = $(CROSS) -DIN_GCC -DGPC X # This is the variable actually used when we compile. ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS) \ X $(SCHED_CFLAGS) X # Likewise. ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS) X # Extra warnings for compiling GPC (only for GCC) ALL_WARNINGS = `case "$(CC)" in *gcc*) echo -Wall;; esac` # -ansi -pedantic -Wpointer-arith # -Wmissing-prototypes # -Wwrite-strings X # Even if ALLOCA is set, don't use it if compiling with GCC. X SUBDIR_OBSTACK = `if [ x$(OBSTACK) != x ]; then echo ../$(OBSTACK); else true; fi` SUBDIR_USE_ALLOCA = `case "${CC}" in "${OLDCC}") if [ x$(ALLOCA) != x ]; then echo ../$(ALLOCA); else true; fi ;; esac` SUBDIR_MALLOC = `if [ x$(MALLOC) != x ]; then echo ../$(MALLOC); else true; fi` X # How to link with both our special library facilities # and the system's installed libraries. LIBS = $(SUBDIR_OBSTACK) $(SUBDIR_USE_ALLOCA) $(SUBDIR_MALLOC) $(CLIB) ../../libiberty/libiberty.a X # Specify the directories to be searched for header files. # Both . and srcdir are used, in that order, # so that tm.h and config.h will be found in the compilation # subdirectory rather than in the source directory. INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include X ALL_FLAGS = $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_WARNINGS) $(INCLUDES) ALL_GBE_FLAGS = $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) X # Always use -I$(srcdir)/config when compiling. X.c.o: X $(CC) -c $(ALL_FLAGS) $< X # Lists of files for various purposes. X # (1) The GNU back end (GBE). Supposed to be language independent and reused # unmodified by all members of the GNU compiler family. GCC_OBJS = $(OBJS) X # GBE files patched for GPC. # Rebuild these with -DGPC GCC_PATCHED = expr.o fold-const.o stor-layout.o tree.o X stamp-gbe: Makefile X echo "../toplev.o $(GCC_PATCHED)" >stamp-gbe X echo " $(GCC_OBJS)" \ X | sed -e 's/ expr.o//g' \ X -e 's/ fold-const.o//g' \ X -e 's/ stor-layout.o//g' \ X -e 's/ tree.o//g' \ X -e 's/ */ ..//g' >>stamp-gbe X GBE_OBJS = `cat stamp-gbe` GBE_OBJDEPS = stamp-gbe $(GCC_PATCHED) X GPC_OBJS = ggc-callbacks.o \ X gpc-common.o gpc-convert.o gpc-decl.o lang.o gpc-lex.o \ X gpc-typeck.o module.o gpi-hash.o circle-buf.o memfiles.o \ X objects.o parse.o rts.o types.o util.o setop.o X compiler: ../gpc1$(exeext) X X../gpc1$(exeext): $(P) $(GBE_OBJDEPS) Makefile $(GPC_OBJS) $(LIBDEPS) X rm -f ../gpc1$(exeext) X $(CC) $(ALL_CFLAGS) $(ALL_WARNINGS) $(LDFLAGS) -o $@ \ X $(GBE_OBJS) $(GPC_OBJS) $(LIBS) $(EXTRA_LIBS) X X../gpcpp$(exeext): $(P) gpcpp.o cexp.o ../mbchar.o ../version.o $(LIBDEPS) X rm -f ../gpcpp$(exeext) X $(CC) $(ALL_CFLAGS) $(ALL_WARNINGS) $(LDFLAGS) -o $@ \ X gpcpp.o cexp.o ../mbchar.o ../version.o $(LIBS) $(EXTRA_LIBS) X Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure X cd .. && $(SHELL) config.status X native: ../gpc1$(exeext) ../gpcpp$(exeext) X # Compiling object files from source files. X # Note that dependencies on obstack.h are not written # because that file is not part of GCC. X ggc-callbacks.o: $(srcdir)/../ggc-callbacks.c X $(CC) -c $(ALL_FLAGS) $< X # Pascal language specific files. X RTL_H = $(srcdir)/../rtl.h $(srcdir)/../rtl.def \ X $(srcdir)/../machmode.h $(srcdir)/../machmode.def TREE_H = $(srcdir)/../tree.h $(srcdir)/../real.h $(srcdir)/../tree.def \ X $(srcdir)/../machmode.h $(srcdir)/../machmode.def FLAGS_H = $(srcdir)/../flags.h INPUT_H = $(srcdir)/../input.h CONVERT_H = $(srcdir)/../convert.h GPC_TREE_H = $(TREE_H) # gpc-tree.h tree.def X PARSE_H = $(srcdir)/parse.h PARSE_C = $(srcdir)/parse.c X CONFLICTS = X $(PARSE_H) : $(PARSE_C) $(PARSE_C) : $(srcdir)/parse.y # @echo $(CONFLICTS) X cd $(srcdir) && $(BISON) $(BISONFLAGS) -d -o parse.c parse.y X cd $(srcdir) && grep '^#define[ ]*YYEMPTY' parse.c >>parse.h X $(srcdir)/hash.h: $(srcdir)/gpc.gperf X gperf -p -j1 -G -o -t -N is_reserved_word -k 1,2,$$ \ X $(srcdir)/gpc.gperf > $(srcdir)/hash.h X # Compiling object files from source files. X # Note that dependencies on obstack.h are not written # because that file is not part of GCC. X # Pascal language specific files. # Use maximum warnings for them. X circle-buf.o: $(srcdir)/circle-buf.c $(srcdir)/circle-buf.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X gpc-common.o: $(srcdir)/gpc-common.c $(CONFIG_H) $(GPC_TREE_H) $(FLAGS_H) \ X $(PARSE_H) $(srcdir)/../rtl.h $(srcdir)/gpc-defs.h \ X $(srcdir)/gpc-tree.h $(srcdir)/types.h $(srcdir)/parse.h \ X $(srcdir)/rts.h $(srcdir)/util.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X gpc-convert.o: $(srcdir)/gpc-convert.c $(CONFIG_H) $(GPC_TREE_H) $(FLAGS_H) \ X $(CONVERT_H) $(srcdir)/gpc-defs.h $(srcdir)/types.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X gpc-decl.o: $(srcdir)/gpc-decl.c $(CONFIG_H) $(GPC_TREE_H) $(FLAGS_H) \ X $(srcdir)/../output.h $(srcdir)/../c-lex.h $(srcdir)/gpc-defs.h \ X $(srcdir)/gpc-tree.h $(srcdir)/gpc-options.h $(srcdir)/module.h \ X $(srcdir)/objects.h $(srcdir)/util.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X gpc-lex.o: $(srcdir)/gpc-lex.c $(CONFIG_H) $(GPC_TREE_H) $(INPUT_H) \ X $(FLAGS_H) $(srcdir)/gpc-defs.h $(PARSE_H) $(srcdir)/hash.h $(srcdir)/lang-options.h \ X $(srcdir)/gpc-options.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) -Wno-char-subscripts $< X gpc-typeck.o: $(srcdir)/gpc-typeck.c $(CONFIG_H) $(GPC_TREE_H) $(srcdir)/gpc-tree.h \ X $(FLAGS_H) $(srcdir)/gpc-defs.h $(srcdir)/../output.h $(srcdir)/module.h \ X $(srcdir)/types.h $(srcdir)/util.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X $(srcdir)/cexp.c: $(srcdir)/cexp.y X cd $(srcdir); $(BISON) -o cexp.c cexp.y X cexp.o: $(srcdir)/cexp.c X $(CC) -c $(ALL_FLAGS) $< X gpcpp.o: $(srcdir)/gpcpp.c $(srcdir)/gpc-options.h $(srcdir)/lang-options.h \ X $(srcdir)/pcp.h $(CONFIG_H) ../config.status # The reason we use $(libdir)/g++-include rather than using libsubdir # is for compatibility with the current version of libg++. X $(CC) $(ALL_FLAGS) \ X -DGCC_INCLUDE_DIR="$(libsubdir)/include" \ X -DGPLUSPLUS_INCLUDE_DIR="$(gxx_include_dir)" \ X -DOLD_GPLUSPLUS_INCLUDE_DIR="$(old_gxx_include_dir)" \ X -DLOCAL_INCLUDE_DIR="$(includedir)" \ X -DCROSS_INCLUDE_DIR="$(libsubdir)/sys-include" \ X -DTOOL_INCLUDE_DIR="$(tooldir)/include" \ X -c `echo $(srcdir)/gpcpp.c | sed 's,^./,,'` X gpi-hash.o: $(srcdir)/gpi-hash.c $(srcdir)/gpi-hash.h $(CONFIG_H) \ X $(GBE_H) $(srcdir)/gpc-defs.h $(srcdir)/util.h $(srcdir)/module.h \ X $(srcdir)/util.h $(srcdir)/circle-buf.h $(srcdir)/memfiles.h \ X $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X lang.o: $(srcdir)/lang.c $(CONFIG_H) $(GPC_TREE_H) $(INPUT_H) $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X memfiles.o: $(srcdir)/memfiles.c $(srcdir)/memfiles.h $(CONFIG_H) $(GBE_H) \ X $(srcdir)/gpc-defs.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X module.o: $(srcdir)/module.c $(srcdir)/module.h $(CONFIG_H) $(GBE_H) \ X $(srcdir)/gpc-defs.h $(srcdir)/nodes.def $(srcdir)/util.h $(srcdir)/module.h \ X $(srcdir)/circle-buf.h $(srcdir)/gpi-hash.h $(srcdir)/memfiles.h \ X $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X objects.o: $(srcdir)/objects.c $(srcdir)/objects.h $(CONFIG_H) $(GBE_H) \ X $(srcdir)/gpc-defs.h $(srcdir)/types.h $(srcdir)/util.h $(srcdir)/rts/types.h \ X $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X parse.o: $(PARSE_C) $(CONFIG_H) $(GPC_TREE_H) $(INPUT_H) \ X $(srcdir)/gpc-tree.h $(FLAGS_H) $(srcdir)/gpc-defs.h X $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_WARNINGS) \ X $(INCLUDES) $(BIG_SWITCHFLAG) \ X `echo $(PARSE_C) | sed 's,^./,,'` X rts.o: $(srcdir)/rts.c $(srcdir)/rts.h $(CONFIG_H) $(srcdir)/gpc-defs.h \ X $(srcdir)/module.h $(PARSE_H) $(srcdir)/types.h $(srcdir)/util.h \ X $(srcdir)/rts/types.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_FLAGS) $< X setop.o: $(srcdir)/setop.c $(srcdir)/setop.h $(CONFIG_H) $(GBE_H) \ X ../insn-flags.h $(srcdir)/../gansidecl.h X $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_WARNINGS) $(INCLUDES) $< X types.o: $(srcdir)/types.c $(srcdir)/types.h $(CONFIG_H) $(GBE_H) \ X $(srcdir)/gpc-defs.h $(srcdir)/objects.h \ X $(srcdir)/util.h $(srcdir)/types.h $(srcdir)/../gansidecl.h $(PARSE_H) X $(CC) -c $(ALL_FLAGS) $< X util.o: $(srcdir)/util.c $(srcdir)/util.h $(CONFIG_H) $(GBE_H) \ X $(srcdir)/gpc-defs.h $(srcdir)/module.h \ X $(PARSE_H) $(srcdir)/rts.h $(srcdir)/types.h $(srcdir)/rts/types.h \ X $(srcdir)/../gansidecl.h $(srcdir)/rts/rts-version X $(CC) -c $(ALL_FLAGS) \ X -DRTS_RELEASE_STRING='"__GPC_RTS_VERSION_'"`cat $(srcdir)/rts/rts-version`"'__"' $< X # Language independent files that need to be patched for GPC X expr.o: $(srcdir)/../expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) $(FLAGS_H) \ X $(srcdir)/../function.h $(srcdir)/../regs.h ../insn-flags.h \ X ../insn-codes.h $(srcdir)/../expr.h ../insn-config.h \ X $(srcdir)/../recog.h $(srcdir)/../output.h $(srcdir)/../typeclass.h X $(CC) -c $(ALL_GBE_FLAGS) $(srcdir)/../expr.c X fold-const.o: $(srcdir)/../fold-const.c $(CONFIG_H) $(TREE_H) $(FLAGS_H) X $(CC) -c $(ALL_GBE_FLAGS) $(srcdir)/../fold-const.c X stor-layout.o: $(srcdir)/../stor-layout.c $(CONFIG_H) $(TREE_H) \ X $(FLAGS_H) $(srcdir)/../function.h X $(CC) -c $(ALL_GBE_FLAGS) $(srcdir)/../stor-layout.c X tree.o: $(srcdir)/../tree.c $(CONFIG_H) $(TREE_H) \ X $(FLAGS_H) $(srcdir)/../function.h X $(CC) -c $(ALL_GBE_FLAGS) $(srcdir)/../tree.c X # Update the tags table. X.PHONY: TAGS TAGS: force X cd $(srcdir) && \ X etags *.c *.h; \ X echo 'l' | tr 'l' '\f' >> TAGS; \ X echo 'parse.y,0' >> TAGS; \ X etags -a ../*.h ../*.c X force: SHAR_EOF (set 20 01 05 08 10 05 29 'Makefile-3.0.in'; eval "$shar_touch") && chmod 0644 'Makefile-3.0.in' || $echo 'restore of' 'Makefile-3.0.in' 'failed' if ( md5sum --help 2>&1 | grep 'sage: md5sum [' ) >/dev/null 2>&1 \ && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then md5sum -c << SHAR_EOF >/dev/null 2>&1 \ || $echo 'Makefile-3.0.in:' 'MD5 check failed' 9f57da0804e240affe99f417d67053b5 Makefile-3.0.in SHAR_EOF else shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'Makefile-3.0.in'`" test 13395 -eq "$shar_count" || $echo 'Makefile-3.0.in:' 'original size' '13395,' 'current size' "$shar_count!" fi fi rm -fr _sh02028 exit 0
On Mon, 4 Jun 2001, Matthias Klose wrote:
Russ Whitaker writes:
The patched gcc will compile without gpc.
Next steps were
../gcc-3.0-2*/configure --enable-languages=pascal make bootstrap
and it got this far:
no rule to make target 'p/Makefile' needed by 'gpc1'
I'll really have to leave this to Peter. If he won't reply (due to time reasons), you're on your own for now ...
That's OK, I can put it on the back burner for now.
Attached are the makefiles for gcc-3.0 (dated 010522).
[ .. ]
Thank you.
Just tried it, still doesn't work but I think you pointed me in the right direction.
Russ