Update bmake bits to build GCC 3.3.1-prerelease.

This commit is contained in:
Alexander Kabaev 2003-07-11 05:37:23 +00:00
parent 487ee93a17
commit e67810e696
9 changed files with 297 additions and 110 deletions

View File

@ -22,14 +22,21 @@ LDADD+= -lm
DPADD+= ${LIBM}
# libstdc++ sources (libstdc++/src/Makefile.in, do not reorder)
SRCS+= globals.cc limits.cc basic_file_stdio.cc complex_io.cc ios.cc \
strstream-fixed.cc bitset.cc functexcept.cc stdexcept.cc \
vterminate.cc ctype.cc c_locale.cc locale.cc localename.cc codecvt.cc \
codecvt_members.cc collate_members.cc ctype_members.cc messages_members.cc \
monetary_members.cc numeric_members.cc time_members.cc concept-inst.cc \
locale-inst.cc misc-inst.cc stl-inst.cc string-inst.cc wstring-inst.cc \
valarray-inst.cc ext-inst.cc fstream.cc fstream-inst.cc io-inst.cc \
istream-inst.cc ostream-inst.cc streambuf-inst.cc sstream-inst.cc
SRCS+= bitset.cc codecvt.cc complex_io.cc concept-inst.cc ctype.cc \
ext-inst.cc fstream.cc fstream-inst.cc functexcept.cc \
globals.cc io-inst.cc ios.cc istream-inst.cc limits.cc \
locale.cc locale-inst.cc localename.cc misc-inst.cc \
ostream-inst.cc sstream-inst.cc stdexcept.cc stl-inst.cc \
streambuf-inst.cc string-inst.cc strstream-fixed.cc \
valarray-inst.cc vterminate.cc wstring-inst.cc
# target sources
SRCS+= codecvt_members.cc collate_members.cc ctype_members.cc \
messages_members.cc monetary_members.cc numeric_members.cc \
time_members.cc
# target sources extra
SRCS+= basic_file_stdio.cc c_locale.cc
# C parts of math
SRCS+= nan.c signbit.c signbitf.c signbitl.c stubs.c
@ -38,7 +45,7 @@ SRCS+= nan.c signbit.c signbitf.c signbitl.c stubs.c
SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc \
eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc \
eh_globals.cc eh_personality.cc eh_terminate.cc eh_throw.cc eh_type.cc \
new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
guard.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
pure.cc tinfo.cc tinfo2.cc vec.cc
# from libiberty:
@ -55,9 +62,10 @@ INCSGROUPS= BITSHDRS BKWHDRS EXTHDRS BASEHDRS BASEXHDRS STDHDRS \
BITSHDRS= basic_ios.h basic_ios.tcc basic_string.h basic_string.tcc \
boost_concept_check.h char_traits.h codecvt.h concept_check.h \
cpp_type_traits.h fpos.h fstream.tcc functexcept.h \
cpp_type_traits.h deque.tcc fpos.h fstream.tcc functexcept.h \
generic_shadow.h gslice.h gslice_array.h indirect_array.h \
ios_base.h istream.tcc locale_facets.h locale_facets.tcc \
ios_base.h istream.tcc list.tcc \
locale_classes.h locale_facets.h locale_facets.tcc \
localefwd.h mask_array.h ostream.tcc pthread_allocimpl.h \
slice.h slice_array.h sstream.tcc stl_algo.h stl_algobase.h \
stl_alloc.h stl_bvector.h stl_construct.h stl_deque.h \
@ -69,9 +77,10 @@ BITSHDRS= basic_ios.h basic_ios.tcc basic_string.h basic_string.tcc \
stl_tempbuf.h stl_threads.h stl_tree.h stl_uninitialized.h \
stl_vector.h stream_iterator.h streambuf.tcc \
streambuf_iterator.h stringfwd.h type_traits.h \
valarray_array.h valarray_array.tcc valarray_meta.h
valarray_array.h valarray_array.tcc valarray_meta.h \
vector.tcc
BITSHDRS:= ${BITSHDRS:S;^;${SRCDIR}/include/bits/;}
BITSHDRSDIR= ${INCLUDEDIR}/g++/bits
BITSHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
BKWHDRS= algo.h algobase.h alloc.h backward_warning.h bvector.h \
complex.h defalloc.h deque.h fstream.h function.h \
@ -81,13 +90,13 @@ BKWHDRS= algo.h algobase.h alloc.h backward_warning.h bvector.h \
slist.h stack.h stream.h streambuf.h strstream strstream.h \
tempbuf.h tree.h vector.h
BKWHDRS:= ${BKWHDRS:S;^;${SRCDIR}/include/backward/;}
BKWHDRSDIR= ${INCLUDEDIR}/g++/backward
BKWHDRSDIR= ${INCLUDEDIR}/c++/3.3/backward
EXTHDRS= algorithm enc_filebuf.h functional hash_map hash_set \
iterator memory numeric rb_tree rope ropeimpl.h slist \
stdio_filebuf.h stl_hash_fun.h stl_hashtable.h stl_rope.h
EXTHDRS:= ${EXTHDRS:S;^;${SRCDIR}/include/ext/;}
EXTHDRSDIR= ${INCLUDEDIR}/g++/ext
EXTHDRSDIR= ${INCLUDEDIR}/c++/3.3/ext
# This is the common subset of files that all three "C" header models use.
BASEHDRS= std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \
@ -99,11 +108,11 @@ BASEHDRS= std_cassert.h std_cctype.h std_cerrno.h std_cfloat.h \
BASEHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
BASEHDRS:= ${BASEHDRS:S;^;${SRCDIR}/include/c_std/;}
BASEHDRSDIR= ${INCLUDEDIR}/g++
BASEHDRSDIR= ${INCLUDEDIR}/c++/3.3
# Some of the different "C" header models need extra files.
BASEXHDRS= ${SRCDIR}/include/c_std/cmath.tcc
BASEXHDRSDIR= ${INCLUDEDIR}/g++/bits
BASEXHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
STDHDRS= std_algorithm.h std_bitset.h std_complex.h std_deque.h \
std_fstream.h std_functional.h std_iomanip.h std_ios.h \
@ -116,7 +125,7 @@ STDHDRS= std_algorithm.h std_bitset.h std_complex.h std_deque.h \
STDHDRSNAME_$h=${h:R:S;^std_;;}
.endfor
STDHDRS:= ${STDHDRS:S;^;${SRCDIR}/include/std/;}
STDHDRSDIR= ${INCLUDEDIR}/g++
STDHDRSDIR= ${INCLUDEDIR}/c++/3.3
TARGETHDRS= io/basic_file_stdio.h io/c_io_stdio.h \
locale/generic/c_locale.h \
@ -124,33 +133,36 @@ TARGETHDRS= io/basic_file_stdio.h io/c_io_stdio.h \
locale/generic/codecvt_specializations.h \
locale/generic/messages_members.h \
locale/generic/time_members.h \
os/bsd/freebsd/bits/ctype_base.h \
os/bsd/freebsd/bits/ctype_inline.h \
os/bsd/freebsd/bits/ctype_noninline.h \
os/bsd/freebsd/bits/os_defines.h
os/bsd/freebsd/ctype_base.h \
os/bsd/freebsd/ctype_inline.h \
os/bsd/freebsd/ctype_noninline.h \
os/bsd/freebsd/os_defines.h
TARGETHDRS:= ${TARGETHDRS:S;^;${SRCDIR}/config/;}
TARGETHDRS+= ${.CURDIR}/c++config.h
TARGETHDRSNAME_basic_file_stdio.h= basic_file.h
TARGETHDRSNAME_c_io_stdio.h= c++io.h
TARGETHDRSNAME_c_locale.h= c++locale.h
TARGETHDRSDIR= ${INCLUDEDIR}/g++/bits
TARGETHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
MARCHHDRS= atomicity.h cpu_limits.h
MARCHHDRS= atomicity.h
.if ${MACHINE_ARCH} == "sparc64"
MARCHDIR= ${SRCDIR}/config/cpu/sparc/${MACHINE_ARCH}/bits
MARCHDIR= sparc
.elif ${MACHINE_ARCH} == "i386" && ${MACHINE_CPU} != 'i386'
MARCHDIR= i486
.else
MARCHDIR= ${SRCDIR}/config/cpu/${MACHINE_ARCH}/bits
MARCHDIR= ${MACHINE_ARCH}
.endif
.for h in ${MARCHHDRS}
.if exists(${MARCHDIR}/${h})
TARGETHDRS+= ${MARCHDIR}/${h}
.if exists(${SRCDIR}/config/cpu/${MARCHDIR}/${h})
TARGETHDRS+= ${SRCDIR}/config/cpu/${MARCHDIR}/${h}
.else
TARGETHDRS+= ${SRCDIR}/config/cpu/generic/bits/${h}
.endif
.endfor
THRHDRS= gthr.h gthr-single.h gthr-posix.h gthr-default.h
THRHDRSDIR= ${INCLUDEDIR}/g++/bits
THRHDRSDIR= ${INCLUDEDIR}/c++/3.3/bits
gthr.h: ${GCCDIR}/gthr.h
sed -e '/^#/s/\([ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_]*\)/_GLIBCPP_\1/g' \

View File

@ -10,7 +10,7 @@ LIB= supc++
SRCS= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc \
eh_alloc.cc eh_aux_runtime.cc eh_catch.cc eh_exception.cc \
eh_globals.cc eh_personality.cc eh_terminate.cc eh_throw.cc eh_type.cc \
new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
guard.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc \
pure.cc tinfo.cc tinfo2.cc vec.cc
# from libiberty:
@ -22,6 +22,6 @@ CXXFLAGS+= -fno-implicit-templates -ffunction-sections -fdata-sections
HDRS= exception new typeinfo cxxabi.h exception_defines.h
INCS= ${HDRS:S;^;${SRCDIR}/;}
INCSDIR=${INCLUDEDIR}/g++
INCSDIR=${INCLUDEDIR}/c++/3.3
.include <bsd.lib.mk>

View File

@ -3,7 +3,7 @@
# The order of some of these are rather important. Some depend on previous
# subdirs.
SUBDIR= cc_tools cc_int cc cc1 cpp0 include protoize tradcpp0 doc
SUBDIR= cc_tools cc_int cc cc1 include protoize doc
.if !defined(NO_CPP)
SUBDIR+= cpp

View File

@ -8,7 +8,7 @@ PROG= c++filt
SRCS= cp-demangle.c cplus-dem+%DIKED.c
NOMAN= 1
CFLAGS+= -DMAIN -DIN_GCC -DVERSION=\"$(version)\"
CFLAGS+= -DSTANDALONE_DEMANGLER -DIN_GCC -DVERSION=\"$(version)\"
DPADD+= ${LIBCC_INT}
LDADD+= ${LIBCC_INT}

View File

@ -5,7 +5,7 @@
.PATH: ${GCCDIR}
PROG= cc1
SRCS= main.c c-parse+%DIKED.c c-lang.c c-decl.c
SRCS= main.c c-parse+%DIKED.c c-lang.c c-decl.c c-opts.c
BINDIR= /usr/libexec
NOMAN= 1
NOSHARED?=yes

View File

@ -6,7 +6,7 @@
PROG= cc1plus
SRCS= parse+%DIKED.c parse.h cfns.h
SRCS+= main.c cp-lang.c \
SRCS+= main.c cp-lang.c c-opts.c \
call.c class.c cvt.c decl.c decl2.c error.c except.c expr.c friend.c \
init.c lex.c mangle.c method.c pt.c ptree.c repo.c rtti.c search.c \
semantics.c spew.c tree.c typeck.c typeck2.c dump.c optimize.c

View File

@ -2,40 +2,31 @@
.include "../Makefile.inc"
.PATH: ../cc_tools ${GCCDIR}/config/${GCC_CPU} ${GCCDIR} ${GCCDIR}/../libiberty
.PATH: ../cc_tools ${GCCDIR}/config/${GCC_CPU} ${GCCDIR} ${GCCDIR}/../libiberty
LIB= cc_int
INTERNALLIB= YES
# dbxout.c dwarfout.c emit-rtl.c explow.c expmed.c expr.c \
# alias.c bitmap.c dwarf2out.c dyn-string.c \
SRCS= c-common.c c-format.c \
SRCS= c-common.c c-dump.c c-format.c c-opts.c \
c-pragma.c c-semantics.c \
\
caller-save.c calls.c combine.c convert.c cse.c \
dbxout.c dwarfout.c dwarf2out.c dwarf2asm.c emit-rtl.c explow.c expmed.c expr.c \
final.c flow.c fold-const.c function.c getpwd.c global.c graph.c \
hash.c haifa-sched.c \
gtype-desc.c hash.c haifa-sched.c \
integrate.c jump.c lcm.c local-alloc.c loop.c optabs.c \
print-rtl.c print-tree.c real.c recog.c reg-stack.c regclass.c \
print-rtl.c print-tree.c \
ra.c ra-build.c ra-colorize.c ra-debug.c ra-rewrite.c \
real.c recog.c reg-stack.c regclass.c \
reload.c reload1.c reorg.c rtl.c rtlanal.c \
sbitmap.c sdbout.c stmt.c stor-layout.c \
toplev.c tree.c unroll.c varasm.c version.c xcoffout.c \
toplev.c tracer.c tree.c unroll.c varasm.c version.c xcoffout.c \
alias.c bitmap.c dyn-string.c \
gcse.c genrtl.c profile.c regmove.c varray.c \
attribs.c cselib.c debug.c rtl-error.c tree-dump.c tree-inline.c
.if ${TARGET_ARCH} != "amd64"
SRCS+= ${GCC_CPU}.c
.else
SRCS+= i386-hacked.c
CLEANFILES+= i386-hacked.c
i386-hacked.c: ${GCCDIR}/config/i386/i386.c amd64.patch
rm -f i386-hacked.c # in case p4 readonly copied
cp ${GCCDIR}/config/i386/i386.c i386-hacked.c
patch -b .orig < ${.CURDIR}/amd64.patch
.endif
SRCS+= bb-reorder.c conflict.c ggc-common.c \
ggc-page.c ifcvt.c lists.c predict.c regrename.c resource.c sibcall.c \
@ -64,17 +55,18 @@ SRCS+= c-lex.c c-typeck.c \
c-errors.o c-pragma.o c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o c-objc-common.o
# libbackend
SRCS+= builtins.c diagnostic.c doloop.c dominance.c except.c gcse.c params.c sched-deps.c sched-vis.c sched-rgn.c sched-ebb.c \
SRCS+= builtins.c diagnostic.c doloop.c dominance.c et-forest.c \
except.c gcse.c params.c sched-deps.c sched-vis.c sched-rgn.c sched-ebb.c \
stringpool.c c-lex.c langhooks.c hashtable.c \
hooks.c \
cfg.c cfganal.c cfgbuild.c cfgcleanup.c cfglayout.c cfgloop.c cfgrtl.c
# libcpp
SRCS+= cppdefault.c cpperror.c cppexp.c cppfiles.c cppinit.c cpphash.c \
cpplex.c cpplib.c cppmacro.c mkdeps.c line-map.c
cpplex.c cpplib.c cppmacro.c cppmain.c cpptrad.c mkdeps.c line-map.c
# stuff that makes libiberty now required (2.95) and shouldn't be...
SRCS+= obstack.c splay-tree.c hashtab.c partition.c lbasename.c md5.c hex.c getopt.c getopt1.c
SRCS+= obstack.c splay-tree.c hashtab.c partition.c lbasename.c md5.c hex.c getopt.c getopt1.c xmemdup.c physmem.c
CFLAGS+= -DHAVE_CONFIG_H
CFLAGS+= -DTARGET_NAME=\"${target}\" -DIN_GCC

View File

@ -11,49 +11,71 @@
# Prevent mkdep from using it, so that we don't have to give rules for
# aliases of generated headers.
CFLAGS+= -I.
CFLAGS+= -I. -static -DGENERATOR_FILE
.include "../Makefile.inc"
.PATH: ${GCCDIR} ${GCCDIR}/cp ${GCCDIR}/../libiberty
CFLAGS+= -static -DGENERATOR_FILE
.PATH: ${GCCDIR}
#-----------------------------------------------------------------------
# insn-* gunk
.for F in attr codes config flags
.for F in attr codes config flags constants
insn-$F.h: gen$F ${MD_FILE}
./gen$F ${MD_FILE} > insn-$F.h
GENSRCS+= insn-$F.h
.endfor
.for F in conditions
insn-$F.c: gen$F ${MD_FILE}
./gen$F ${MD_FILE} > insn-$F.c
GENSRCS+= insn-$F.c
.endfor
GENSRCS+= gen-time-stamp
gen-time-stamp: genattrtab genemit genextract genopinit genoutput genpeep genrecog
gen-time-stamp: genattr genattrtab genconditions genconstants genemit \
genextract gengtype genopinit genoutput genpeep genrecog
touch ${.TARGET}
.for F in attr codes config emit extract flags opinit output peep recog
build-tools: gen$F
gen$F: gen$F.o rtl.o obstack.o print-rtl.o bitmap.o errors.o gensupport.o ggc-none.o hashtab.o read-rtl.o
gen$F: gen$F.o rtl.o obstack.o print-rtl.o bitmap.o errors.o gensupport.o \
ggc-none.o hashtab.o read-rtl.o concat.o insn-conditions.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
CLEANFILES+= gen$F
.endfor
.for F in attrtab
#
# genattrtab needs more complex build rule
#
build-tools: genattrtab
genattrtab : genattrtab.o rtl.o obstack.o print-rtl.o bitmap.o errors.o \
gensupport.o ggc-none.o hashtab.o read-rtl.o concat.o \
insn-conditions.o genautomata.o varray.o getruntime.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm
GENSRCS+= genattrtab.c
CLEANFILES+= genattrtab
#
# genconstants and genconditions cannot depend on insn-conditions.o
# they should be liked with dummy-conditions.o stubs instead
#
.for F in constants conditions
build-tools: gen$F
gen$F: gen$F.o rtl.o print-rtl.o obstack.o bitmap.o errors.o gensupport.o ggc-none.o hashtab.o read-rtl.o
gen$F: gen$F.o rtl.o obstack.o bitmap.o errors.o gensupport.o \
ggc-none.o hashtab.o read-rtl.o concat.o dummy-conditions.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gen$F.c
CLEANFILES+= gen$F
.endfor
SRCS+= bitmap.c errors.c gensupport.c ggc-none.c hashtab.c obstack.c print-rtl.c regclass.c rtl.c rtlanal.c read-rtl.c
.for F in check genrtl preds
build-tools: gen$F
@ -71,6 +93,10 @@ genrtl.c genrtl.h: gengenrtl
GENSRCS+= genrtl.c genrtl.h
SRCS+= bitmap.c concat.c dummy-conditions.c errors.c genautomata.c \
gensupport.c getruntime.c ggc-none.c hashtab.c insn-conditions.c \
obstack.c physmem.c print-rtl.c read-rtl.c rtl.c varray.c xmemdup.c
#-----------------------------------------------------------------------
# Common parser stuff.
@ -85,19 +111,172 @@ tm-preds.h: genpreds
./genpreds > ${.TARGET}
GENSRCS+= tm-preds.h
#-----------------------------------------------------------------------
# Gengtype
gengtype-lex.c : gengtype-lex.l
${LEX} -t ${.ALLSRC} | \
sed 's/^\(char msg\[\];\)/yyconst \1/' > ${.TARGET}
.ORDER: gengtype-yacc.c gengtype-yacc.h
gengtype-yacc.c gengtype-yacc.h: gengtype-yacc.y
${YACC} -d -o gengtype-yacc.c ${.ALLSRC}
GENSRCS+= gengtype-yacc+%DIKED.c gengtype-yacc.h gengtype-lex.c
CLEANFILES+= gengtype-yacc.c
gengtype-yacc+%DIKED.c: gengtype-yacc.c
cat ${.ALLSRC} > ${.TARGET}
sed -e "s/xmalloc/malloc/g" \
-e "s/xrealloc/realloc/g" \
-e "s/malloc/xmalloc/g" \
-e "s/realloc/xrealloc/g" \
${.ALLSRC} > ${.TARGET}
gengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o xmemdup.o
${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
GENSRCS+= gengtype.c
CLEANFILES+= gengtype
gengtype-lex.o: gengtype-yacc.h
.ORDER: gtype-desc.c gtype-desc.h
gtype-desc.c gtype-desc.h: gtype-time-stamp
@true
GENSRCS+= gtype-time-stamp
gtype-time-stamp: gengtype ${GTFILES}
./gengtype
touch ${.TARGET}
GENSRCS+= gtype-desc.c gtype-desc.h
CLEANFILES+= gt-*.h gtype-*.h
#-----------------------------------------------------------------------
# Determine content of variables used by the target/host config files
#
# The list of headers to go into tconfig.h
#
TARGET_INC= ansidecl.h
TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h
.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/unix.h
TARGET_INC+= ${GCC_CPU}/att.h
.endif
.if ${TARGET_ARCH} != "alpha"
TARGET_INC+= dbxelf.h
TARGET_INC+= elfos.h
.endif
TARGET_INC+= freebsd-native.h
TARGET_INC+= freebsd-spec.h
TARGET_INC+= freebsd.h
.if ${TARGET_ARCH} == "alpha"
TARGET_INC+= ${GCC_CPU}/elf.h
.endif
.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64"
.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
TARGET_INC+= ${GCC_CPU}/sysv4.h
.endif
.endif
TARGET_INC+= ${GCC_CPU}/freebsd.h
.if ${TARGET_ARCH} == "amd64"
TARGET_INC+= ${GCC_CPU}/x86-64.h
TARGET_INC+= ${GCC_CPU}/freebsd64.h
.endif
TARGET_INC+= defaults.h
#
# Use TARGET_INC as a template and build a list of target specific
# include files for gengtype to scan
#
GCONFIG_H= ${.OBJDIR}/tconfig.h ${.CURDIR}/auto-host.h
.for H in ${TARGET_INC}
.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR}
.if exists($D/$H)
GCONFIG_H+= $D/$H
.endif
.endfor
.endfor
#
# Define some variables to make blocks copied from Makefile.in happy
#
srcdir= ${GCCDIR}
HASHTAB_H= ${GCCDIR}/hashtab.h
out_file= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.c
GTFILES_SRCDIR= ${GCCDIR}
#
# Copied unchanged from gcc/Makefile.in
#
GTFILES = $(GCONFIG_H) $(srcdir)/location.h \
$(HASHTAB_H) \
$(srcdir)/bitmap.h $(srcdir)/function.h $(srcdir)/rtl.h $(srcdir)/optabs.h \
$(srcdir)/tree.h $(srcdir)/libfuncs.h $(srcdir)/hashtable.h $(srcdir)/real.h \
$(srcdir)/varray.h $(srcdir)/ssa.h $(srcdir)/insn-addr.h $(srcdir)/cselib.h \
$(srcdir)/c-common.h $(srcdir)/c-tree.h \
$(srcdir)/basic-block.h \
$(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c \
$(srcdir)/dwarf2out.c $(srcdir)/emit-rtl.c \
$(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
$(srcdir)/fold-const.c $(srcdir)/function.c \
$(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
$(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \
$(srcdir)/reg-stack.c \
$(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \
$(srcdir)/tree.c $(srcdir)/varasm.c \
$(out_file)
#
# Build a list of frontend directories to look into
#
GTFILES_LANG_DIR_NAMES=
.if !defined(NO_CXX)
GTFILES_LANG_DIR_NAMES+= cp
.endif
.if !defined(NO_OBJC)
GTFILES_LANG_DIR_NAMES+= objc
.endif
.if !defined(NO_FORTRAN)
GTFILES_LANG_DIR_NAMES+= f
.endif
#
# Build a list of language specific files for gengtype
#
.for L in ${GTFILES_LANG_DIR_NAMES} c
.if exists(${GCCDIR}/$L-config-lang.in)
# Source the language config file
$L_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles'
.else
$L_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles'
.endif
GTFILES+= ${$L_GTFILES}
.for F in ${$L_GTFILES}
GTFILES_FILES+= $F
GTFILES_LANGS+= $L
.endfor
.endfor
#-----------------------------------------------------------------------
# the host/target compiler config.
COMMONHDRS= config.h hconfig.h multilib.h options.h specs.h tconfig.h \
tm_p.h configargs.h safe-ctype.h
GENSRCS+= ${COMMONHDRS} gencheck.h
GENSRCS+= ${COMMONHDRS} gencheck.h gtyp-gen.h
MFILE?= ${.CURDIR}/Makefile
${COMMONHDRS}: ${MFILE}
configargs.h:
echo 'static const char configuration_arguments[] =' > ${.TARGET}
echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET}
echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET}
echo 'static const char thread_model[] = "posix";' >> ${.TARGET}
hconfig.h:
@ -131,7 +310,7 @@ specs.h:
config.h:
echo '#include <hconfig.h>' > ${.TARGET}
echo '#ifndef GENERATOR_FILE' >> ${.TARGET}
echo '#include "insn-codes.h"' >> ${.TARGET}
echo '#include "insn-constants.h"' >> ${.TARGET}
echo '#include "insn-flags.h"' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
@ -142,6 +321,9 @@ tconfig.h:
echo 'typedef struct rtvec_def *rtvec;' >> ${.TARGET}
echo 'union tree_node;' >> ${.TARGET}
echo 'typedef union tree_node *tree;' >> ${.TARGET}
echo '#ifndef GTY' >> ${.TARGET}
echo '# define GTY(x)' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
echo '' >> ${.TARGET}
.if ${TARGET_ARCH} == "amd64"
echo '#include "i386/biarch64.h"' >> ${.TARGET}
@ -149,37 +331,15 @@ tconfig.h:
.if ${TARGET_ARCH} == "ia64"
echo '#define TARGET_CPU_DEFAULT (MASK_GNU_AS|MASK_GNU_LD)' >>${.TARGET}
.endif
echo '#include "ansidecl.h"' >> ${.TARGET}
echo '#include "${GCC_CPU}/${GCC_CPU}.h"' >> ${.TARGET}
.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
echo '#include "${GCC_CPU}/att.h"' >> ${.TARGET}
.endif
.if ${TARGET_ARCH} != "alpha"
echo '#include "dbxelf.h"' >> ${.TARGET}
echo '#include "elfos.h"' >> ${.TARGET}
.endif
echo '#include <freebsd-native.h>' >> ${.TARGET}
echo '#include "freebsd-spec.h"' >> ${.TARGET}
echo '#include "freebsd.h"' >> ${.TARGET}
.if ${TARGET_ARCH} == "alpha"
echo '#include "${GCC_CPU}/elf.h"' >> ${.TARGET}
.endif
.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64"
.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
echo '#include "${GCC_CPU}/sysv4.h"' >> ${.TARGET}
.endif
.endif
echo '#include "${GCC_CPU}/freebsd.h"' >> ${.TARGET}
.if ${TARGET_ARCH} == "amd64"
echo '#include "${GCC_CPU}/x86-64.h"' >> ${.TARGET}
echo '#include "${GCC_CPU}/freebsd64.h"' >> ${.TARGET}
.endif
echo '#include "defaults.h"' >> ${.TARGET}
.for H in ${TARGET_INC}
echo '#include "$H"' >> ${.TARGET}
.endfor
echo '#ifndef POSIX' >> ${.TARGET}
echo '# define POSIX' >> ${.TARGET}
echo '#endif' >> ${.TARGET}
.if ${TARGET_ARCH} != "ia64"
echo '#define CONFIG_SJLJ_EXCEPTIONS 0' >> ${.TARGET}
.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
echo '#define EXTRA_CC_MODES 1' >> ${.TARGET}
.endif
tm_p.h:
@ -203,6 +363,33 @@ safe-ctype.h: Makefile
echo "#define IS_SPACE_OR_NUL(x) \
(isspace(x) || (x) == '\0')" >> ${.TARGET}
gtyp-gen.h:
echo "/* This file is machine generated. Do not edit. */" > ${.TARGET}
echo "static const char *srcdir = " >> ${.TARGET}
echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET}
echo "static const char *lang_files[] = {" >> ${.TARGET}
.for F in ${GTFILES_FILES}
echo "\"$F\", " >> ${.TARGET}
.endfor
echo "NULL};" >> ${.TARGET}
echo "static const char *langs_for_lang_files[] = {" >> ${.TARGET}
.for F in ${GTFILES_LANGS}
echo "\"$F\", " >> ${.TARGET}
.endfor
echo "NULL};" >> ${.TARGET}
echo "static const char *all_files[] = {" >> ${.TARGET}
.for F in ${GTFILES}
echo "\"$F\", " >> ${.TARGET}
.endfor
echo "NULL};" >> ${.TARGET}
echo "static const char *lang_dir_names[] = { \"c\", " >> ${.TARGET}
.for F in ${GTFILES_LANG_DIR_NAMES}
echo "\"$F\", " >> ${.TARGET}
.endfor
echo "NULL};" >> ${.TARGET}
echo "#define xexit exit" >> ${.TARGET}
#-----------------------------------------------------------------------
# General things.
@ -228,18 +415,14 @@ OBJS+= ${SRCS:N*.h:R:S/$/.o/g}
# all headers. Filter out the objects that would cause problems (i.e.,
# objects that will be used to create programs that will generate headers).
#
${OBJS:Nbitmap.o:Nerrors.o:Ngenattr.o:Ngencheck.o:Ngencodes.o:Ngenconfig.o:Ngenflags.o:Ngengenrtl.o:Ngenpreds.o:Ngensupport.o:Nggc-none.o:Nhashtab.o:Nobstack.o:Nprint-rtl.o:Nread-rtl.o:Nrtl.o}: ${SRCS:M*.h}
${OBJS}: ${SRCS:M*.h:Ngtype-desc.h:Ngenrtl.h:Ntree-check.h:Ntm-preds.h:Ninsn-*.h}
# Force these to be made absolustly first w/-j
${OBJS}: ${COMMONHDRS}
${OBJS:Ngencheck.o:Ngengenrtl.o:Ngenpreds.o}: tree-check.h tm-preds.h genrtl.h
${OBJS:Ngengtype*.o:Nxmemdup.o:Ngengenrtl.o:Ngencheck.o:Ngenpreds.o}: gtype-desc.h
genextract.o: insn-config.h
insn-conditions.o: insn-constants.h
# Next, make each of the problematic objects depend on only most headers.
# Filter out the headers that would cause problems (and a few more when it
# is inconvenient to filter precisely).
#
bitmap.o genattr.o gencodes.o genconfig.o genflags.o gensupport.o obstack.o print-rtl.o \
read-rtl.o rtl.o: ${SRCS:M*.h:Ninsn-*.h}
gencheck.o: gencheck.h ${SRCS:M*.h:Ngenrtl.h:Ntree-check.h:Ninsn-*.h}
gengenrtl.o: ${SRCS:M*.h:Ngenrtl.h:Ninsn-*.h}
genpreds.o: ${COMMONHDRS}
.endif

View File

@ -14,7 +14,7 @@ INFOENTRY_cppinternals= "* cppinternals: (cppinternals). The GNU compiler prepr
gcc.info: gcc.texi include/gcc-common.texi frontends.texi standards.texi \
invoke.texi extend.texi md.texi objc.texi gcov.texi trouble.texi \
bugreport.texi service.texi contribute.texi vms.texi \
bugreport.texi service.texi contribute.texi compat.texi \
include/funding.texi gnu.texi include/gpl.texi include/fdl.texi \
contrib.texi cppenv.texi cppopts.texi
@ -23,7 +23,7 @@ gccint.info: gccint.texi include/gcc-common.texi contribute.texi \
passes.texi c-tree.texi rtl.texi md.texi tm.texi hostconfig.texi \
fragments.texi configfiles.texi collect2.texi headerdirs.texi \
include/funding.texi gnu.texi include/gpl.texi include/fdl.texi \
contrib.texi languages.texi sourcebuild.texi
contrib.texi languages.texi sourcebuild.texi gty.texi
cpp.info: cpp.texi include/fdl.texi cppenv.texi cppopts.texi