Makefile revision 162417
1# $FreeBSD: head/gnu/usr.bin/cc/cc_tools/Makefile 162417 2006-09-18 17:08:32Z imp $ 2 3.include <bsd.own.mk> 4 5# 6# This could probably be merged with ../cc_int/Makefile, but bsd.lib.mk 7# is such a !@#!*#% nightmare because of how it reprograms the dependencies, 8# suffix rules, SRCS, etc. It's easiest to cheat by using bsd.prog.mk and 9# SRCS to get dependencies. 10# 11 12# 13# ../Makefile.inc will put an absolute path to our objdir in CFLAGS. 14# Prevent mkdep from using it, so that we don't have to give rules for 15# aliases of generated headers. 16# 17CFLAGS+= -I. 18 19.include "../Makefile.inc" 20 21.PATH: ${GCCDIR} ${GCCDIR}/f 22 23CFLAGS+= -DGENERATOR_FILE 24 25# 26#----------------------------------------------------------------------- 27# Build 'pocket' libiberty exclusively for build tools use. 28 29LIBIBERTY_SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \ 30 dyn-string.c fibheap.c getpwd.c getruntime.c hashtab.c hex.c \ 31 lbasename.c make-temp-file.c md5.c obstack.c partition.c pex-unix.c \ 32 physmem.c splay-tree.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c 33LIBIBERTY_OBJS= ${LIBIBERTY_SRCS:R:S/$/.o/g} 34 35SRCS+= ${LIBIBERTY_SRCS} 36 37LIBIBERTY=libiberty.a 38${LIBIBERTY}: ${LIBIBERTY_OBJS} 39 @rm -f ${.TARGET} 40 @${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` 41 ${RANLIB} ${.TARGET} 42CLEANFILES+= ${LIBIBERTY} 43 44# 45#----------------------------------------------------------------------- 46# options 47OPTION_FILES=${GCCDIR}/f/lang.opt ${GCCDIR}/c.opt ${GCCDIR}/common.opt 48 49.ORDER: options.h options.c 50options.h options.c: opts.sh ${OPTION_FILES} 51 /bin/sh ${GCCDIR}/opts.sh mv options.c options.h ${OPTION_FILES} 52 53GENSRCS+= options.c options.h 54CLEANFILES+= options.c options.h 55 56#----------------------------------------------------------------------- 57# insn-* gunk 58 59.for F in attr codes config flags constants 60insn-$F.h: gen$F ${MD_FILE} 61 ./gen$F ${MD_FILE} > insn-$F.h 62GENSRCS+= insn-$F.h 63.endfor 64 65.for F in conditions 66insn-$F.c: gen$F ${MD_FILE} 67 ./gen$F ${MD_FILE} > insn-$F.c 68GENSRCS+= insn-$F.c 69.endfor 70 71GENSRCS+= gen-time-stamp 72gen-time-stamp: genattr genattrtab genconditions genconstants genemit \ 73 genextract gengtype genopinit genoutput genpeep genrecog 74 touch ${.TARGET} 75 76.for F in attr codes config emit extract flags opinit output peep recog 77gen$F: gen$F.o rtl.o print-rtl.o bitmap.o gensupport.o ggc-none.o \ 78 read-rtl.o insn-conditions.o min-insn-modes.o errors.o ${LIBIBERTY} 79 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 80 81GENSRCS+= gen$F.c 82CLEANFILES+= gen$F 83.endfor 84 85# 86# genattrtab needs more complex build rule 87# 88genattrtab : genattrtab.o rtl.o print-rtl.o bitmap.o gensupport.o ggc-none.o \ 89 read-rtl.o insn-conditions.o genautomata.o varray.o min-insn-modes.o \ 90 errors.o ${LIBIBERTY} 91 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm 92 93GENSRCS+= genattrtab.c 94CLEANFILES+= genattrtab 95 96# 97# genconstants and genconditions cannot depend on insn-conditions.o 98# they should be liked with dummy-conditions.o stubs instead 99# 100.for F in constants conditions 101gen$F: gen$F.o rtl.o bitmap.o gensupport.o ggc-none.o read-rtl.o dummy-conditions.o min-insn-modes.o errors.o ${LIBIBERTY} 102 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 103 104GENSRCS+= gen$F.c 105CLEANFILES+= gen$F 106.endfor 107 108.for F in modes check genrtl preds 109gen$F: gen$F.o errors.o ${LIBIBERTY} 110 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 111 112GENSRCS+= gen$F.c 113CLEANFILES+= gen$F 114.endfor 115 116.ORDER: genrtl.c genrtl.h 117genrtl.c genrtl.h: gengenrtl 118 ./gengenrtl > genrtl.c 119 ./gengenrtl -h > genrtl.h 120 121GENSRCS+= genrtl.c genrtl.h 122 123SRCS+= bitmap.c dummy-conditions.c errors.c genautomata.c gensupport.c \ 124 ggc-none.c print-rtl.c read-rtl.c rtl.c varray.c 125 126#----------------------------------------------------------------------- 127# insn modes stuff. 128 129.ORDER: insn-modes.c insn-modes.h 130insn-modes.h: genmodes 131 ./genmodes -h > insn-modes.h 132 133insn-modes.c: genmodes 134 ./genmodes > insn-modes.c 135 136min-insn-modes.c: genmodes 137 ./genmodes -m > min-insn-modes.c 138 139GENSRCS+= insn-modes.c min-insn-modes.c insn-modes.h 140 141#----------------------------------------------------------------------- 142# Common parser stuff. 143 144tree-check.h: gencheck 145 ./gencheck > ${.TARGET} 146GENSRCS+= tree-check.h 147 148#----------------------------------------------------------------------- 149# Predicates stuff. 150 151tm-preds.h: genpreds 152 ./genpreds > ${.TARGET} 153GENSRCS+= tm-preds.h 154 155#----------------------------------------------------------------------- 156# Gengtype 157 158gengtype-lex.c : gengtype-lex.l 159 ${LEX} -t ${.ALLSRC} | \ 160 sed 's/^\(char msg\[\];\)/yyconst \1/' > ${.TARGET} 161 162.ORDER: gengtype-yacc.c gengtype-yacc.h 163gengtype-yacc.c gengtype-yacc.h: gengtype-yacc.y 164 ${YACC} -d -o gengtype-yacc.c ${.ALLSRC} 165 166GENSRCS+= gengtype-yacc+%DIKED.c gengtype-yacc.h gengtype-lex.c 167CLEANFILES+= gengtype-yacc.c 168 169gengtype-yacc+%DIKED.c: gengtype-yacc.c 170 cat ${.ALLSRC} > ${.TARGET} 171 sed -e "s/xmalloc/malloc/g" \ 172 -e "s/xrealloc/realloc/g" \ 173 -e "s/malloc/xmalloc/g" \ 174 -e "s/realloc/xrealloc/g" \ 175 ${.ALLSRC} > ${.TARGET} 176 177gengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o ${LIBIBERTY} 178 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 179 180GENSRCS+= gengtype.c 181CLEANFILES+= gengtype 182 183gengtype-lex.o: gengtype-yacc.h 184 185.ORDER: gtype-desc.c gtype-desc.h 186gtype-desc.c gtype-desc.h: gtype-time-stamp 187 @true 188 189GENSRCS+= gtype-time-stamp 190gtype-time-stamp: gengtype ${GTFILES} 191 ./gengtype 192 touch ${.TARGET} 193 194GENSRCS+= gtype-desc.c gtype-desc.h 195CLEANFILES+= gt-*.h gtype-*.h 196 197# 198#----------------------------------------------------------------------- 199# Fortran build tools 200 201.if ${MK_FORTRAN} != "no" 202gen-time-stamp: fini 203fini: fini.o ${LIBIBERTY} 204 ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 205SRCS+= fini.c 206CLEANFILES+= fini 207.endif 208 209#----------------------------------------------------------------------- 210# Determine content of variables used by the target/host config files 211 212# 213# The list of headers to go into tm.h 214# 215.if ${TARGET_ARCH} == "amd64" 216TARGET_INC= i386/biarch64.h 217.endif 218.if ${TARGET_ARCH} != "arm" 219TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 220.endif 221.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" 222TARGET_INC+= ${GCC_CPU}/unix.h 223TARGET_INC+= ${GCC_CPU}/att.h 224.endif 225.if ${TARGET_ARCH} != "alpha" 226TARGET_INC+= dbxelf.h 227TARGET_INC+= elfos.h 228.endif 229TARGET_INC+= freebsd-native.h 230TARGET_INC+= freebsd-spec.h 231TARGET_INC+= freebsd.h 232.if ${TARGET_ARCH} == "alpha" 233TARGET_INC+= ${GCC_CPU}/elf.h 234.endif 235.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" 236.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) 237TARGET_INC+= ${GCC_CPU}/sysv4.h 238.endif 239.endif 240.if ${TARGET_ARCH} == "arm" 241TARGET_INC+= ${GCC_CPU}/elf.h 242TARGET_INC+= ${GCC_CPU}/aout.h 243TARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 244. if defined(TARGET_BIG_ENDIAN) 245CFLAGS+= -DTARGET_ENDIAN_DEFAULT=ARM_FLAG_BIG_END 246. endif 247.endif 248.if ${TARGET_ARCH} == "arm" 249TARGET_INC+= freebsd-diked.h 250.else 251TARGET_INC+= ${GCC_CPU}/freebsd.h 252.endif 253.if ${TARGET_ARCH} == "amd64" 254TARGET_INC+= ${GCC_CPU}/x86-64.h 255TARGET_INC+= ${GCC_CPU}/freebsd64.h 256TARGET_INC+= freebsd64-fix.h 257.endif 258.if ${TARGET_ARCH} == "powepc" 259TARGET_INC+= altivec-defs.h 260.endif 261TARGET_INC+= defaults.h 262 263# 264# Use TARGET_INC as a template and build a list of target specific 265# include files for gengtype to scan 266# 267GCONFIG_H= ${.CURDIR}/auto-host.h 268 269.for H in ${TARGET_INC} 270.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR} 271.if exists($D/$H) 272GCONFIG_H+= $D/$H 273.endif 274.endfor 275.endfor 276 277# 278# Define some variables to make blocks copied from Makefile.in happy 279# 280srcdir= ${GCCDIR} 281HASHTAB_H= ${GCCDIR}/hashtab.h 282SPLAY_TREE_H= ${GCCDIR}/splay-tree.h 283out_file= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.c 284GTFILES_SRCDIR= ${GCCDIR} 285 286# 287# Copied unchanged from gcc/Makefile.in 288# 289GTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h $(srcdir)/cpplib.h \ 290 $(GCONFIG_H) $(HASHTAB_H) $(SPLAY_TREE_H) \ 291 $(srcdir)/bitmap.h $(srcdir)/coverage.c $(srcdir)/function.h $(srcdir)/rtl.h \ 292 $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/libfuncs.h $(srcdir)/hashtable.h \ 293 $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h \ 294 $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ 295 $(srcdir)/c-common.h $(srcdir)/c-tree.h \ 296 $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ 297 $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ 298 $(srcdir)/dojump.c \ 299 $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ 300 $(srcdir)/fold-const.c $(srcdir)/function.c \ 301 $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ 302 $(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \ 303 $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c $(srcdir)/langhooks.c \ 304 $(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \ 305 $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c \ 306 $(out_file) 307 308# 309# Build a list of frontend directories to look into 310# 311GTFILES_LANG_DIR_NAMES= 312 313.if ${MK_CXX} != "no" 314GTFILES_LANG_DIR_NAMES+= cp 315.endif 316 317.if ${MK_OBJC} != "no" 318GTFILES_LANG_DIR_NAMES+= objc 319.endif 320 321.if ${MK_FORTRAN} != "no" 322GTFILES_LANG_DIR_NAMES+= f 323.endif 324 325# 326# Build a list of language specific files for gengtype 327# 328.for L in ${GTFILES_LANG_DIR_NAMES} c 329.if exists(${GCCDIR}/$L-config-lang.in) 330# Source the language config file 331L_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles' 332.else 333L_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles' 334.endif 335.for F in ${L_GTFILES} 336GTFILES_FILES+= $F 337GTFILES_LANGS+= $L 338.endfor 339.endfor 340GTFILES+= ${GTFILES_FILES} 341 342#----------------------------------------------------------------------- 343# the host/target compiler config. 344 345COMMONHDRS= bconfig.h config.h configargs.h gencheck.h multilib.h \ 346 specs.h safe-ctype.h tconfig.h tm.h tm_p.h gcov-iov.h \ 347 gtyp-gen.h 348GENSRCS+= ${COMMONHDRS} 349 350MFILE?= ${.CURDIR}/Makefile 351${COMMONHDRS}: ${MFILE} 352 353configargs.h: 354 echo 'static const char configuration_arguments[] =' > ${.TARGET} 355 echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET} 356 echo 'static const char thread_model[] = "posix";' >> ${.TARGET} 357 echo 'static const struct {' >> ${.TARGET} 358 echo ' const char *name, *value;' >> ${.TARGET} 359 echo '} configure_default_options[] = {' >> ${.TARGET} 360 echo ' { "NULL", "NULL" } };' >> ${.TARGET} 361 362tconfig.h: 363 echo '#ifndef GCC_TCONFIG_H' > ${.TARGET} 364 echo '#define GCC_TCONFIG_H' >> ${.TARGET} 365 echo '#ifdef IN_GCC' >> ${.TARGET} 366 echo '# include "ansidecl.h"' >> ${.TARGET} 367 echo '#endif' >> ${.TARGET} 368 echo '#define USED_FOR_TARGET' >> ${.TARGET} 369 echo '#endif /* GCC_TCONFIG_H */' >> ${.TARGET} 370 371bconfig.h: 372 echo '#ifndef GCC_BCONFIG_H' > ${.TARGET} 373 echo '#define GCC_BCONFIG_H' >> ${.TARGET} 374 echo '#include "auto-host.h"' >> ${.TARGET} 375.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 376 echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 377.endif 378 echo '#ifdef IN_GCC' >> ${.TARGET} 379 echo '# include "ansidecl.h"' >> ${.TARGET} 380 echo '#endif' >> ${.TARGET} 381 echo '#endif /* GCC_BCONFIG_H */' >> ${.TARGET} 382 383gencheck.h: 384 echo '#include "cp/cp-tree.def"' > ${.TARGET} 385 echo '#include "objc/objc-tree.def"' >> ${.TARGET} 386 387multilib.h: 388 echo 'static const char *const multilib_raw[] = { \ 389 "aout maout;", "elf !maout;", NULL };' > ${.TARGET} 390 echo 'static const char *const multilib_matches_raw[] = { \ 391 "maout maout;", "melf melf;", NULL };' >> ${.TARGET} 392 echo 'static const char *multilib_extra = "";' >> ${.TARGET} 393 echo 'static const char *multilib_options = "";'>> ${.TARGET} 394 echo 'static const char *const multilib_exclusions_raw[] = { \ 395 NULL };' >> ${.TARGET} 396 397specs.h: 398 echo '#include "cp/lang-specs.h"' > ${.TARGET} 399 echo '#include "f/lang-specs.h"' >> ${.TARGET} 400 echo '#include "objc/lang-specs.h"' >> ${.TARGET} 401 402config.h: bconfig.h 403 echo '#include <bconfig.h>' > ${.TARGET} 404 405tm.h: 406 echo '#ifndef GCC_TM_H' > ${.TARGET} 407 echo '#define GCC_TM_H' >> ${.TARGET} 408.if defined(TARGET_CPU_DEFAULT) 409 echo "#define TARGET_CPU_DEFAULT (${TARGET_CPU_DEFAULT})" >> ${.TARGET} 410.endif 411 echo '#ifdef IN_GCC' >> ${.TARGET} 412.for H in ${TARGET_INC} 413 echo '#include "$H"' >> ${.TARGET} 414.endfor 415 echo '#if !defined GENERATOR_FILE && !defined USED_FOR_TARGET' >> ${.TARGET} 416 echo '# include "insn-constants.h"' >> ${.TARGET} 417 echo '# include "insn-flags.h"' >> ${.TARGET} 418 echo '#endif' >> ${.TARGET} 419 echo '#endif' >> ${.TARGET} 420.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 421 echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 422.endif 423 echo '#endif /* GCC_TM_H */' >> ${.TARGET} 424 425tm_p.h: 426 echo '#include "${GCC_CPU}/${GCC_CPU}-protos.h"' >> ${.TARGET} 427 echo '#include "tm-preds.h"' >> ${.TARGET} 428 429safe-ctype.h: 430 echo '#include <ctype.h>' > ${.TARGET} 431.for Z in TOUPPER TOLOWER ISDIGIT ISXDIGIT ISUPPER ISLOWER ISALPHA ISALNUM \ 432 ISSPACE ISPUNCT ISGRAPH ISBLANK ISPRINT ISCNTRL 433 echo '#define ${Z} ${Z:L}' >> ${.TARGET} 434.endfor 435 echo "#define ISIDST(x) \ 436 ((x) == '_' || isalpha(x))" >> ${.TARGET} 437 echo "#define ISIDNUM(x) \ 438 (isdigit(x) || ISIDST(x))" >> ${.TARGET} 439 echo "#define IS_VSPACE(x) \ 440 ((x) == '\n' || (x) == '\r')" >> ${.TARGET} 441 echo "#define IS_NVSPACE(x) \ 442 (!IS_VSPACE(x) && (isspace(x) || (x) == '\0'))" >> ${.TARGET} 443 echo "#define IS_SPACE_OR_NUL(x) \ 444 (isspace(x) || (x) == '\0')" >> ${.TARGET} 445 446gtyp-gen.h: 447 echo "/* This file is machine generated. Do not edit. */" > ${.TARGET} 448 echo "static const char *srcdir = " >> ${.TARGET} 449 echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET} 450 echo "static const char *lang_files[] = {" >> ${.TARGET} 451.for F in ${GTFILES_FILES} 452 echo "\"$F\", " >> ${.TARGET} 453.endfor 454 echo "NULL};" >> ${.TARGET} 455 echo "static const char *langs_for_lang_files[] = {" >> ${.TARGET} 456.for F in ${GTFILES_LANGS} 457 echo "\"$F\", " >> ${.TARGET} 458.endfor 459 echo "NULL};" >> ${.TARGET} 460 echo "static const char *all_files[] = {" >> ${.TARGET} 461.for F in ${GTFILES} 462 echo "\"$F\", " >> ${.TARGET} 463.endfor 464 echo "NULL};" >> ${.TARGET} 465 echo "static const char *lang_dir_names[] = { \"c\", " >> ${.TARGET} 466.for F in ${GTFILES_LANG_DIR_NAMES} 467 echo "\"$F\", " >> ${.TARGET} 468.endfor 469 echo "NULL};" >> ${.TARGET} 470 471gcov-iov.h: 472 echo "#define GCOV_VERSION ((gcov_unsigned_t)0x33303470)" >> ${.TARGET} 473 474.if ${TARGET_ARCH} == "arm" 475freebsd-diked.h: ${GCCDIR}/../../gnu/usr.bin/cc/cc_tools/arm-freebsd.h.diff 476 cp ${GCCDIR}/config/arm/freebsd.h freebsd.h 477 patch freebsd.h ${.ALLSRC} 478 mv freebsd.h ${.TARGET} 479COMMONHDRS+= freebsd-diked.h 480CLEANFILES+= freebsd.h.orig 481 482# Make sure freebsd-diked.h is built when tm.h is built for csu's sake 483tm.h: freebsd-diked.h 484 485${MD_FILE}: ${MFILE} 486 cp ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.md . 487 ln -sf ${GCCDIR}/config/${GCC_CPU}/fpa.md . 488 ln -sf ${GCCDIR}/config/${GCC_CPU}/cirrus.md . 489 ln -sf ${GCCDIR}/config/${GCC_CPU}/iwmmxt.md . 490 patch ${GCC_CPU}.md ${.CURDIR}/arm.md.diff 491 mv ${GCC_CPU}.md ${.TARGET} 492CLEANFILES+= arm-diked.md ${GCC_CPU}.md.orig fpa.md cirrus.md iwmmxt.md 493.endif 494#----------------------------------------------------------------------- 495# General things. 496 497SRCS+= ${GENSRCS} 498CLEANFILES+= ${GENSRCS} 499 500all: ${SRCS} 501 502.include <bsd.prog.mk> 503 504#----------------------------------------------------------------------- 505# Fixups. 506 507# Set OBJS the same as bsd.prog.mk would do if we defined PROG. We can't 508# define PROG because we have multiple programs. 509# 510OBJS+= ${SRCS:N*.h:R:S/$/.o/g} 511CLEANFILES+= ${OBJS} 512 513.if !exists(${DEPENDFILE}) 514# Fudge pre-dependfile dependencies of objects in much the same way as 515# bsd.prog.mk would do if we defined PROG. 516 517${OBJS}: ${COMMONHDRS} 518 519dummy-conditions.o: 520gencheck.o: 521genmodes.o: 522 523genpreds.o: insn-modes.h 524genconstants.o: insn-modes.h genrtl.h 525gengtype.o: insn-modes.h genrtl.h gtyp-gen.h 526rtl.o: insn-modes.h gtype-desc.h genrtl.h 527bitmap.o: insn-modes.h gtype-desc.h genrtl.h 528ggc-none.o: gtype-desc.h 529gensupport.o: insn-modes.h genrtl.h 530varray.o: gtype-desc.h 531genautomata.o: insn-modes.h genrtl.h 532genconditions.o: insn-modes.h genrtl.h 533gencodes.o: insn-modes.h genrtl.h 534genconfig.o: insn-modes.h genrtl.h 535print-rtl.o: insn-modes.h genrtl.h tm-preds.h tree-check.h 536read-rtl.o: insn-modes.h genrtl.h 537genattr.o: insn-modes.h genrtl.h 538genemit.o: insn-modes.h genrtl.h 539genflags.o: insn-modes.h genrtl.h 540genopinit.o: insn-modes.h genrtl.h 541genoutput.o: insn-modes.h genrtl.h 542genpeep.o: insn-modes.h genrtl.h 543genrecog.o: insn-modes.h genrtl.h 544genextract.o: genrtl.h insn-config.h 545genattrtab.o: insn-modes.h gtype-desc.h genrtl.h 546genrtl.o: insn-modes.h genrtl.h gtype-desc.h 547 548insn-conditions.o: insn-constants.h tm-preds.h 549insn-modes.o: insn-modes.h 550min-insn-modes.o: insn-modes.h 551gtype-desc.o: insn-modes.h insn-config.h insn-codes.h tree-check.h 552 553.endif 554