Makefile revision 169740
11590Srgrimes# $FreeBSD: head/gnu/usr.bin/cc/cc_tools/Makefile 169740 2007-05-19 07:56:08Z scottl $ 21590Srgrimes 31590Srgrimes.include <bsd.own.mk> 41590Srgrimes 51590SrgrimesCFLAGS+= -I. 61590SrgrimesLDFLAGS+= -static 71590Srgrimes 81590Srgrimes.include "../Makefile.inc" 91590Srgrimes 101590SrgrimesCFLAGS+= -g 111590SrgrimesCFLAGS+= -DGENERATOR_FILE -DHAVE_CONFIG_H 121590Srgrimes 131590Srgrimes# Override LIBIBERTY set by Makefile.inc, We use our own for 141590Srgrimes# build tools. 151590SrgrimesLIBIBERTY= libiberty.a 161590Srgrimes 171590Srgrimes.PATH: ${GCCDIR} ${GCCLIB}/libiberty 181590Srgrimes 191590Srgrimes#----------------------------------------------------------------------- 201590Srgrimes# Determine content of variables used by the target/host config files 211590Srgrimes 221590Srgrimes# 231590Srgrimes# The list of headers to go into tm.h 241590Srgrimes# 251590SrgrimesTARGET_INC+= options.h 261590Srgrimes.if ${TARGET_ARCH} == "amd64" 271590SrgrimesTARGET_INC+= i386/biarch64.h 281590Srgrimes.endif 2950477Speter.if ${TARGET_ARCH} != "arm" 301590SrgrimesTARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 3196093Stjr.endif 321590Srgrimes.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" 331590SrgrimesTARGET_INC+= ${GCC_CPU}/unix.h 341590SrgrimesTARGET_INC+= ${GCC_CPU}/att.h 351590Srgrimes.endif 361590SrgrimesTARGET_INC+= dbxelf.h 371590SrgrimesTARGET_INC+= elfos.h 3827645ScharnierTARGET_INC+= freebsd-native.h 391590SrgrimesTARGET_INC+= freebsd-spec.h 401590SrgrimesTARGET_INC+= freebsd.h 411590Srgrimes.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" 4227645Scharnier.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) 4396093StjrTARGET_INC+= ${GCC_CPU}/sysv4.h 4496093Stjr.endif 451590Srgrimes.endif 461590Srgrimes.if ${TARGET_ARCH} == "amd64" 471590SrgrimesTARGET_INC+= ${GCC_CPU}/x86-64.h 481590SrgrimesTARGET_INC+= ${GCC_CPU}/freebsd.h 491590SrgrimesTARGET_INC+= ${GCC_CPU}/freebsd64.h 501590SrgrimesTARGET_INC+= freebsd64-fix.h 5196093Stjr.elif ${TARGET_ARCH} == "arm" 5296093StjrTARGET_INC+= ${GCC_CPU}/elf.h 5396093StjrTARGET_INC+= ${GCC_CPU}/aout.h 54116112ScharnierTARGET_INC+= ${GCC_CPU}/freebsd.h 55116112ScharnierTARGET_INC+= ${GCC_CPU}/arm.h 561590Srgrimes.else 57116112ScharnierTARGET_INC+= ${GCC_CPU}/freebsd.h 581590Srgrimes.endif 59116112ScharnierTARGET_INC+= defaults.h 601590Srgrimes 611590Srgrimes.for H in ${TARGET_INC} 621590Srgrimes.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR} 6327645Scharnier.if exists($D/$H) 6496093StjrTARGET_INC_FILES+= $D/$H 65140368Sru.endif 661590Srgrimes.endfor 6727645Scharnier.endfor 681590Srgrimes 69214132Suqs# 701590Srgrimes# gtyp includes. 711590Srgrimes# 721590Srgrimessrcdir= ${GCCDIR} 731590SrgrimesCPPLIB_H= ${GCCLIB}/libcpp/include/line-map.h \ 741590Srgrimes ${GCCLIB}/libcpp/include/cpplib.h 7524391SmppSYMTAB_H= ${GCCLIB}/libcpp/include/symtab.h 761590SrgrimesCPP_ID_DATA_H= ${CPPLIB_H} ${GCCLIB}/libcpp/include/cpp-id-data.h 771590SrgrimesHASHTAB_H= ${GCCLIB}/include/hashtab.h 78140420SruSPLAY_TREE_H= ${GCCLIB}/include/splay-tree.h 79140420Sruout_file= ${srcdir}/config/${GCC_CPU}/${GCC_CPU}.c 80140420Srutm_file_list= ${TARGET_INC_FILES} 81140420Sruhost_xm_file_list= ${.CURDIR}/auto-host.h ${GCCLIB}/include/ansidecl.h 82140420SruGTFILES_SRCDIR= ${srcdir} 83140420Sru 84140420Sru# Copied unchanged from gcc/Makefile.in 85140420SruGTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h \ 86140420Sru $(CPP_ID_DATA_H) $(host_xm_file_list) \ 87140420Sru $(tm_file_list) $(HASHTAB_H) $(SPLAY_TREE_H) $(srcdir)/bitmap.h \ 8896093Stjr $(srcdir)/coverage.c $(srcdir)/rtl.h \ 8996093Stjr $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/function.h $(srcdir)/libfuncs.h $(SYMTAB_H) \ 9096093Stjr $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h $(srcdir)/hwint.h \ 9196093Stjr $(srcdir)/ipa-reference.h $(srcdir)/output.h \ 9296093Stjr $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ 9396093Stjr $(srcdir)/c-common.h $(srcdir)/c-tree.h $(srcdir)/reload.h \ 941590Srgrimes $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ 951590Srgrimes $(srcdir)/ipa-prop.c $(srcdir)/ipa-cp.c $(srcdir)/ipa-inline.c \ 961590Srgrimes $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ 9786672Sru $(srcdir)/dojump.c $(srcdir)/tree-profile.c \ 981590Srgrimes $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ 9996093Stjr $(srcdir)/function.c $(srcdir)/except.h \ 10096093Stjr $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ 10196093Stjr $(srcdir)/profile.c $(srcdir)/regclass.c \ 10296093Stjr $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c \ 10396093Stjr $(srcdir)/sdbout.c $(srcdir)/stor-layout.c \ 1041590Srgrimes $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \ 1051590Srgrimes $(srcdir)/tree-mudflap.c $(srcdir)/tree-flow.h \ 10627645Scharnier $(srcdir)/c-objc-common.c $(srcdir)/c-common.c $(srcdir)/c-parser.c \ 1071590Srgrimes $(srcdir)/tree-ssanames.c $(srcdir)/tree-eh.c $(srcdir)/tree-ssa-address.c \ 10817891Swosch $(srcdir)/tree-phinodes.c $(srcdir)/tree-cfg.c \ 109 $(srcdir)/tree-dfa.c $(srcdir)/tree-ssa-propagate.c \ 110 $(srcdir)/tree-iterator.c $(srcdir)/gimplify.c \ 111 $(srcdir)/tree-chrec.h $(srcdir)/tree-vect-generic.c \ 112 $(srcdir)/tree-ssa-operands.h $(srcdir)/tree-ssa-operands.c \ 113 $(srcdir)/tree-profile.c $(srcdir)/tree-nested.c \ 114 $(srcdir)/ipa-reference.c $(srcdir)/tree-ssa-structalias.h \ 115 $(srcdir)/tree-ssa-structalias.c \ 116 $(srcdir)/c-pragma.h $(srcdir)/omp-low.c \ 117 $(srcdir)/targhooks.c $(srcdir)/cgraphunit.c $(out_file) \ 118 119# The list of frontend directories to look into 120GTFILES_LANG_DIR_NAMES= 121 122.if ${MK_CXX} != "no" 123GTFILES_LANG_DIR_NAMES+= cp 124.endif 125 126.if ${MK_OBJC} != "no" 127GTFILES_LANG_DIR_NAMES+= objc 128.endif 129 130# The list of language specific files for gengtype 131.for L in ${GTFILES_LANG_DIR_NAMES} c 132.if exists(${GCCDIR}/$L-config-lang.in) 133# Source the language config file 134L_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles' 135.else 136L_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles' 137.endif 138.for F in ${L_GTFILES} 139GTFILES_FILES+= $F 140GTFILES_LANGS+= $L 141.endfor 142.endfor 143GTFILES+= ${GTFILES_FILES} 144 145# 146# Tree definition files. 147# 148TREE_DEF_FILES= 149 150.if ${MK_CXX} != "no" 151TREE_DEF_FILES+= cp/cp-tree.def 152.endif 153 154.if ${MK_OBJC} != "no" 155TREE_DEF_FILES+= objc/objc-tree.def 156.endif 157 158# 159# Option files. 160# 161OPT_FILES= c.opt common.opt 162 163.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt) 164OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.opt 165.endif 166 167.if exists(${.CURDIR}/${GCC_CPU}-freebsd.opt) 168OPT_FILES+= ${.CURDIR}/${GCC_CPU}-freebsd.opt 169.endif 170 171.if ${TARGET_ARCH} == "powerpc" 172OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/sysv4.opt 173.endif 174 175.if ${TARGET_ARCH} == "sparc64" 176OPT_FILES+= ${GCCDIR}/config/${GCC_CPU}/long-double-switch.opt 177.endif 178 179.if exists(${.CURDIR}/freebsd.opt) 180OPT_FILES+= ${.CURDIR}/freebsd.opt 181.endif 182 183#----------------------------------------------------------------------- 184# Build rules for header files and generator tools 185 186# Host config 187config.h: 188 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 189 HEADERS="auto-host.h ansidecl.h" \ 190 DEFINES="" \ 191 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 192 193GENSRCS+= config.h 194CLEANFILES+= cs-config.h 195 196# Build config 197bconfig.h: 198 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 199 HEADERS="auto-host.h ansidecl.h" \ 200 DEFINES="" \ 201 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 202.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 203 echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 204.endif 205 206GENSRCS+= bconfig.h 207CLEANFILES+= cs-bconfig.h 208 209# tconfig.h 210tconfig.h: 211 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 212 HEADERS="auto-host.h ansidecl.h" \ 213 DEFINES="USED_FOR_TARGET" \ 214 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 215 216GENSRCS+= tconfig.h 217CLEANFILES+= cs-tconfig.h 218# Options 219optionlist: ${OPT_FILES} 220 awk -f ${GCCDIR}/opt-gather.awk ${.ALLSRC} > ${.TARGET} 221 222options.h: optionlist 223 awk -f ${GCCDIR}/opt-functions.awk \ 224 -f ${GCCDIR}/opth-gen.awk \ 225 < ${.ALLSRC} > ${.TARGET} 226 227options.c: optionlist 228 awk -f ${GCCDIR}/opt-functions.awk \ 229 -f ${GCCDIR}/optc-gen.awk \ 230 -v header_name="config.h system.h coretypes.h tm.h" \ 231 < ${.ALLSRC} > ${.TARGET} 232GENONLY+= optionlist options.h options.c 233 234# Target machine config 235tm.h: 236 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 237 HEADERS="${TARGET_INC}" \ 238 DEFINES="" \ 239 /bin/sh ${GCCDIR}/mkconfig.sh ${.TARGET} 240.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 241 echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 242.endif 243 244GENSRCS+= tm.h 245CLEANFILES+= cs-tm.h 246 247# Target machine protos/preds. 248tm_p.h: 249 TARGET_CPU_DEFAULT="${TARGET_CPU_DEFAULT}" \ 250 HEADERS="${GCC_CPU}/${GCC_CPU}-protos.h tm-preds.h" \ 251 DEFINES="" \ 252 /bin/sh ${GCCDIR}/mkconfig.sh tm_p.h 253 254GENSRCS+= tm_p.h 255CLEANFILES+= cs-tm_p.h 256 257# gencheck 258gencheck.h: 259.for F in ${TREE_DEF_FILES} 260 echo "#include \"$F\"" >> ${.TARGET} 261.endfor 262 263GENSRCS+= gencheck.h 264 265 266# Source header for gtyp generator. 267gtyp-gen.h: ${GTFILES} 268 echo "/* This file is machine generated. Do not edit. */" > ${.TARGET} 269 echo "static const char * const srcdir = " >> ${.TARGET} 270 echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET} 271 echo "static const char * const lang_files[] = {" >> ${.TARGET} 272.for F in ${GTFILES_FILES} 273 echo "\"$F\", " >> ${.TARGET} 274.endfor 275 echo "NULL};" >> ${.TARGET} 276 echo "static const char * const langs_for_lang_files[] = {">> ${.TARGET} 277.for F in ${GTFILES_LANGS} 278 echo "\"$F\", " >> ${.TARGET} 279.endfor 280 echo "NULL};" >> ${.TARGET} 281 echo "static const char * const all_files[] = {" >> ${.TARGET} 282.for F in ${GTFILES} 283 echo "\"$F\", " >> ${.TARGET} 284.endfor 285 echo "NULL};" >> ${.TARGET} 286 echo "static const char * const lang_dir_names[] = {" >> ${.TARGET} 287.for F in c ${GTFILES_LANG_DIR_NAMES} 288 echo "\"$F\", " >> ${.TARGET} 289.endfor 290 echo "NULL};" >> ${.TARGET} 291 292GENSRCS+= gtyp-gen.h 293 294# Version header for gcov 295gcov-iov.h: 296 echo "#define GCOV_VERSION ((gcov_unsigned_t)0x34303270)" >> ${.TARGET} 297 298GENSRCS+= gcov-iov.h 299 300# Multilib config file 301multilib.h: 302 echo 'static const char *const multilib_raw[] = { \ 303 ". ;", NULL };' > ${.TARGET} 304 echo 'static const char *const multilib_matches_raw[] = { \ 305 NULL };' >> ${.TARGET} 306 echo 'static const char *multilib_extra = "";' >> ${.TARGET} 307 echo 'static const char *multilib_options = "";' >> ${.TARGET} 308 echo 'static const char *const multilib_exclusions_raw[] = { \ 309 NULL };' >> ${.TARGET} 310 311GENSRCS+= multilib.h 312 313configargs.h: 314 echo 'static const char configuration_arguments[] =' > ${.TARGET} 315 echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET} 316 echo 'static const char thread_model[] = "posix";' >> ${.TARGET} 317 echo 'static const struct {' >> ${.TARGET} 318 echo ' const char *name, *value;' >> ${.TARGET} 319 echo '} configure_default_options[] = {' >> ${.TARGET} 320 echo ' { "NULL", "NULL" } };' >> ${.TARGET} 321 322GENSRCS+= configargs.h 323 324# Language spec files 325specs.h: 326 echo '#include "cp/lang-specs.h"' > ${.TARGET} 327 echo '#include "objc/lang-specs.h"' >> ${.TARGET} 328 329GENSRCS+= specs.h 330 331gstdint.h: 332 echo '#include "sys/types.h"' > ${.TARGET} 333 echo '#include "sys/stdint.h"' >> ${.TARGET} 334 335GENSRCS+= gstdint.h 336 337# Linked headers 338gthr-default.h: ${GCCDIR}/gthr-posix.h 339 ln -sf ${.ALLSRC} ${.TARGET} 340 341GENSRCS+= gthr-default.h 342 343unwind.h: ${GCCDIR}/unwind-generic.h 344 ln -sf ${.ALLSRC} ${.TARGET} 345 346GENSRCS+= unwind.h 347 348# 349# gtype gunk 350# 351gengtype-lex.c: gengtype-lex.l 352 flex -ogengtype-lex.c ${.ALLSRC} 353 354gengtype-yacc.h: gengtype-yacc.y 355 yacc -d -o gengtype-yacc.c ${.ALLSRC} 356 357gengtype-yacc.c: gengtype-yacc.h 358 359gengtype-yacc+%DIKED.c: gengtype-yacc.c 360 cat ${.ALLSRC} > ${.TARGET} 361 sed -e "s/xmalloc/malloc/g" \ 362 -e "s/xrealloc/realloc/g" \ 363 -e "s/malloc/xmalloc/g" \ 364 -e "s/realloc/xrealloc/g" \ 365 ${.ALLSRC} > ${.TARGET} 366 367GENSRCS+= gengtype-lex.c gengtype-yacc.h gengtype-yacc+%DIKED.c 368CLEANFILES+= gengtype-yacc.c 369 370gengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o errors.o \ 371 ${LIBIBERTY} 372 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 373 374gtype-desc.h: gengtype 375 ./gengtype 376 touch ${.TARGET} 377 378gtype-desc.c: gtype-desc.h 379 380GENONLY+= gtype-desc.c gtype-desc.h 381CLEANFILES+= gt-*.h gtype-*.h 382 383# 384# Generator tools. 385# 386.for F in check checksum genrtl modes 387gen$F: gen$F.o errors.o ${LIBIBERTY} 388 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 389.endfor 390 391.for F in attr attrtab automata codes conditions config constants emit \ 392 extract flags opinit output peep preds recog 393gen$F: gen$F.o rtl.o read-rtl.o ggc-none.o vec.o min-insn-modes.o \ 394 gensupport.o print-rtl.o errors.o ${LIBIBERTY} 395 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm 396.endfor 397 398gencondmd: gencondmd.o 399 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 400 401# 402# Generated .md files. 403# 404insn-conditions.md: gencondmd 405 ./gencondmd > ${.TARGET} 406GENSRCS+= insn-conditions.md 407 408# 409# Generated header files. 410# 411 412.for F in constants 413insn-$F.h: gen$F ${MD_FILE} 414 ./gen$F ${MD_FILE} > ${.TARGET} 415GENSRCS+= insn-$F.h 416.endfor 417 418.for F in attr codes config flags 419insn-$F.h: gen$F ${MD_FILE} insn-conditions.md 420 ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 421GENSRCS+= insn-$F.h 422.endfor 423 424# Header files with irregular names. 425genrtl.h: gengenrtl 426 ./gengenrtl -h > ${.TARGET} 427GENSRCS+= genrtl.h 428 429tm-preds.h: genpreds 430 ./genpreds -h ${MD_FILE} > ${.TARGET} 431GENSRCS+= tm-preds.h 432 433tm-constrs.h: genpreds 434 ./genpreds -c ${MD_FILE} > ${.TARGET} 435GENSRCS+= tm-constrs.h 436 437tree-check.h: gencheck 438 ./gencheck > ${.TARGET} 439GENSRCS+= tree-check.h 440 441insn-modes.h: genmodes 442 ./genmodes -h > ${.TARGET} 443GENSRCS+= insn-modes.h 444 445# 446# Generated source files. 447# 448.for F in attrtab automata emit extract opinit output peep preds recog 449insn-$F.c: gen$F ${MD_FILE} insn-conditions.md 450 ./gen$F ${MD_FILE} insn-conditions.md > ${.TARGET} 451GENONLY+= insn-$F.c 452.endfor 453 454.for F in conditions 455insn-$F.c: gen$F ${MD_FILE} 456 ./gen$F ${MD_FILE} > ${.TARGET} 457GENSRCS+= insn-$F.c 458.endfor 459 460# Source files with irregular names. 461insn-modes.c: genmodes 462 ./genmodes > ${.TARGET} 463GENONLY+= insn-modes.c 464 465min-insn-modes.c: genmodes 466 ./genmodes -m > ${.TARGET} 467GENSRCS+= min-insn-modes.c 468 469genrtl.c: gengenrtl 470 ./gengenrtl > ${.TARGET} 471GENONLY+= genrtl.c 472 473gencondmd.c: genconditions ${MD_FILE} 474 ./genconditions ${MD_FILE} > ${.TARGET} 475GENSRCS+= gencondmd.c 476 477#----------------------------------------------------------------------- 478# Build tools. 479 480GNTOOLS+= genattr genattrtab genautomata gencodes gencheck genchecksum \ 481 genconditions gencondmd genconfig genconstants genemit \ 482 genextract genflags gengenrtl gengtype genmodes genopinit \ 483 genoutput genpeep genpreds genrecog 484 485all: ${GNTOOLS} ${GENSRCS} ${GENONLY} 486beforedepend: ${GENONLY} 487 488# 489#----------------------------------------------------------------------- 490# Build 'pocket' libiberty exclusively for build tools use. 491 492LIBIBERTY_SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \ 493 dyn-string.c fibheap.c fopen_unlocked.c getpwd.c getruntime.c \ 494 hashtab.c hex.c lbasename.c make-temp-file.c md5.c obstack.c \ 495 partition.c pex-unix.c physmem.c safe-ctype.c splay-tree.c xexit.c \ 496 xmalloc.c xmemdup.c xstrdup.c xstrerror.c 497LIBIBERTY_OBJS= ${LIBIBERTY_SRCS:R:S/$/.o/g} 498 499.for _src in ${LIBIBERTY_SRCS} 500${_src:R:S/$/.o/}: ${_src} 501 ${CC} -c -I ${.CURDIR}/../libiberty ${CFLAGS} -o ${.TARGET} ${.IMPSRC} 502.endfor 503 504${LIBIBERTY}: ${LIBIBERTY_OBJS} 505 @rm -f ${.TARGET} 506 @${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` 507 ${RANLIB} ${.TARGET} 508CLEANFILES+= ${LIBIBERTY} ${LIBIBERTY_OBJS} 509 510 511#----------------------------------------------------------------------- 512# Fixups. 513 514# Set OBJS the same as bsd.prog.mk would do if we defined PROG. We can't 515# define PROG because we have multiple programs. 516# 517SRCS= errors.c genattr.c genattrtab.c \ 518 genautomata.c gencheck.c genchecksum.c gencodes.c \ 519 genconditions.c genconfig.c genconstants.c genemit.c \ 520 genextract.c genflags.c gengenrtl.c gengtype.c genmodes.c \ 521 genopinit.c genoutput.c genpeep.c genpreds.c genrecog.c \ 522 gensupport.c ggc-none.c print-rtl.c read-rtl.c rtl.c \ 523 vec.c 524 525SRCS+= ${GENSRCS} 526OBJS+= ${SRCS:N*.h:R:S/$/.o/g} 527GENOBJS+= ${GENSRCS:N*.h:R:S/$/.o/g} 528CLEANFILES+= ${GENSRCS} ${GENONLY} ${GENOBJS} ${GNTOOLS} 529 530#----------------------------------------------------------------------- 531# Manual dependencies. 532.if !exists(${DEPENDFILE}) 533.include "Makefile.dep" 534.endif 535 536.include <bsd.prog.mk> 537# DO NOT DELETE 538