sps@magoo.mcnc.org (Stephen Schaefer) (12/23/88)
Due to our source management system (see ``Rtools...'', p.85 Summer
1988 USENIX Proceeding), we find it necessary to explicitly list all
dependencies in our makefiles. I further believe it to be a good
practice in any environment. The diffs also reflect some
idiosyncratic changes: the location of executables and libraries,
choice of architecture compiler flags according to the directory in
which we are compiling, and -v flag sent to gcc in a couple places.
The unconditional inclusion of gcc flag -Um68k appears to be an error;
its omission for compilation on a 4.3BSD vax has not (yet) caused any
(known) trouble.
I am using the 4.3BSD ld. My first attempts at compilation gave me
``multiply defined'' errors for the symbols defined in
/usr/lib/libg.a. Removing the explicit mention of -lg corrected that
problem (gcc adds its own -lg argument to the ld invocation).
I may have missed some dependencies on aux-output.c, config.h, md, and
tm.h since those don't fit our architecture independent compilation
model, and I hack around them.
I hope this is useful to someone.
*** /tmp/d10800 Thu Dec 22 16:47:35 1988
--- Makefile Thu Dec 22 09:53:01 1988
***************
*** 29,35 ****
SHELL = /bin/sh
! bindir = $(HOME)/usr/local/bin
! libdir = $(HOME)/usr/local/lib
! startdir = $(HOME)/usr/local/lib
# These are what you would need on HPUX:
--- 29,35 ----
SHELL = /bin/sh
! bindir = /usr/local/std/bin
! libdir = /usr/local/std/lib
! startdir = /usr/local/std/lib
# These are what you would need on HPUX:
***************
*** 98,104 ****
# If you want to recompile everything, just do rm *.o.
# CONFIG_H = config.h tm.h
! CONFIG_H =
RTL_H = rtl.h rtl.def machmode.def
TREE_H = tree.h tree.def machmode.def
all: g++ c++ cpp+ gnulib+ crt0+.o crt1+.o ld++ # collect
--- 98,108 ----
# If you want to recompile everything, just do rm *.o.
# CONFIG_H = config.h tm.h
! # CONFIG_H =
! # ...but we tell the truth to Make/Build
! CONFIG_H = config.h tm.h
RTL_H = rtl.h rtl.def machmode.def
TREE_H = tree.h tree.def machmode.def
+ CPTREE_H = cplus-tree.h c-tree.h
+ EXPR_H = expr.h insn-codes.h
all: g++ c++ cpp+ gnulib+ crt0+.o crt1+.o ld++ # collect
***************
*** 109,128 ****
g++: gcc.o $(OBSTACK1) version.o
! $(CC) -g -o g++ $(PROFILE) gcc.o version.o -lg $(LIBS) -lc
! gcc.o: gcc.c $(CONFIG_H)
$(CC) $(CFLAGS) -c -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-\" gcc.c
! ld.o: ld.c
! # uncomment the following line for Sun 3's
! # $(CC) -Dmc68020 -DSUN3=3 -DTARGET=SUN3 -c $(PROFILE) $(CFLAGS) ld.c
! # uncomment the following line for Sun 2's
! # $(CC) -Dmc68010 -c $(PROFILE) $(CFLAGS) ld.c
! # uncomment the following line for Sun 4's
! $(CC) -DSUN4=4 -DTARGET=SUN4 -c $(PROFILE) $(CFLAGS) ld.c -DDEFAULT_SEARCH_PREFIX=\"/home/sioux/mdt/usr/local/lib\"
! # uncomment the following line for the other machines
! # $(CC) -c $(PROFILE) $(CFLAGS) ld.c
! ld++: ld.o
$(CC) -o ld++ $(PROFILE) ld.o -lg -lc
--- 113,138 ----
g++: gcc.o $(OBSTACK1) version.o
! $(CC) -v -g -o g++ $(PROFILE) gcc.o version.o $(LIBS) -lc
! gcc.o: gcc.c $(CONFIG_H) obstack.h
$(CC) $(CFLAGS) -c -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-\" gcc.c
! ld.o: ld.c symseg.h version.c
! case `pwd` in \
! */sun3/local/std/g++) \
! $(CC) -Dmc68020 -DSUN3=3 -DTARGET=SUN3 -DDEFAULT_SEARCH_PREFIX=\"$(libdir)\" -c $(PROFILE) $(CFLAGS) ld.c \
! ;; \
! */sun/local/std/g++) \
! $(CC) -Dmc68010 -DDEFAULT_SEARCH_PREFIX=\"$(libdir)\" -c $(PROFILE) $(CFLAGS) ld.c \
! ;; \
! */sun4/local/std/g++) \
! $(CC) -DSUN4=4 -DTARGET=SUN4 -DDEFAULT_SEARCH_PREFIX=\"$(libdir)\" -c $(PROFILE) $(CFLAGS) ld.c \
! ;; \
! *) \
! $(CC) -DDEFAULT_SEARCH_PREFIX=\"$(libdir)\" -c $(PROFILE) $(CFLAGS) ld.c \
! ;; \
! esac
! ld++: ld.o symseg.h
$(CC) -o ld++ $(PROFILE) ld.o -lg -lc
***************
*** 133,156 ****
crt0+.o: crt0.c config.h
! # uncomment the next line for VAX systems
! # $(CC) -D"CRT0_DUMMIES=" -g -c crt0.c
! # uncomment the next line for hp 9000 systems
! # $(CC) -Um68k -Umc68000 -g -c crt0.c
! # uncomment the next line for Sequent Balance systems
! # $(CC) -D"CRT0_DUMMIES=" -DDOT_GLOBAL_START -g -c crt0.c
! # uncomment the next line for Sun 2/3/4 systems
! $(CC) -Um68k -g -c crt0.c
mv crt0.o crt0+.o
crt1+.o: crt1.c config.h
! $(CC) -Um68k -g -c crt1.c
! mv crt1.o crt1+.o
c++: $(OBJS) $(OBSTACK1)
! $(CC) -g -o c++ $(PROFILE) $(OBJS) /usr/lib/debug/malloc.o -lg $(LIBS) -lc
#Library of arithmetic subroutines
# Don't compile this with gcc!
! gnulib+: gnulib.c
-mkdir libtemp
cd libtemp; \
--- 143,183 ----
crt0+.o: crt0.c config.h
! set -x ;\
! case `pwd` in \
! */bsd43/local/std/g++|*/ultrix/local/std/g++) \
! $(CC) -D"CRT0_DUMMIES=" -g -c crt0.c \
! ;; \
! */hp9000/local/std/g++) \
! $(CC) -Um68k -Umc68000 -g -c crt0.c \
! ;; \
! */sequent/local/std/g++) \
! $(CC) -D"CRT0_DUMMIES=" -DDOT_GLOBAL_START -g -c crt0.c \
! ;; \
! */sun*/local/std/g++) \
! $(CC) -Um68k -g -c crt0.c \
! ;; \
! esac
mv crt0.o crt0+.o
crt1+.o: crt1.c config.h
! set -x ; \
! case `pwd` in \
! */sun*/local/std/g++|*/hp9000/local/std/g++|*/sequent/local/std/g++) \
! $(CC) -Um68k -g -c crt1.c; mv crt1.o crt1+.o \
! ;; \
! */bsd43/local/std/g++|*/ultrix/local/std/g++) \
! $(CC) -g -c crt1.c; mv crt1.o crt1+.o \
! ;; \
! *) \
! touch crt1+.o \
! ;; \
! esac
c++: $(OBJS) $(OBSTACK1)
! $(CC) -v -g -o c++ $(PROFILE) $(OBJS) $(LIBS)
#Library of arithmetic subroutines
# Don't compile this with gcc!
! gnulib+: gnulib.c config.h
-mkdir libtemp
cd libtemp; \
***************
*** 173,191 ****
# hpxt gnulib-hp gnulib
! cplus-decl.o : cplus-decl.c $(CONFIG_H) $(TREE_H) flags.h cplus-parse.h c-tree.h
! cplus-typeck.o : cplus-typeck.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h
! tree.o : tree.c $(CONFIG_H) $(TREE_H)
! print-tree.o : print-tree.c $(CONFIG_H) $(TREE_H)
! stor-layout.o : stor-layout.c $(CONFIG_H) $(TREE_H)
fold-const.o : fold-const.c $(CONFIG_H) $(TREE_H)
! toplev.o : toplev.c $(CONFIG_H) $(TREE_H) flags.h
$(CC) -c $(CFLAGS) -DSORRY_EXIT_CODE=35 toplev.c
! cplus-overload.o : cplus-overload.c $(CONFIG_H) $(TREE_H) c-tree.h
! cplus-class.o : cplus-class.c $(CONFIG_H) $(TREE_H) c-tree.h
! cplus-init.o : cplus-init.c $(CONFIG_H) $(TREE_H) c-tree.h
! cplus-method.o : cplus-method.c $(CONFIG_H) $(TREE_H) c-tree.h
! cplus-convert.o : cplus-convert.c $(CONFIG_H) $(TREE_H) c-tree.h
! cplus-search.o : cplus-search.c $(CONFIG_H) $(TREE_H) c-tree.h
new-cplus-method.o : new-cplus-method.c $(CONFIG_H) $(TREE_H) c-tree.h
--- 200,218 ----
# hpxt gnulib-hp gnulib
! cplus-decl.o : cplus-decl.c $(CONFIG_H) $(TREE_H) $(CPTREE_H) flags.h cplus-parse.h assert.h
! cplus-typeck.o : cplus-typeck.c $(CONFIG_H) $(TREE_H) $(CPTREE_H) flags.h assert.h
! tree.o : tree.c $(CONFIG_H) $(TREE_H) obstack.h varargs.h assert.h
! print-tree.o : print-tree.c $(CONFIG_H) $(TREE_H) $(RTL_H)
! stor-layout.o : stor-layout.c $(CONFIG_H) $(TREE_H) $(RTL_H)
fold-const.o : fold-const.c $(CONFIG_H) $(TREE_H)
! toplev.o : toplev.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h c-tree.h
$(CC) -c $(CFLAGS) -DSORRY_EXIT_CODE=35 toplev.c
! cplus-overload.o : cplus-overload.c $(CONFIG_H) $(TREE_H) $(RTL_H) $(CPTREE_H)
! cplus-class.o : cplus-class.c $(CONFIG_H) $(TREE_H) $(RTL_H) $(CPTREE_H) flags.h
! cplus-init.o : cplus-init.c $(CONFIG_H) $(TREE_H) $(CPTREE_H)
! cplus-method.o : cplus-method.c $(CONFIG_H) $(TREE_H) $(CPTREE_H)
! cplus-convert.o : cplus-convert.c $(CONFIG_H) $(TREE_H) $(CPTREE_H)
! cplus-search.o : cplus-search.c $(CONFIG_H) $(TREE_H) $(CPTREE_H) obstack.h flags.h
new-cplus-method.o : new-cplus-method.c $(CONFIG_H) $(TREE_H) c-tree.h
***************
*** 193,215 ****
$(CC) -c $(CFLAGS) -DESKIT -DPARSE_OUTPUT=\"$(PWD)/cplus-parse.output\" cplus-parse.tab.c
! cplus-parse.tab.c : cplus-parse.y
@echo expect 49 shift/reduce conflicts and 4 reduce/reduce conflicts
$(BISON) $(BISONFLAGS) cplus-parse.y
! cplus-lex.o : cplus-lex.c $(CONFIG_H) $(TREE_H) c-tree.h cplus-parse.h cplus-parse.tab.h
rtl.o : rtl.c $(CONFIG_H) $(RTL_H)
! varasm.o : varasm.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h expr.h
stmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h expr.h insn-config.h regs.h
expr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h insn-codes.h expr.h insn-config.h recog.h
expmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h insn-codes.h expr.h insn-config.h recog.h
! explow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h
optabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h insn-codes.h expr.h insn-config.h recog.h
! symout.o : symout.c $(CONFIG_H) $(TREE_H) $(RTL_H) symseg.h gdbfiles.h
! dbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H)
sdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H) c-tree.h
--- 220,242 ----
$(CC) -c $(CFLAGS) -DESKIT -DPARSE_OUTPUT=\"$(PWD)/cplus-parse.output\" cplus-parse.tab.c
! cplus-parse.tab.c : cplus-parse.y $(CPTREE_H)
@echo expect 49 shift/reduce conflicts and 4 reduce/reduce conflicts
$(BISON) $(BISONFLAGS) cplus-parse.y
! cplus-lex.o : cplus-lex.c $(CONFIG_H) $(TREE_H) $(CPTREE_H) cplus-parse.h cplus-parse.tab.h obstack.h parse.tab.h parse.h flags.h
rtl.o : rtl.c $(CONFIG_H) $(RTL_H)
! varasm.o : varasm.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h $(EXPR_H) obstack.h
stmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h $(EXPR_H) insn-config.h regs.h
expr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h $(EXPR_H) insn-config.h recog.h
expmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h $(EXPR_H) insn-config.h recog.h
! explow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h $(EXPR_H)
optabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
! insn-flags.h $(EXPR_H) insn-config.h recog.h
! symout.o : symout.c $(CONFIG_H) $(TREE_H) $(RTL_H) symseg.h gdbfiles.h stddef.h
! dbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h
sdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H) c-tree.h
***************
*** 216,220 ****
emit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) regs.h insn-config.h
! integrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h insn-flags.h
jump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h regs.h
--- 243,247 ----
emit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) regs.h insn-config.h
! integrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h $(EXPR_H) insn-flags.h obstack.h
jump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h regs.h
***************
*** 222,226 ****
cse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h
! loop.o : loop.c $(CONFIG_H) $(RTL_H) insn-config.h regs.h recog.h flags.h expr.h
flow.o : flow.c $(CONFIG_H) $(RTL_H) basic-block.h regs.h hard-reg-set.h
combine.o : combine.c $(CONFIG_H) $(RTL_H) flags.h \
--- 249,253 ----
cse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h
! loop.o : loop.c $(CONFIG_H) $(RTL_H) insn-config.h regs.h recog.h flags.h $(EXPR_H)
flow.o : flow.c $(CONFIG_H) $(RTL_H) basic-block.h regs.h hard-reg-set.h
combine.o : combine.c $(CONFIG_H) $(RTL_H) flags.h \
***************
*** 240,243 ****
--- 267,271 ----
recog.o : recog.c $(CONFIG_H) $(RTL_H) \
regs.h recog.h hard-reg-set.h insn-config.h
+ obstack.o : obstack.c obstack.h
# Now the source files that are generated from the machine description.
***************
*** 246,265 ****
insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c
! insn-config.h : md genconfig
./genconfig md > tmp-insn-config.h
./move-if-change tmp-insn-config.h insn-config.h
! insn-flags.h : md genflags
./genflags md > tmp-insn-flags.h
./move-if-change tmp-insn-flags.h insn-flags.h
! insn-codes.h : md gencodes
./gencodes md > tmp-insn-codes.h
./move-if-change tmp-insn-codes.h insn-codes.h
! insn-emit.o : insn-emit.c $(RTL_H) expr.h insn-config.h
$(CC) $(CFLAGS) -c insn-emit.c
! insn-emit.c : md genemit
./genemit md > tmp-insn-emit.c
./move-if-change tmp-insn-emit.c insn-emit.c
--- 274,293 ----
insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c
! insn-config.h : md genconfig move-if-change
./genconfig md > tmp-insn-config.h
./move-if-change tmp-insn-config.h insn-config.h
! insn-flags.h : md genflags move-if-change
./genflags md > tmp-insn-flags.h
./move-if-change tmp-insn-flags.h insn-flags.h
! insn-codes.h : md gencodes move-if-change
./gencodes md > tmp-insn-codes.h
./move-if-change tmp-insn-codes.h insn-codes.h
! insn-emit.o : insn-emit.c $(RTL_H) $(EXPR_H) insn-config.h
$(CC) $(CFLAGS) -c insn-emit.c
! insn-emit.c : md genemit move-if-change
./genemit md > tmp-insn-emit.c
./move-if-change tmp-insn-emit.c insn-emit.c
***************
*** 268,272 ****
$(CC) $(CFLAGS) -c insn-recog.c
! insn-recog.c : md genrecog
./genrecog md > tmp-insn-recog.c
./move-if-change tmp-insn-recog.c insn-recog.c
--- 296,300 ----
$(CC) $(CFLAGS) -c insn-recog.c
! insn-recog.c : md genrecog move-if-change
./genrecog md > tmp-insn-recog.c
./move-if-change tmp-insn-recog.c insn-recog.c
***************
*** 275,279 ****
$(CC) $(CFLAGS) -c insn-extract.c
! insn-extract.c : md genextract
./genextract md > tmp-insn-extract.c
./move-if-change tmp-insn-extract.c insn-extract.c
--- 303,307 ----
$(CC) $(CFLAGS) -c insn-extract.c
! insn-extract.c : md genextract move-if-change
./genextract md > tmp-insn-extract.c
./move-if-change tmp-insn-extract.c insn-extract.c
***************
*** 282,286 ****
$(CC) $(CFLAGS) -c insn-peep.c
! insn-peep.c : md genpeep
./genpeep md > tmp-insn-peep.c
./move-if-change tmp-insn-peep.c insn-peep.c
--- 310,314 ----
$(CC) $(CFLAGS) -c insn-peep.c
! insn-peep.c : md genpeep move-if-change
./genpeep md > tmp-insn-peep.c
./move-if-change tmp-insn-peep.c insn-peep.c
***************
*** 289,293 ****
$(CC) $(CFLAGS) -c insn-output.c
! insn-output.c : md genoutput
./genoutput md > tmp-insn-output.c
./move-if-change tmp-insn-output.c insn-output.c
--- 317,321 ----
$(CC) $(CFLAGS) -c insn-output.c
! insn-output.c : md genoutput move-if-change
./genoutput md > tmp-insn-output.c
./move-if-change tmp-insn-output.c insn-output.c
--
Stephen P. Schaefer, Postmaster MCNC
sps@mcnc.org P.O. Box 12889
...!mcnc!sps RTP, NC 27709