1139823Simp# $FreeBSD$ 2200838Sluigi 398943Sluigi.include <bsd.own.mk> 498943Sluigi 598943SluigiCFLAGS+= -I. 698943Sluigi 798943Sluigi.include "../Makefile.inc" 898943Sluigi 9116763SluigiCFLAGS+= -g 1098943SluigiCFLAGS+= -DGENERATOR_FILE -DHAVE_CONFIG_H 1198943Sluigi 12105775Smaxim# Override LIBIBERTY set by Makefile.inc, We use our own for 1398943Sluigi# build tools. 1498943SluigiLIBIBERTY= libiberty.a 1598943Sluigi 1698943Sluigi.PATH: ${GCCDIR} ${GCCLIB}/libiberty 1798943Sluigi 1898943Sluigi#----------------------------------------------------------------------- 1998943Sluigi# Determine content of variables used by the target/host config files 2098943Sluigi 2198943Sluigi# 2298943Sluigi# The list of headers to go into tm.h 2398943Sluigi# 2498943SluigiTARGET_INC+= options.h 2598943Sluigi.if ${TARGET_CPUARCH} == "amd64" 26172467SsilbyTARGET_INC+= i386/biarch64.h 27172467Ssilby.endif 28172467Ssilby.if ${TARGET_CPUARCH} != "arm" 2998943SluigiTARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 30200601Sluigi.endif 3198943Sluigi.if ${TARGET_CPUARCH} == "i386" || ${TARGET_CPUARCH} == "amd64" 3298943SluigiTARGET_INC+= ${GCC_CPU}/unix.h 33225518SjhbTARGET_INC+= ${GCC_CPU}/att.h 34166479Salc.endif 3598943SluigiTARGET_INC+= dbxelf.h 3698943SluigiTARGET_INC+= elfos-undef.h 3798943SluigiTARGET_INC+= elfos.h 3898943SluigiTARGET_INC+= freebsd-native.h 39152928SumeTARGET_INC+= freebsd-spec.h 40152928SumeTARGET_INC+= freebsd.h 4198943Sluigi.if ${TARGET_CPUARCH} != "i386" && ${TARGET_CPUARCH} != "amd64" 4298943Sluigi. if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) 4398943SluigiTARGET_INC+= ${GCC_CPU}/sysv4.h 44138642Scsjp. endif 45165648Spiso.endif 4698943Sluigi.if ${TARGET_CPUARCH} == "amd64" 4798943SluigiTARGET_INC+= ${GCC_CPU}/x86-64.h 4898943Sluigi.endif 49155201Scsjp.if ${TARGET_CPUARCH} == "arm" || ${TARGET_CPUARCH} == "mips" 50133600ScsjpTARGET_INC+= ${GCC_CPU}/elf.h 51129876Sphk.endif 52164033Srwatson.if ${TARGET_CPUARCH} == "arm" 5398943SluigiTARGET_INC+= ${GCC_CPU}/aout.h 54155201Scsjp.if ${MK_ARM_EABI} != "no" 5598943SluigiTARGET_INC+= ${GCC_CPU}/bpabi.h 5698943Sluigi.endif 5798943Sluigi.endif 5898943Sluigi.if ${TARGET_ARCH} == "powerpc64" 5998943SluigiTARGET_INC+= ${GCC_CPU}/biarch64.h 60188676SluigiTARGET_INC+= ${GCC_CPU}/default64.h 6198943Sluigi.endif 6298943SluigiTARGET_INC+= ${GCC_CPU}/freebsd.h 63171173Smlaier.if ${TARGET_CPUARCH} == "amd64" 64243586SaeTARGET_INC+= ${GCC_CPU}/freebsd64.h 65185571Sbz.endif 66175659Srwatson.if ${TARGET_CPUARCH} == "arm" 6798943SluigiTARGET_INC+= ${GCC_CPU}/arm.h 6898943Sluigi.endif 6998943SluigiTARGET_INC+= defaults.h 7098943Sluigi 7198943Sluigi.for H in ${TARGET_INC} 7298943Sluigi.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR} 7398943Sluigi.if exists($D/$H) 74163069SbzTARGET_INC_FILES+= $D/$H 75161767Sjhay.endif 7698943Sluigi.endfor 7798943Sluigi.endfor 7898943Sluigi 79164258Sbz# 80185571Sbz# gtyp includes. 81145246Sbrooks# 82145246Sbrookssrcdir= ${GCCDIR} 83148414SumeCPPLIB_H= ${GCCLIB}/libcpp/include/line-map.h \ 84223073Sae ${GCCLIB}/libcpp/include/cpplib.h 85148414SumeSYMTAB_H= ${GCCLIB}/libcpp/include/symtab.h 86200027SumeCPP_ID_DATA_H= ${CPPLIB_H} ${GCCLIB}/libcpp/include/cpp-id-data.h 87148414SumeHASHTAB_H= ${GCCLIB}/include/hashtab.h 88145246SbrooksSPLAY_TREE_H= ${GCCLIB}/include/splay-tree.h 89243401Sglebiusout_file= ${srcdir}/config/${GCC_CPU}/${GCC_CPU}.c 90243401Sglebiustm_file_list= ${TARGET_INC_FILES} 9199475Sluigihost_xm_file_list= ${.CURDIR}/auto-host.h ${GCCLIB}/include/ansidecl.h 9299475SluigiGTFILES_SRCDIR= ${srcdir} 93188580Sluigi 94163606Srwatson# Copied unchanged from gcc/Makefile.in 95188580SluigiGTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \ 96163606Srwatson $(CPP_ID_DATA_H) $(host_xm_file_list) \ 97101628Sluigi $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \ 98200601Sluigi $(srcdir)/coverage.c $(srcdir)/rtl.h \ 99200601Sluigi $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \ 100101628Sluigi $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \ 10198943Sluigi $(srcdir)/ipa-reference.h $(srcdir)/output.h \ 102200601Sluigi $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ 103215701Sdim $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \ 104200601Sluigi $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ 105195699Srwatson $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c \ 106215701Sdim $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ 107200601Sluigi $(srcdir)/dojump.c $(srcdir)/tree-profile.c \ 108200601Sluigi $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ 109225030Sbz $(srcdir)/function.c $(srcdir)/except.h \ 110225030Sbz $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ 111225030Sbz $(srcdir)/profile.c $(srcdir)/regclass.c \ 112191932Sjhb $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \ 113191932Sjhb $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \ 114191932Sjhb $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \ 115191932Sjhb $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \ 116191932Sjhb $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \ 11798943Sluigi $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \ 118200601Sluigi $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \ 119220878Sbz $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \ 120193859Soleg $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \ 121234597Smelifaro $(srcdir)/tree-chrec.h $(srcdir)/tree-vect-generic.c \ 122234597Smelifaro $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \ 123234597Smelifaro $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \ 124234597Smelifaro $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \ 125130363Scsjp $(srcdir)/tree-ssa-structalias.c \ 126200601Sluigi $(srcdir)/c-pragma.h $(srcdir)/omp-low.c \ 127200601Sluigi $(srcdir)/targhooks.c $(srcdir)/cgraphunit.c $(out_file) \ 128200601Sluigi 129200601Sluigi# The list of frontend directories to look into 130200601SluigiGTFILES_LANG_DIR_NAMES= 131200601Sluigi 132200601Sluigi.if ${MK_CXX} != "no" 13398943SluigiGTFILES_LANG_DIR_NAMES+= cp 134200601Sluigi.endif 135200601Sluigi 136200601Sluigi# The list of language specific files for gengtype 137200601Sluigi.for L in ${GTFILES_LANG_DIR_NAMES} c 138200601Sluigi.if exists(${GCCDIR}/$L-config-lang.in) 139200601Sluigi# Source the language config file 140200601SluigiL_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles' 141200601Sluigi.else 142200601SluigiL_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles' 143195699Srwatson.endif 14498943Sluigi.for F in ${L_GTFILES} 145255395StrocinyGTFILES_FILES+= $F 146255395StrocinyGTFILES_LANGS+= $L 147176669Spiso.endfor 148200580Sluigi.endfor 149176669SpisoGTFILES+= ${GTFILES_FILES} 150176669Spiso 151176669Spiso# 152176669Spiso# Tree definition files. 15398943Sluigi# 15498943SluigiTREE_DEF_FILES= 155204591Sluigi 156234597Smelifaro.if ${MK_CXX} != "no" 157204591SluigiTREE_DEF_FILES+= cp/cp-tree.def 158204591Sluigi.endif 159204591Sluigi 16098943Sluigi# 161200601Sluigi# Option files. 162200601Sluigi# 163200601SluigiOPT_FILES= c.opt common.opt 164195699Srwatson 165195862Sjulian.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt) 166195862SjulianOPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt 167195699Srwatson.endif 168195862Sjulian 169195862Sjulian.if exists(${.CURDIR}/${GCC_CPU}-freebsd.opt) 170195699SrwatsonOPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt 171195699Srwatson.endif 172186048Sbz 173182818Srik.if ${TARGET_CPUARCH} == "powerpc" 174204591SluigiOPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt 175195862Sjulian.endif 176234597Smelifaro 177234597Smelifaro.if ${TARGET_CPUARCH} == "sparc64" 178234597SmelifaroOPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt 179191932Sjhb.endif 180195862Sjulian 181195862Sjulian.if exists(${.CURDIR}/freebsd.opt) 182191932SjhbOPT_FILES+= ${.CURDIR}/freebsd.opt 183234597Smelifaro.endif 184200838Sluigi 185200838Sluigi#----------------------------------------------------------------------- 186200838Sluigi# Build rules for header files and generator tools 187200040Sluigi 188195862Sjulian# Host config 189195862Sjulianconfig.h: 190195862Sjulian TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 191195862Sjulian HEADERS="auto-host.h ansidecl.h" \ 192195862Sjulian DEFINES="" \ 193195862Sjulian /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 194225030Sbz 195225030SbzGENSRCS+= config.h 196225030SbzCLEANFILES+= cs-config.h 197200040Sluigi 19898943Sluigi# Build config 199204591Sluigibconfig.h: 200204591Sluigi TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 201187821Sluigi HEADERS="auto-host.h ansidecl.h" \ 20298943Sluigi DEFINES="" \ 203200580Sluigi /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 204149020Sbz.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 205200601Sluigi echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 206145093Sbrooks.endif 207145093Sbrooks 20898943SluigiGENSRCS+= bconfig.h 209145093SbrooksCLEANFILES+= cs-bconfig.h 210145093Sbrooks 211164258Sbz# tconfig.h 212145093Sbrookstconfig.h: 213145565Sbrooks TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 214145246Sbrooks HEADERS="auto-host.h ansidecl.h" \ 21598943Sluigi DEFINES="USED_FOR_TARGET" \ 21699622Sluigi /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 217145565Sbrooks 21898943SluigiGENSRCS+= tconfig.h 219145093SbrooksCLEANFILES+= cs-tconfig.h 22098943Sluigi# Options 22198943Sluigioptionlist: ${OPT_FILES} 22298943Sluigi LC_ALL=C awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET} 22398943Sluigi 22498943Sluigioptions.h: optionlist 22598943Sluigi LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \ 22698943Sluigi -f ${GCCDIR}/opth-gen.awk \ 22798943Sluigi < ${.ALLSRC} > ${.TARGET} 228145565Sbrooks 22998943Sluigioptions.c: optionlist 230145093Sbrooks LC_ALL=C awk -f ${GCCDIR}/opt-functions.awk \ 231145093Sbrooks -f ${GCCDIR}/optc-gen.awk \ 23298943Sluigi -v header_name="config.h system.h coretypes.h tm.h" \ 23398943Sluigi < ${.ALLSRC} > ${.TARGET} 23498943SluigiGENONLY+= optionlist options.h options.c 23598943Sluigi 23698943Sluigi# Target machine config 23798943Sluigitm.h: 23898943Sluigi TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 23998943Sluigi HEADERS="${TARGET_INC}" \ 24098943Sluigi DEFINES="" \ 24198943Sluigi /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 24298943Sluigi.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 24398943Sluigi echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 24498943Sluigi.endif 24598943Sluigi 24698943SluigiGENSRCS+= tm.h 24798943SluigiCLEANFILES+= cs-tm.h 24898943Sluigi 24998943Sluigi# Target machine protos/preds. 25098943Sluigitm_p.h: 25198943Sluigi TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 25298943Sluigi HEADERS="${GCC_CPU}/${GCC_CPU}-protos.h tm-preds.h" \ 25398943Sluigi DEFINES="" \ 25498943Sluigi /bin/sh ${GCCDIR}/mkconfig.sh tm_p.h 25598943Sluigi 25698943SluigiGENSRCS+= tm_p.h 25798943SluigiCLEANFILES+= cs-tm_p.h 25898943Sluigi 25998943Sluigi# gencheck 26098943Sluigigencheck.h: ${TREE_DEF_FILES} 26198943Sluigi.for F in ${TREE_DEF_FILES} 26298943Sluigi echo "#include \"$F\"" >> ${.TARGET} 26398943Sluigi.endfor 26498943Sluigi touch ${.TARGET} 26598943Sluigi 26698943SluigiGENSRCS+= gencheck.h 26798943Sluigi 26898943Sluigi 26998943Sluigi# Source header for gtyp generator. 27098943Sluigigtyp-gen.h: ${GTFILES} 27198943Sluigi echo "/* This file is machine generated. Do not edit. */" > ${.TARGET} 27298943Sluigi echo "static const char * const srcdir = " >> ${.TARGET} 27398943Sluigi echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET} 27498943Sluigi echo "static const char * const lang_files[] = {" >> ${.TARGET} 27598943Sluigi.for F in ${GTFILES_FILES} 27698943Sluigi echo "\"$F\", " >> ${.TARGET} 27798943Sluigi.endfor 27898943Sluigi echo "NULL};" >> ${.TARGET} 27998943Sluigi echo "static const char * const langs_for_lang_files[] = {">> ${.TARGET} 28098943Sluigi.for F in ${GTFILES_LANGS} 28198943Sluigi echo "\"$F\", " >> ${.TARGET} 28298943Sluigi.endfor 28398943Sluigi echo "NULL};" >> ${.TARGET} 28498943Sluigi echo "static const char * const all_files[] = {" >> ${.TARGET} 28598943Sluigi.for F in ${GTFILES} 28698943Sluigi echo "\"$F\", " >> ${.TARGET} 28798943Sluigi.endfor 28898943Sluigi echo "NULL};" >> ${.TARGET} 28998943Sluigi echo "static const char * const lang_dir_names[] = {" >> ${.TARGET} 29098943Sluigi.for F in c ${GTFILES_LANG_DIR_NAMES} 29198943Sluigi echo "\"$F\", " >> ${.TARGET} 29298943Sluigi.endfor 29398943Sluigi echo "NULL};" >> ${.TARGET} 29498943Sluigi 29598943SluigiGENSRCS+= gtyp-gen.h 29698943Sluigi 29798943Sluigi# Version header for gcov 29898943Sluigigcov-iov.h: 29998943Sluigi echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET} 30098943Sluigi 30198943SluigiGENSRCS+= gcov-iov.h 30298943Sluigi 30398943Sluigi# Multilib config file 30498943Sluigimultilib.h: 30598943Sluigi.if ${TARGET_ARCH} == "powerpc64" || ${TARGET_ARCH} == "amd64" 30698943Sluigi echo 'static const char *const multilib_raw[] = { \ 307145093Sbrooks ". !m64 !m32;", \ 30898943Sluigi "64:../lib m64 !m32;", \ 30998943Sluigi "32:../lib32 !m64 m32;", NULL };' > ${.TARGET} 31098943Sluigi echo 'static const char *multilib_options = "m64/m32";' >> ${.TARGET} 31198943Sluigi echo 'static const char *const multilib_matches_raw[] = { \ 31298943Sluigi "m64 m64;", "m32 m32;", NULL };' >> ${.TARGET} 31398943Sluigi.else 31498943Sluigi echo 'static const char *const multilib_raw[] = { \ 31598943Sluigi ". ;", NULL };' > ${.TARGET} 31698943Sluigi echo 'static const char *multilib_options = "";' >> ${.TARGET} 31798943Sluigi echo 'static const char *const multilib_matches_raw[] = { \ 31898943Sluigi NULL };' >> ${.TARGET} 31998943Sluigi.endif 32098943Sluigi echo 'static const char *multilib_extra = "";' >> ${.TARGET} 32198943Sluigi echo 'static const char *const multilib_exclusions_raw[] = { \ 32298943Sluigi NULL };' >> ${.TARGET} 32398943Sluigi 32498943SluigiGENSRCS+= multilib.h 32598943Sluigi 32698943Sluigiconfigargs.h: 32798943Sluigi echo 'static const char configuration_arguments[] =' > ${.TARGET} 32898943Sluigi echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET} 32998943Sluigi echo 'static const char thread_model[] = "posix";' >> ${.TARGET} 33098943Sluigi echo 'static const struct {' >> ${.TARGET} 33198943Sluigi echo ' const char *name, *value;' >> ${.TARGET} 33298943Sluigi echo '} configure_default_options[] = {' >> ${.TARGET} 33398943Sluigi echo ' { "NULL", "NULL" } };' >> ${.TARGET} 33498943Sluigi 33598943SluigiGENSRCS+= configargs.h 33698943Sluigi 33798943Sluigi# Language spec files 33898943Sluigispecs.h: 33998943Sluigi echo '#include "cp/lang-specs.h"' > ${.TARGET} 34098943Sluigi 34198943SluigiGENSRCS+= specs.h 34298943Sluigi 34398943Sluigigstdint.h: 34498943Sluigi echo '#include "sys/types.h"' > ${.TARGET} 34598943Sluigi echo '#include "sys/stdint.h"' >> ${.TARGET} 34698943Sluigi 34798943SluigiGENSRCS+= gstdint.h 34898943Sluigi 34998943Sluigi# Linked headers 35098943Sluigigthr-default.h: ${GCCDIR}/gthr-posix.h 35198943Sluigi ln -sf ${.ALLSRC} ${.TARGET} 35298943Sluigi 353234597SmelifaroGENSRCS+= gthr-default.h 35498943Sluigi 35598943Sluigi.if ${TARGET_CPUARCH} == "arm" && ${MK_ARM_EABI} != "no" 35698943Sluigiunwind.h: ${GCCDIR}/config/arm/unwind-arm.h 35798943Sluigi.else 35899475Sluigiunwind.h: ${GCCDIR}/unwind-generic.h 359234597Smelifaro.endif 360234597Smelifaro 361234597Smelifarounwind.h: 36298943Sluigi ln -sf ${.ALLSRC} ${.TARGET} 363121816Sbrooks 364121816SbrooksGENSRCS+= unwind.h 365121816Sbrooks 366121816Sbrooks# 367121816Sbrooks# gtype gunk 368121816Sbrooks# 369121816Sbrooksgengtype-lex.c: gengtype-lex.l 37098943Sluigi flex -ogengtype-lex.c ${.ALLSRC} 371210120Sluigi 37298943Sluigigengtype-yacc.h: gengtype-yacc.y 37398943Sluigi yacc -d -o gengtype-yacc.c ${.ALLSRC} 374195023Srwatson 37598943Sluigigengtype-yacc.c: gengtype-yacc.h 37698943Sluigi 37798943Sluigigengtype-yacc+%DIKED.c: gengtype-yacc.c 37898943Sluigi cat ${.ALLSRC} > ${.TARGET} 379191288Srwatson sed -e "s/xmalloc/malloc/g" \ 380195023Srwatson -e "s/xrealloc/realloc/g" \ 38198943Sluigi -e "s/malloc/xmalloc/g" \ 382191288Srwatson -e "s/realloc/xrealloc/g" \ 38398943Sluigi ${.ALLSRC} > ${.TARGET} 384195023Srwatson 385204591SluigiGENSRCS+= gengtype-lex.c gengtype-yacc.h gengtype-yacc+%DIKED.c 38698943SluigiCLEANFILES+= gengtype-yacc.c 38798943Sluigi 38898943Sluigigengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o errors.o \ 38998943Sluigi ${LIBIBERTY} 390112250Scjc ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 391128575Sandre 392128575Sandregtype-desc.h: gengtype 393128575Sandre ./gengtype 394112250Scjc touch ${.TARGET} 395116763Sluigi 396200601Sluigigtype-desc.c: gtype-desc.h 397200601Sluigi 398200601SluigiGENONLY+= gtype-desc.c gtype-desc.h 399200601SluigiCLEANFILES+= gt-*.h gtype-*.h 400200601Sluigi 401200601Sluigi# 402128575Sandre# Generator tools. 403112250Scjc# 404112250Scjc.for F in check checksum genrtl modes 405128575Sandregen$F: gen$F.o errors.o ${LIBIBERTY} 406112250Scjc ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 407200601Sluigi.endfor 408200601Sluigi 409200601Sluigi.for F in attr attrtab automata codes conditions config constants emit \ 410112250Scjc extract flags opinit output peep preds recog 411112250Scjcgen$F: gen$F.o rtl.o read-rtl.o ggc-none.o vec.o min-insn-modes.o \ 412178888Sjulian gensupport.o print-rtl.o errors.o ${LIBIBERTY} 413112250Scjc ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm 414204591Sluigi.endfor 415204591Sluigi 416204591Sluigigencondmd: gencondmd.o 417123000Sandre ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 418112250Scjc 419112250Scjc# 420123000Sandre# Generated .md files. 421123000Sandre# 422112250Scjcinsn-conditions.md: gencondmd 423123000Sandre ./gencondmd > ${.TARGET} 424123000SandreGENSRCS+= insn-conditions.md 425123000Sandre 426186119Sqingli# 427112250Scjc# Generated header files. 428122922Sandre# 429112250Scjc 430128575Sandre.for F in constants 431154769Soleginsn-$F.h: gen$F ${MD_FILE} 432154769Soleg ./gen$F ${MD_FILE} > ${.TARGET} 433154769SolegGENSRCS+= insn-$F.h 434154769Soleg.endfor 435154769Soleg 436154769Soleg.for F in attr codes config flags 437154769Soleginsn-$F.h: gen$F ${MD_FILE} insn-conditions.md 438154769Soleg ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 439122922SandreGENSRCS+= insn-$F.h 440122922Sandre.endfor 441122922Sandre 442128575Sandre# Header files with irregular names. 443128575Sandregenrtl.h: gengenrtl 444128575Sandre ./gengenrtl -h > ${.TARGET} 445128575SandreGENSRCS+= genrtl.h 446128575Sandre 447128575Sandretm-preds.h: genpreds 448128575Sandre ./genpreds -h ${MD_FILE} > ${.TARGET} 449128575SandreGENSRCS+= tm-preds.h 450132510Sandre 451132510Sandretm-constrs.h: genpreds 452132510Sandre ./genpreds -c ${MD_FILE} > ${.TARGET} 453132510SandreGENSRCS+= tm-constrs.h 454132510Sandre 455132510Sandretree-check.h: gencheck 456128575Sandre ./gencheck > ${.TARGET} 457122922SandreGENSRCS+= tree-check.h 458116981Sluigi 459204591Sluigiinsn-modes.h: genmodes 460112250Scjc ./genmodes -h > ${.TARGET} 461112250ScjcGENSRCS+= insn-modes.h 462145266Sphk 463145246Sbrooks# 464145246Sbrooks# Generated source files. 465145246Sbrooks# 466145246Sbrooks.for F in attrtab automata emit extract opinit output peep preds recog 467145246Sbrooksinsn-$F.c: gen$F ${MD_FILE} insn-conditions.md 468145246Sbrooks ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 469147415SmlaierGENONLY+= insn-$F.c 470145246Sbrooks.endfor 471112250Scjc 472145246Sbrooks.for F in conditions 473145246Sbrooksinsn-$F.c: gen$F ${MD_FILE} 474145246Sbrooks ./gen$F ${MD_FILE} > ${.TARGET} 475147415SmlaierGENSRCS+= insn-$F.c 476147415Smlaier.endfor 477147415Smlaier 478147415Smlaier# Source files with irregular names. 479147415Smlaierinsn-modes.c: genmodes 480145246Sbrooks ./genmodes > ${.TARGET} 481145246SbrooksGENONLY+= insn-modes.c 482145246Sbrooks 483145246Sbrooksmin-insn-modes.c: genmodes 484145246Sbrooks ./genmodes -m > ${.TARGET} 485145246SbrooksGENSRCS+= min-insn-modes.c 486147415Smlaier 487147415Smlaiergenrtl.c: gengenrtl 488147415Smlaier ./gengenrtl > ${.TARGET} 489147415SmlaierGENONLY+= genrtl.c 490145246Sbrooks 491191288Srwatsongencondmd.c: genconditions ${MD_FILE} 492195023Srwatson ./genconditions ${MD_FILE} > ${.TARGET} 493191338SrwatsonGENSRCS+= gencondmd.c 494147415Smlaier 495147415Smlaier#----------------------------------------------------------------------- 496147415Smlaier# Build tools. 497147415Smlaier 498147415SmlaierGNTOOLS+= genattr genattrtab genautomata gencodes gencheck genchecksum \ 499191288Srwatson genconditions gencondmd genconfig genconstants genemit \ 500195023Srwatson genextract genflags gengenrtl gengtype genmodes genopinit \ 501147415Smlaier genoutput genpeep genpreds genrecog 502191288Srwatson 503147415Smlaierall: ${GNTOOLS} ${GENSRCS} ${GENONLY} 504147415Smlaierbeforedepend: ${GENONLY} 505195023Srwatson 506191288Srwatson# 507147415Smlaier#----------------------------------------------------------------------- 508145246Sbrooks# Build 'pocket' libiberty exclusively for build tools use. 509145246Sbrooks 510145246SbrooksLIBIBERTY_SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \ 511232292Sbz dyn-string.c fibheap.c fopen_unlocked.c getpwd.c getruntime.c \ 512145246Sbrooks hashtab.c hex.c lbasename.c make-temp-file.c md5.c obstack.c \ 513147418Smlaier partition.c pex-unix.c physmem.c safe-ctype.c splay-tree.c xexit.c \ 514147415Smlaier xmalloc.c xmemdup.c xstrdup.c xstrerror.c 515145246SbrooksLIBIBERTY_OBJS= ${LIBIBERTY_SRCS:R:S/$/.o/g} 516147418Smlaier 517147418Smlaier.for _src in ${LIBIBERTY_SRCS} 518147415Smlaier${_src:R:S/$/.o/}: ${_src} 519147418Smlaier ${CC} -c -I ${.CURDIR}/../libiberty ${CFLAGS} -o ${.TARGET} ${.IMPSRC} 520147418Smlaier.endfor 521147418Smlaier 522145246Sbrooks${LIBIBERTY}: ${LIBIBERTY_OBJS} 523232292Sbz @rm -f ${.TARGET} 524147418Smlaier @${AR} ${ARFLAGS} ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` 525147418Smlaier ${RANLIB} ${.TARGET} 526147418SmlaierCLEANFILES+= ${LIBIBERTY} ${LIBIBERTY_OBJS} 527152288Ssuz 528152288Ssuz 529152288Ssuz#----------------------------------------------------------------------- 530152288Ssuz# Fixups. 531152288Ssuz 532152288Ssuz# Set OBJS the same as bsd.prog.mk would do if we defined PROG. We can't 533152288Ssuz# define PROG because we have multiple programs. 534152288Ssuz# 535147418SmlaierSRCS= errors.c genattr.c genattrtab.c \ 536147418Smlaier genautomata.c gencheck.c genchecksum.c gencodes.c \ 537147415Smlaier genconditions.c genconfig.c genconstants.c genemit.c \ 538147418Smlaier genextract.c genflags.c gengenrtl.c gengtype.c genmodes.c \ 539147418Smlaier genopinit.c genoutput.c genpeep.c genpreds.c genrecog.c \ 540147418Smlaier gensupport.c ggc-none.c print-rtl.c read-rtl.c rtl.c \ 541147418Smlaier vec.c 542147418Smlaier 543147415SmlaierSRCS+= ${GENSRCS} 544147418SmlaierOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 545147418SmlaierGENOBJS+= ${GENSRCS:N*.h:R:S/$/.o/g} 546147418SmlaierCLEANFILES+= ${GENSRCS} ${GENONLY} ${GENOBJS} ${GNTOOLS} 547147418Smlaier 548147418Smlaier#----------------------------------------------------------------------- 549147418Smlaier# Manual dependencies. 550147418Smlaier.if !exists(${DEPENDFILE}) 551147418Smlaier.include "Makefile.dep" 552147418Smlaier.endif 553147418Smlaier 554147415Smlaier.include <bsd.prog.mk> 555147418Smlaier# DO NOT DELETE 556145246Sbrooks