Makefile revision 169828
138494Sobrien# $FreeBSD: head/gnu/usr.bin/cc/cc_tools/Makefile 169828 2007-05-21 12:04:16Z ru $ 238494Sobrien 338494Sobrien.include <bsd.own.mk> 438494Sobrien 538494SobrienCFLAGS+= -I. 638494Sobrien 738494Sobrien.include "../Makefile.inc" 838494Sobrien 9310490ScyCFLAGS+= -g 1038494SobrienCFLAGS+= -DGENERATOR_FILE -DHAVE_CONFIG_H 1138494Sobrien 1238494Sobrien# Override LIBIBERTY set by Makefile.inc, We use our own for 1338494Sobrien# build tools. 1438494SobrienLIBIBERTY= libiberty.a 15310490Scy 16174294Sobrien.PATH: ${GCCDIR} ${GCCLIB}/libiberty 17174294Sobrien 18174294Sobrien#----------------------------------------------------------------------- 19174294Sobrien# Determine content of variables used by the target/host config files 20310490Scy 2138494Sobrien# 2238494Sobrien# The list of headers to go into tm.h 2338494Sobrien# 24310490ScyTARGET_INC+= options.h 2538494Sobrien.if ${TARGET_ARCH} == "amd64" 2638494SobrienTARGET_INC+= i386/biarch64.h 2738494Sobrien.endif 2838494Sobrien.if ${TARGET_ARCH} != "arm" 2938494SobrienTARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 3038494Sobrien.endif 3138494Sobrien.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" 3241142SobrienTARGET_INC+= ${GCC_CPU}/unix.h 3341142SobrienTARGET_INC+= ${GCC_CPU}/att.h 3451292Sobrien.endif 3551292SobrienTARGET_INC+= dbxelf.h 3651292SobrienTARGET_INC+= elfos.h 3751292SobrienTARGET_INC+= freebsd-native.h 38310490ScyTARGET_INC+= freebsd-spec.h 3938494SobrienTARGET_INC+= freebsd.h 4038494Sobrien.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" 4138494Sobrien.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) 4238494SobrienTARGET_INC+= ${GCC_CPU}/sysv4.h 43310490Scy.endif 4438494Sobrien.endif 4538494Sobrien.if ${TARGET_ARCH} == "amd64" 4638494SobrienTARGET_INC+= ${GCC_CPU}/x86-64.h 4738494SobrienTARGET_INC+= ${GCC_CPU}/freebsd.h 4838494SobrienTARGET_INC+= ${GCC_CPU}/freebsd64.h 4938494SobrienTARGET_INC+= freebsd64-fix.h 5038494Sobrien.elif ${TARGET_ARCH} == "arm" 5138494SobrienTARGET_INC+= ${GCC_CPU}/elf.h 5238494SobrienTARGET_INC+= ${GCC_CPU}/aout.h 5338494SobrienTARGET_INC+= ${GCC_CPU}/freebsd.h 5438494SobrienTARGET_INC+= ${GCC_CPU}/arm.h 55310490Scy.else 5638494SobrienTARGET_INC+= ${GCC_CPU}/freebsd.h 5738494Sobrien.endif 5838494SobrienTARGET_INC+= defaults.h 5938494Sobrien 6038494Sobrien.for H in ${TARGET_INC} 6138494Sobrien.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR} 6238494Sobrien.if exists($D/$H) 6338494SobrienTARGET_INC_FILES+= $D/$H 6438494Sobrien.endif 6538494Sobrien.endfor 6638494Sobrien.endfor 6738494Sobrien 6838494Sobrien# 6938494Sobrien# gtyp includes. 7038494Sobrien# 71310490Scysrcdir= ${GCCDIR} 7238494SobrienCPPLIB_H= ${GCCLIB}/libcpp/include/line-map.h \ 7338494Sobrien ${GCCLIB}/libcpp/include/cpplib.h 7438494SobrienSYMTAB_H= ${GCCLIB}/libcpp/include/symtab.h 75310490ScyCPP_ID_DATA_H= ${CPPLIB_H} ${GCCLIB}/libcpp/include/cpp-id-data.h 7638494SobrienHASHTAB_H= ${GCCLIB}/include/hashtab.h 7738494SobrienSPLAY_TREE_H= ${GCCLIB}/include/splay-tree.h 7838494Sobrienout_file= ${srcdir}/config/${GCC_CPU}/${GCC_CPU}.c 7938494Sobrientm_file_list= ${TARGET_INC_FILES} 8038494Sobrienhost_xm_file_list= ${.CURDIR}/auto-host.h ${GCCLIB}/include/ansidecl.h 8138494SobrienGTFILES_SRCDIR= ${srcdir} 8238494Sobrien 8338494Sobrien# Copied unchanged from gcc/Makefile.in 8438494SobrienGTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \ 8538494Sobrien $(CPP_ID_DATA_H) $(host_xm_file_list) \ 8638494Sobrien $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \ 8782794Sobrien $(srcdir)/coverage.c $(srcdir)/rtl.h \ 8882794Sobrien $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \ 89310490Scy $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \ 9038494Sobrien $(srcdir)/ipa-reference.h $(srcdir)/output.h \ 9138494Sobrien $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ 9238494Sobrien $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \ 9338494Sobrien $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ 9438494Sobrien $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c \ 9538494Sobrien $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ 9638494Sobrien $(srcdir)/dojump.c $(srcdir)/tree-profile.c \ 9738494Sobrien $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ 9838494Sobrien $(srcdir)/function.c $(srcdir)/except.h \ 9941142Sobrien $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ 10041142Sobrien $(srcdir)/profile.c $(srcdir)/regclass.c \ 10141142Sobrien $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \ 102310490Scy $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \ 10338494Sobrien $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \ 10438494Sobrien $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \ 10538494Sobrien $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \ 10638494Sobrien $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \ 107310490Scy $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \ 108310490Scy $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \ 10938494Sobrien $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \ 110310490Scy $(srcdir)/tree-chrec.h $(srcdir)/tree-vect-generic.c \ 11138494Sobrien $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \ 11238494Sobrien $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \ 11338494Sobrien $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \ 11438494Sobrien $(srcdir)/tree-ssa-structalias.c \ 11538494Sobrien $(srcdir)/c-pragma.h $(srcdir)/omp-low.c \ 11638494Sobrien $(srcdir)/targhooks.c $(srcdir)/cgraphunit.c $(out_file) \ 11738494Sobrien 11838494Sobrien# The list of frontend directories to look into 11938494SobrienGTFILES_LANG_DIR_NAMES= 12051292Sobrien 12151292Sobrien.if ${MK_CXX} != "no" 12251292SobrienGTFILES_LANG_DIR_NAMES+= cp 12351292Sobrien.endif 12451292Sobrien 12551292Sobrien.if ${MK_OBJC} != "no" 12651292SobrienGTFILES_LANG_DIR_NAMES+= objc 12751292Sobrien.endif 12851292Sobrien 12982794Sobrien# The list of language specific files for gengtype 13082794Sobrien.for L in ${GTFILES_LANG_DIR_NAMES} c 13182794Sobrien.if exists(${GCCDIR}/$L-config-lang.in) 13282794Sobrien# Source the language config file 13382794SobrienL_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles' 13482794Sobrien.else 135310490ScyL_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles' 13638494Sobrien.endif 13738494Sobrien.for F in ${L_GTFILES} 13838494SobrienGTFILES_FILES+= $F 139310490ScyGTFILES_LANGS+= $L 14038494Sobrien.endfor 141310490Scy.endfor 14238494SobrienGTFILES+= ${GTFILES_FILES} 14338494Sobrien 14438494Sobrien# 14538494Sobrien# Tree definition files. 14638494Sobrien# 147310490ScyTREE_DEF_FILES= 14838494Sobrien 14938494Sobrien.if ${MK_CXX} != "no" 15038494SobrienTREE_DEF_FILES+= cp/cp-tree.def 15138494Sobrien.endif 152310490Scy 15338494Sobrien.if ${MK_OBJC} != "no" 15438494SobrienTREE_DEF_FILES+= objc/objc-tree.def 15538494Sobrien.endif 15638494Sobrien 157310490Scy# 15838494Sobrien# Option files. 15938494Sobrien# 16038494SobrienOPT_FILES= c.opt common.opt 16138494Sobrien 162310490Scy.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt) 16338494SobrienOPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt 16438494Sobrien.endif 16538494Sobrien 16638494Sobrien.if exists(${.CURDIR}/${GCC_CPU}-freebsd.opt) 16738494SobrienOPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt 16838494Sobrien.endif 16938494Sobrien 17038494Sobrien.if ${TARGET_ARCH} == "powerpc" 171174294SobrienOPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt 172174294Sobrien.endif 173174294Sobrien 174119679Smbr.if ${TARGET_ARCH} == "sparc64" 175119679SmbrOPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt 176119679Smbr.endif 177174294Sobrien 178174294Sobrien.if exists(${.CURDIR}/freebsd.opt) 179174294SobrienOPT_FILES+= ${.CURDIR}/freebsd.opt 180174294Sobrien.endif 181174294Sobrien 182174294Sobrien#----------------------------------------------------------------------- 183174294Sobrien# Build rules for header files and generator tools 184310490Scy 18538494Sobrien# Host config 18638494Sobrienconfig.h: 18738494Sobrien TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 18838494Sobrien HEADERS="auto-host.h ansidecl.h" \ 18938494Sobrien DEFINES="" \ 19051292Sobrien /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 19151292Sobrien 192310490ScyGENSRCS+= config.h 19338494SobrienCLEANFILES+= cs-config.h 19438494Sobrien 19538494Sobrien# Build config 196310490Scybconfig.h: 19738494Sobrien TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 19838494Sobrien HEADERS="auto-host.h ansidecl.h" \ 19938494Sobrien DEFINES="" \ 200310490Scy /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 20138494Sobrien.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 20238494Sobrien echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 20338494Sobrien.endif 20438494Sobrien 205310490ScyGENSRCS+= bconfig.h 20638494SobrienCLEANFILES+= cs-bconfig.h 20738494Sobrien 20838494Sobrien# tconfig.h 209174294Sobrientconfig.h: 210174294Sobrien TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 211310490Scy HEADERS="auto-host.h ansidecl.h" \ 21238494Sobrien DEFINES="USED_FOR_TARGET" \ 21338494Sobrien /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 21438494Sobrien 21538494SobrienGENSRCS+= tconfig.h 21641142SobrienCLEANFILES+= cs-tconfig.h 21741142Sobrien# Options 21841142Sobrienoptionlist: ${OPT_FILES} 219310490Scy awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET} 22038494Sobrien 22138494Sobrienoptions.h: optionlist 22238494Sobrien awk -f ${GCCDIR}/opt-functions.awk \ 223310490Scy -f ${GCCDIR}/opth-gen.awk \ 22438494Sobrien < ${.ALLSRC} > ${.TARGET} 22538494Sobrien 22638494Sobrienoptions.c: optionlist 22738494Sobrien awk -f ${GCCDIR}/opt-functions.awk \ 22838494Sobrien -f ${GCCDIR}/optc-gen.awk \ 22938494Sobrien -v header_name="config.h system.h coretypes.h tm.h" \ 23038494Sobrien < ${.ALLSRC} > ${.TARGET} 23138494SobrienGENONLY+= optionlist options.h options.c 23238494Sobrien 233310490Scy# Target machine config 23441142Sobrientm.h: 23538494Sobrien TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 23638494Sobrien HEADERS="${TARGET_INC}" \ 237310490Scy DEFINES="" \ 23841142Sobrien /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 23941142Sobrien.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 24041142Sobrien echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 24141142Sobrien.endif 24251591Sobrien 24351591SobrienGENSRCS+= tm.h 244310490ScyCLEANFILES+= cs-tm.h 24541142Sobrien 24642629Sobrien# Target machine protos/preds. 24742629Sobrientm_p.h: 248310490Scy TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 24942629Sobrien HEADERS="${GCC_CPU}/${GCC_CPU}-protos.h tm-preds.h" \ 25042629Sobrien DEFINES="" \ 25142629Sobrien /bin/sh ${GCCDIR}/mkconfig.sh tm_p.h 25242629Sobrien 25342629SobrienGENSRCS+= tm_p.h 254310490ScyCLEANFILES+= cs-tm_p.h 25542629Sobrien 25642629Sobrien# gencheck 25751292Sobriengencheck.h: 258310490Scy.for F in ${TREE_DEF_FILES} 25951292Sobrien echo "#include \"$F\"" >> ${.TARGET} 26051292Sobrien.endfor 26151292Sobrien 262310490ScyGENSRCS+= gencheck.h 26351292Sobrien 26451292Sobrien 26551292Sobrien# Source header for gtyp generator. 26651292Sobriengtyp-gen.h: ${GTFILES} 26751292Sobrien echo "/* This file is machine generated. Do not edit. */" > ${.TARGET} 26851292Sobrien echo "static const char * const srcdir = " >> ${.TARGET} 26951292Sobrien echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET} 27051292Sobrien echo "static const char * const lang_files[] = {" >> ${.TARGET} 27151292Sobrien.for F in ${GTFILES_FILES} 27251591Sobrien echo "\"$F\", " >> ${.TARGET} 27351591Sobrien.endfor 274310490Scy echo "NULL};" >> ${.TARGET} 27551292Sobrien echo "static const char * const langs_for_lang_files[] = {">> ${.TARGET} 27651292Sobrien.for F in ${GTFILES_LANGS} 277310490Scy echo "\"$F\", " >> ${.TARGET} 27851292Sobrien.endfor 27951292Sobrien echo "NULL};" >> ${.TARGET} 28052894Sobrien echo "static const char * const all_files[] = {" >> ${.TARGET} 28152894Sobrien.for F in ${GTFILES} 28252894Sobrien echo "\"$F\", " >> ${.TARGET} 283310490Scy.endfor 28451292Sobrien echo "NULL};" >> ${.TARGET} 28551292Sobrien echo "static const char * const lang_dir_names[] = {" >> ${.TARGET} 286119679Smbr.for F in c ${GTFILES_LANG_DIR_NAMES} 28751292Sobrien echo "\"$F\", " >> ${.TARGET} 288310490Scy.endfor 28951292Sobrien echo "NULL};" >> ${.TARGET} 29051292Sobrien 291310490ScyGENSRCS+= gtyp-gen.h 29251292Sobrien 29351292Sobrien# Version header for gcov 294310490Scygcov-iov.h: 29551292Sobrien echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET} 29652894Sobrien 297310490ScyGENSRCS+= gcov-iov.h 29852894Sobrien 29952894Sobrien# Multilib config file 30082794Sobrienmultilib.h: 30182794Sobrien echo 'static const char *const multilib_raw[] = { \ 30282794Sobrien ". ;", NULL };' > ${.TARGET} 30382794Sobrien echo 'static const char *const multilib_matches_raw[] = { \ 30482794Sobrien NULL };' >> ${.TARGET} 30582794Sobrien echo 'static const char *multilib_extra = "";' >> ${.TARGET} 30682794Sobrien echo 'static const char *multilib_options = "";' >> ${.TARGET} 30782794Sobrien echo 'static const char *const multilib_exclusions_raw[] = { \ 30882794Sobrien NULL };' >> ${.TARGET} 309310490Scy 31082794SobrienGENSRCS+= multilib.h 31182794Sobrien 31282794Sobrienconfigargs.h: 313310490Scy echo 'static const char configuration_arguments[] =' > ${.TARGET} 31482794Sobrien echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET} 31582794Sobrien echo 'static const char thread_model[] = "posix";' >> ${.TARGET} 316310490Scy echo 'static const struct {' >> ${.TARGET} 31782794Sobrien echo ' const char *name, *value;' >> ${.TARGET} 31882794Sobrien echo '} configure_default_options[] = {' >> ${.TARGET} 319310490Scy echo ' { "NULL", "NULL" } };' >> ${.TARGET} 32082794Sobrien 32182794SobrienGENSRCS+= configargs.h 322310490Scy 32382794Sobrien# Language spec files 32482794Sobrienspecs.h: 325174294Sobrien echo '#include "cp/lang-specs.h"' > ${.TARGET} 326174294Sobrien echo '#include "objc/lang-specs.h"' >> ${.TARGET} 327174294Sobrien 328174294SobrienGENSRCS+= specs.h 329310490Scy 33082794Sobriengstdint.h: 33182794Sobrien echo '#include "sys/types.h"' > ${.TARGET} 332310490Scy echo '#include "sys/stdint.h"' >> ${.TARGET} 33382794Sobrien 334119679SmbrGENSRCS+= gstdint.h 335310490Scy 336119679Smbr# Linked headers 337119679Smbrgthr-default.h: ${GCCDIR}/gthr-posix.h 338119679Smbr ln -sf ${.ALLSRC} ${.TARGET} 339119679Smbr 340310490ScyGENSRCS+= gthr-default.h 341119679Smbr 342174294Sobrienunwind.h: ${GCCDIR}/unwind-generic.h 343174294Sobrien ln -sf ${.ALLSRC} ${.TARGET} 344119679Smbr 345119679SmbrGENSRCS+= unwind.h 346119679Smbr 347119679Smbr# 348174294Sobrien# gtype gunk 349174294Sobrien# 350119679Smbrgengtype-lex.c: gengtype-lex.l 351310490Scy flex -ogengtype-lex.c ${.ALLSRC} 352119679Smbr 353119679Smbrgengtype-yacc.h: gengtype-yacc.y 354119679Smbr yacc -d -o gengtype-yacc.c ${.ALLSRC} 355310490Scy 356174294Sobriengengtype-yacc.c: gengtype-yacc.h 357174294Sobrien 358174294Sobriengengtype-yacc+%DIKED.c: gengtype-yacc.c 359174294Sobrien cat ${.ALLSRC} > ${.TARGET} 360310490Scy sed -e "s/xmalloc/malloc/g" \ 361174294Sobrien -e "s/xrealloc/realloc/g" \ 362310490Scy -e "s/malloc/xmalloc/g" \ 363174294Sobrien -e "s/realloc/xrealloc/g" \ 364174294Sobrien ${.ALLSRC} > ${.TARGET} 365310490Scy 366174294SobrienGENSRCS+= gengtype-lex.c gengtype-yacc.h gengtype-yacc+%DIKED.c 367174294SobrienCLEANFILES+= gengtype-yacc.c 368310490Scy 369119679Smbrgengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o errors.o \ 370119679Smbr ${LIBIBERTY} 371119679Smbr ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 372310490Scy 373119679Smbrgtype-desc.h: gengtype 374174294Sobrien ./gengtype 375310490Scy touch ${.TARGET} 376174294Sobrien 377174294Sobriengtype-desc.c: gtype-desc.h 378174294Sobrien 379310490ScyGENONLY+= gtype-desc.c gtype-desc.h 380174294SobrienCLEANFILES+= gt-*.h gtype-*.h 381174294Sobrien 382310490Scy# 383174294Sobrien# Generator tools. 384174294Sobrien# 385310490Scy.for F in check checksum genrtl modes 386174294Sobriengen$F: gen$F.o errors.o ${LIBIBERTY} 387174294Sobrien ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 388310490Scy.endfor 389174294Sobrien 390174294Sobrien.for F in attr attrtab automata codes conditions config constants emit \ 391310490Scy extract flags opinit output peep preds recog 392174294Sobriengen$F: gen$F.o rtl.o read-rtl.o ggc-none.o vec.o min-insn-modes.o \ 393174294Sobrien gensupport.o print-rtl.o errors.o ${LIBIBERTY} 394174294Sobrien ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm 395310490Scy.endfor 396174294Sobrien 397174294Sobriengencondmd: gencondmd.o 398174294Sobrien ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 399174294Sobrien 400174294Sobrien# 401174294Sobrien# Generated .md files. 402310490Scy# 403174294Sobrieninsn-conditions.md: gencondmd 404174294Sobrien ./gencondmd > ${.TARGET} 405174294SobrienGENSRCS+= insn-conditions.md 406310490Scy 407174294Sobrien# 408174294Sobrien# Generated header files. 409310490Scy# 410174294Sobrien 411174294Sobrien.for F in constants 412174294Sobrieninsn-$F.h: gen$F ${MD_FILE} 413174294Sobrien ./gen$F ${MD_FILE} > ${.TARGET} 414174294SobrienGENSRCS+= insn-$F.h 415174294Sobrien.endfor 416174294Sobrien 417174294Sobrien.for F in attr codes config flags 418310490Scyinsn-$F.h: gen$F ${MD_FILE} insn-conditions.md 419174294Sobrien ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 420174294SobrienGENSRCS+= insn-$F.h 421174294Sobrien.endfor 422174294Sobrien 423174294Sobrien# Header files with irregular names. 424174294Sobriengenrtl.h: gengenrtl 425310490Scy ./gengenrtl -h > ${.TARGET} 426174294SobrienGENSRCS+= genrtl.h 427174294Sobrien 428tm-preds.h: genpreds 429 ./genpreds -h ${MD_FILE} > ${.TARGET} 430GENSRCS+= tm-preds.h 431 432tm-constrs.h: genpreds 433 ./genpreds -c ${MD_FILE} > ${.TARGET} 434GENSRCS+= tm-constrs.h 435 436tree-check.h: gencheck 437 ./gencheck > ${.TARGET} 438GENSRCS+= tree-check.h 439 440insn-modes.h: genmodes 441 ./genmodes -h > ${.TARGET} 442GENSRCS+= insn-modes.h 443 444# 445# Generated source files. 446# 447.for F in attrtab automata emit extract opinit output peep preds recog 448insn-$F.c: gen$F ${MD_FILE} insn-conditions.md 449 ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 450GENONLY+= insn-$F.c 451.endfor 452 453.for F in conditions 454insn-$F.c: gen$F ${MD_FILE} 455 ./gen$F ${MD_FILE} > ${.TARGET} 456GENSRCS+= insn-$F.c 457.endfor 458 459# Source files with irregular names. 460insn-modes.c: genmodes 461 ./genmodes > ${.TARGET} 462GENONLY+= insn-modes.c 463 464min-insn-modes.c: genmodes 465 ./genmodes -m > ${.TARGET} 466GENSRCS+= min-insn-modes.c 467 468genrtl.c: gengenrtl 469 ./gengenrtl > ${.TARGET} 470GENONLY+= genrtl.c 471 472gencondmd.c: genconditions ${MD_FILE} 473 ./genconditions ${MD_FILE} > ${.TARGET} 474GENSRCS+= gencondmd.c 475 476#----------------------------------------------------------------------- 477# Build tools. 478 479GNTOOLS+= genattr genattrtab genautomata gencodes gencheck genchecksum \ 480 genconditions gencondmd genconfig genconstants genemit \ 481 genextract genflags gengenrtl gengtype genmodes genopinit \ 482 genoutput genpeep genpreds genrecog 483 484all: ${GNTOOLS} ${GENSRCS} ${GENONLY} 485beforedepend: ${GENONLY} 486 487# 488#----------------------------------------------------------------------- 489# Build 'pocket' libiberty exclusively for build tools use. 490 491LIBIBERTY_SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \ 492 dyn-string.c fibheap.c fopen_unlocked.c getpwd.c getruntime.c \ 493 hashtab.c hex.c lbasename.c make-temp-file.c md5.c obstack.c \ 494 partition.c pex-unix.c physmem.c safe-ctype.c splay-tree.c xexit.c \ 495 xmalloc.c xmemdup.c xstrdup.c xstrerror.c 496LIBIBERTY_OBJS= ${LIBIBERTY_SRCS:R:S/$/.o/g} 497 498.for _src in ${LIBIBERTY_SRCS} 499${_src:R:S/$/.o/}: ${_src} 500 ${CC} -c -I ${.CURDIR}/../libiberty ${CFLAGS} -o ${.TARGET} ${.IMPSRC} 501.endfor 502 503${LIBIBERTY}: ${LIBIBERTY_OBJS} 504 @rm -f ${.TARGET} 505 @${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` 506 ${RANLIB} ${.TARGET} 507CLEANFILES+= ${LIBIBERTY} ${LIBIBERTY_OBJS} 508 509 510#----------------------------------------------------------------------- 511# Fixups. 512 513# Set OBJS the same as bsd.prog.mk would do if we defined PROG. We can't 514# define PROG because we have multiple programs. 515# 516SRCS= errors.c genattr.c genattrtab.c \ 517 genautomata.c gencheck.c genchecksum.c gencodes.c \ 518 genconditions.c genconfig.c genconstants.c genemit.c \ 519 genextract.c genflags.c gengenrtl.c gengtype.c genmodes.c \ 520 genopinit.c genoutput.c genpeep.c genpreds.c genrecog.c \ 521 gensupport.c ggc-none.c print-rtl.c read-rtl.c rtl.c \ 522 vec.c 523 524SRCS+= ${GENSRCS} 525OBJS+= ${SRCS:N*.h:R:S/$/.o/g} 526GENOBJS+= ${GENSRCS:N*.h:R:S/$/.o/g} 527CLEANFILES+= ${GENSRCS} ${GENONLY} ${GENOBJS} ${GNTOOLS} 528 529#----------------------------------------------------------------------- 530# Manual dependencies. 531.if !exists(${DEPENDFILE}) 532.include "Makefile.dep" 533.endif 534 535.include <bsd.prog.mk> 536# DO NOT DELETE 537