Makefile revision 124417
1327952Sdim# $FreeBSD: head/gnu/usr.bin/cc/cc_tools/Makefile 124417 2004-01-12 07:46:20Z ru $
2193323Sed
3193323Sed#
4193323Sed# This could probably be merged with ../cc_int/Makefile, but bsd.lib.mk
5193323Sed# is such a !@#!*#% nightmare because of how it reprograms the dependencies,
6193323Sed# suffix rules, SRCS, etc.  It's easiest to cheat by using bsd.prog.mk and
7193323Sed# SRCS to get dependencies.
8193323Sed#
9193323Sed
10249423Sdim# ../Makefile.inc will put an absolute path to our objdir in CFLAGS.
11193323Sed# Prevent mkdep from using it, so that we don't have to give rules for
12193323Sed# aliases of generated headers.
13193323Sed
14276479SdimCFLAGS+=	-I. -static -DGENERATOR_FILE
15193323Sed
16249423Sdim.include "../Makefile.inc"
17327952Sdim
18321369Sdim.PATH: ${GCCDIR}
19249423Sdim
20321369Sdim#-----------------------------------------------------------------------
21321369Sdim# insn-* gunk
22249423Sdim
23321369Sdim.for F in attr codes config flags constants
24249423Sdiminsn-$F.h: gen$F ${MD_FILE}
25321369Sdim	./gen$F ${MD_FILE} > insn-$F.h
26249423SdimGENSRCS+=	insn-$F.h
27249423Sdim.endfor
28321369Sdim
29249423Sdim.for F in conditions
30321369Sdiminsn-$F.c: gen$F ${MD_FILE}
31193323Sed	./gen$F ${MD_FILE} > insn-$F.c
32321369SdimGENSRCS+=	insn-$F.c
33193323Sed.endfor
34321369Sdim
35276479SdimGENSRCS+=	gen-time-stamp
36249423Sdimgen-time-stamp: genattr genattrtab genconditions genconstants genemit \
37327952Sdim		genextract gengtype genopinit genoutput genpeep genrecog
38327952Sdim	touch ${.TARGET}
39321369Sdim
40321369Sdim.for F in attr codes config emit extract flags opinit output peep recog
41321369Sdimbuild-tools: gen$F
42321369Sdim
43226633Sdimgen$F: gen$F.o rtl.o obstack.o print-rtl.o bitmap.o errors.o gensupport.o \
44321369Sdim	ggc-none.o hashtab.o read-rtl.o concat.o insn-conditions.o
45226633Sdim	${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
46321369Sdim
47321369SdimGENSRCS+=	gen$F.c
48321369SdimCLEANFILES+=	gen$F
49321369Sdim.endfor
50321369Sdim
51193323Sed#
52193323Sed# genattrtab needs more complex build rule
53193323Sed#
54341825Sdimbuild-tools: genattrtab
55276479Sdim
56193323Sedgenattrtab : genattrtab.o rtl.o obstack.o print-rtl.o bitmap.o errors.o \
57226633Sdim	gensupport.o ggc-none.o hashtab.o read-rtl.o concat.o \
58226633Sdim	insn-conditions.o genautomata.o varray.o getruntime.o
59193323Sed	${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm
60243830Sdim
61243830SdimGENSRCS+=	genattrtab.c
62226633SdimCLEANFILES+=	genattrtab
63249423Sdim
64226633Sdim#
65226633Sdim# genconstants and genconditions cannot depend on insn-conditions.o
66249423Sdim# they should be liked with dummy-conditions.o stubs instead
67249423Sdim#
68249423Sdim.for F in constants conditions
69249423Sdimbuild-tools: gen$F
70249423Sdim
71249423Sdimgen$F: gen$F.o rtl.o obstack.o bitmap.o errors.o gensupport.o \
72249423Sdim       ggc-none.o hashtab.o read-rtl.o concat.o dummy-conditions.o
73249423Sdim	${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
74249423Sdim
75249423SdimGENSRCS+=	gen$F.c
76249423SdimCLEANFILES+=	gen$F
77249423Sdim.endfor
78249423Sdim
79249423Sdim.for F in check genrtl preds
80239462Sdimbuild-tools: gen$F
81249423Sdim
82239462Sdimgen$F: gen$F.o
83239462Sdim	${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
84309124Sdim
85309124SdimGENSRCS+=	gen$F.c
86309124SdimCLEANFILES+=	gen$F
87309124Sdim.endfor
88309124Sdim
89309124Sdim.ORDER: genrtl.c genrtl.h
90309124Sdimgenrtl.c genrtl.h: gengenrtl
91309124Sdim	./gengenrtl > genrtl.c
92309124Sdim	./gengenrtl -h > genrtl.h
93309124Sdim
94309124SdimGENSRCS+=	genrtl.c genrtl.h
95309124Sdim
96309124SdimSRCS+=	bitmap.c concat.c dummy-conditions.c errors.c genautomata.c \
97309124Sdim	gensupport.c getruntime.c ggc-none.c hashtab.c \
98309124Sdim	obstack.c physmem.c print-rtl.c read-rtl.c rtl.c varray.c xmemdup.c
99309124Sdim
100309124Sdim#-----------------------------------------------------------------------
101314564Sdim# Common parser stuff.
102309124Sdim
103309124Sdimtree-check.h: gencheck
104309124Sdim	./gencheck > ${.TARGET}
105193323SedGENSRCS+=	tree-check.h
106321369Sdim
107327952Sdim#-----------------------------------------------------------------------
108327952Sdim# Predicates stuff.
109327952Sdim
110193323Sedtm-preds.h: genpreds
111249423Sdim	./genpreds > ${.TARGET}
112249423SdimGENSRCS+=	tm-preds.h
113288943Sdim
114321369Sdim#-----------------------------------------------------------------------
115249423Sdim# Gengtype 
116249423Sdim
117249423Sdimgengtype-lex.c : gengtype-lex.l
118249423Sdim	${LEX} -t  ${.ALLSRC} | \
119249423Sdim	sed 's/^\(char msg\[\];\)/yyconst \1/' > ${.TARGET}
120249423Sdim
121249423Sdim.ORDER: gengtype-yacc.c gengtype-yacc.h
122249423Sdimgengtype-yacc.c gengtype-yacc.h: gengtype-yacc.y
123249423Sdim	${YACC} -d -o gengtype-yacc.c ${.ALLSRC}
124249423Sdim
125249423SdimGENSRCS+=	gengtype-yacc+%DIKED.c gengtype-yacc.h gengtype-lex.c
126249423SdimCLEANFILES+=	gengtype-yacc.c
127249423Sdim
128249423Sdimgengtype-yacc+%DIKED.c: gengtype-yacc.c
129249423Sdim	cat    ${.ALLSRC} > ${.TARGET}
130249423Sdim	sed -e "s/xmalloc/malloc/g" \
131249423Sdim	    -e "s/xrealloc/realloc/g" \
132249423Sdim	    -e "s/malloc/xmalloc/g" \
133249423Sdim	    -e "s/realloc/xrealloc/g" \
134249423Sdim	    ${.ALLSRC} > ${.TARGET}
135249423Sdim
136249423Sdimgengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o xmemdup.o
137249423Sdim	${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC}
138249423Sdim
139249423SdimGENSRCS+=	gengtype.c
140249423SdimCLEANFILES+=	gengtype
141249423Sdim
142249423Sdimgengtype-lex.o: gengtype-yacc.h
143249423Sdim
144321369Sdim.ORDER: gtype-desc.c gtype-desc.h
145321369Sdimgtype-desc.c gtype-desc.h: gtype-time-stamp
146249423Sdim	@true
147249423Sdim
148249423SdimGENSRCS+=	gtype-time-stamp
149249423Sdimgtype-time-stamp: gengtype ${GTFILES}
150249423Sdim	./gengtype
151249423Sdim	touch ${.TARGET}
152321369Sdim
153321369SdimGENSRCS+=	gtype-desc.c gtype-desc.h
154321369SdimCLEANFILES+=	gt-*.h gtype-*.h
155321369Sdim
156249423Sdim#-----------------------------------------------------------------------
157249423Sdim# Determine content of variables used by the target/host config files
158249423Sdim
159249423Sdim#
160249423Sdim# The list of headers to go into tconfig.h
161249423Sdim#
162249423SdimTARGET_INC=	ansidecl.h
163249423SdimTARGET_INC+=	${GCC_CPU}/${GCC_CPU}.h
164249423Sdim.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64"
165249423SdimTARGET_INC+=	${GCC_CPU}/unix.h
166249423SdimTARGET_INC+=	${GCC_CPU}/att.h
167249423Sdim.endif
168249423Sdim.if ${TARGET_ARCH} != "alpha"
169321369SdimTARGET_INC+=	dbxelf.h
170249423SdimTARGET_INC+=	elfos.h
171276479Sdim.endif
172249423SdimTARGET_INC+=	freebsd-native.h
173249423SdimTARGET_INC+=	freebsd-spec.h
174249423SdimTARGET_INC+=	freebsd.h
175249423Sdim.if ${TARGET_ARCH} == "alpha"
176249423SdimTARGET_INC+=	${GCC_CPU}/elf.h
177249423Sdim.endif
178321369Sdim.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64"
179249423Sdim.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h)
180276479SdimTARGET_INC+=	${GCC_CPU}/sysv4.h
181249423Sdim.endif
182249423Sdim.endif
183249423SdimTARGET_INC+=	${GCC_CPU}/freebsd.h
184249423Sdim.if ${TARGET_ARCH} == "amd64"
185249423SdimTARGET_INC+=	${GCC_CPU}/x86-64.h
186249423SdimTARGET_INC+=	${GCC_CPU}/freebsd64.h
187288943Sdim.endif
188249423SdimTARGET_INC+=	defaults.h
189249423Sdim
190327952Sdim#
191249423Sdim# Use TARGET_INC as a template and build a list of target specific
192276479Sdim# include files for gengtype to scan
193276479Sdim#
194249423SdimGCONFIG_H=	${.OBJDIR}/tconfig.h ${.CURDIR}/auto-host.h
195249423Sdim
196249423Sdim.for H in ${TARGET_INC}
197276479Sdim.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR}
198249423Sdim.if exists($D/$H)
199249423SdimGCONFIG_H+=	$D/$H
200249423Sdim.endif
201276479Sdim.endfor
202249423Sdim.endfor
203249423Sdim
204276479Sdim#
205288943Sdim# Define some variables to make blocks copied from Makefile.in happy
206249423Sdim#
207249423Sdimsrcdir=		${GCCDIR}
208249423SdimHASHTAB_H=	${GCCDIR}/hashtab.h
209321369Sdimout_file=	${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.c
210321369SdimGTFILES_SRCDIR=	${GCCDIR}
211249423Sdim
212249423Sdim#
213341825Sdim# Copied unchanged from gcc/Makefile.in
214249423Sdim#
215341825SdimGTFILES = $(GCONFIG_H) $(srcdir)/location.h \
216341825Sdim  $(HASHTAB_H) \
217341825Sdim  $(srcdir)/bitmap.h $(srcdir)/function.h  $(srcdir)/rtl.h $(srcdir)/optabs.h \
218193323Sed  $(srcdir)/tree.h $(srcdir)/libfuncs.h $(srcdir)/hashtable.h $(srcdir)/real.h \
219314564Sdim  $(srcdir)/varray.h $(srcdir)/ssa.h $(srcdir)/insn-addr.h $(srcdir)/cselib.h \
220193323Sed  $(srcdir)/c-common.h $(srcdir)/c-tree.h \
221276479Sdim  $(srcdir)/basic-block.h \
222321369Sdim  $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c \
223193323Sed  $(srcdir)/dwarf2out.c $(srcdir)/emit-rtl.c \
224193323Sed  $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \
225193323Sed  $(srcdir)/fold-const.c $(srcdir)/function.c \
226193323Sed  $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \
227276479Sdim  $(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \
228276479Sdim  $(srcdir)/reg-stack.c \
229276479Sdim  $(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \
230276479Sdim  $(srcdir)/tree.c $(srcdir)/varasm.c \
231276479Sdim  $(out_file)
232276479Sdim
233276479Sdim#
234193323Sed# Build a list of frontend directories to look into
235193323Sed#
236193323SedGTFILES_LANG_DIR_NAMES=
237309124Sdim
238309124Sdim.if !defined(NO_CXX)
239314564SdimGTFILES_LANG_DIR_NAMES+=	cp
240309124Sdim.endif
241309124Sdim
242276479Sdim.if !defined(NO_OBJC)
243249423SdimGTFILES_LANG_DIR_NAMES+=	objc
244249423Sdim.endif
245249423Sdim
246226633Sdim.if !defined(NO_FORTRAN)
247341825SdimGTFILES_LANG_DIR_NAMES+=	f
248341825Sdim.endif
249249423Sdim
250249423Sdim#
251226633Sdim# Build a list of language specific files for gengtype
252309124Sdim#
253309124Sdim.for L in ${GTFILES_LANG_DIR_NAMES} c
254280031Sdim.if exists(${GCCDIR}/$L-config-lang.in)
255249423Sdim# Source the language config file
256249423Sdim$L_GTFILES!=	sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles'
257249423Sdim.else
258249423Sdim$L_GTFILES!=	sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles'
259249423Sdim.endif
260226633SdimGTFILES+=	${$L_GTFILES}
261249423Sdim.for F in ${$L_GTFILES}
262249423SdimGTFILES_FILES+=	$F
263249423SdimGTFILES_LANGS+= $L
264249423Sdim.endfor
265288943Sdim.endfor
266288943Sdim
267226633Sdim#-----------------------------------------------------------------------
268249423Sdim# the host/target compiler config.
269249423Sdim
270314564SdimCOMMONHDRS=	config.h hconfig.h multilib.h options.h specs.h tconfig.h \
271226633Sdim		tm_p.h configargs.h safe-ctype.h
272249423SdimGENSRCS+=	${COMMONHDRS} gencheck.h gtyp-gen.h
273249423Sdim
274249423SdimMFILE?=	${.CURDIR}/Makefile
275226633Sdim${COMMONHDRS}: ${MFILE}
276249423Sdim
277249423Sdimconfigargs.h:
278249423Sdim	echo 'static const char configuration_arguments[] ='	> ${.TARGET}
279249423Sdim	echo '	"FreeBSD/${TARGET_ARCH} system compiler";'	>> ${.TARGET}
280226633Sdim	echo 'static const char thread_model[] = "posix";'	>> ${.TARGET}
281249423Sdim
282249423Sdimhconfig.h:
283249423Sdim	echo '#include "auto-host.h"'			> ${.TARGET}
284249423Sdim	echo '#include <tconfig.h>'			>> ${.TARGET}
285249423Sdim
286249423Sdimgencheck.h:
287249423Sdim	echo '#include "cp/cp-tree.def"'		> ${.TARGET}
288249423Sdim	echo '#include "objc/objc-tree.def"'		>> ${.TARGET}
289249423Sdim
290249423Sdimmultilib.h:
291249423Sdim	echo 'static const char *const multilib_raw[] = { \
292249423Sdim	    "aout maout;", "elf !maout;", NULL };'	> ${.TARGET}
293249423Sdim	echo 'static const char *const multilib_matches_raw[] = { \
294249423Sdim	    "maout maout;", "melf melf;", NULL };'	>> ${.TARGET}
295249423Sdim	echo 'static const char *multilib_extra = "";'	>> ${.TARGET}
296249423Sdim	echo 'static const char *multilib_options = "";'>> ${.TARGET}
297249423Sdim	echo 'static const char *const multilib_exclusions_raw[] = { \
298327952Sdim	    NULL };'					>> ${.TARGET}
299193323Sed
300321369Sdimoptions.h:
301321369Sdim	echo '#include "cp/lang-options.h"'		> ${.TARGET}
302321369Sdim	echo '#include "f/lang-options.h"'		>> ${.TARGET}
303341825Sdim	echo '#include "objc/lang-options.h"'		>> ${.TARGET}
304327952Sdim
305249423Sdimspecs.h:
306249423Sdim	echo '#include "cp/lang-specs.h"'		> ${.TARGET}
307249423Sdim	echo '#include "f/lang-specs.h"'		>> ${.TARGET}
308249423Sdim	echo '#include "objc/lang-specs.h"'		>> ${.TARGET}
309341825Sdim
310341825Sdimconfig.h:
311341825Sdim	echo '#include <hconfig.h>'			> ${.TARGET}
312249423Sdim	echo '#ifndef GENERATOR_FILE'			>> ${.TARGET}
313249423Sdim	echo '#include "insn-constants.h"'		>> ${.TARGET}
314249423Sdim	echo '#include "insn-flags.h"'			>> ${.TARGET}
315249423Sdim	echo '#endif'					>> ${.TARGET}
316249423Sdim
317249423Sdimtconfig.h:
318249423Sdim	echo 'struct rtx_def;'				> ${.TARGET}
319249423Sdim	echo 'typedef struct rtx_def *rtx;'		>> ${.TARGET}
320249423Sdim	echo 'struct rtvec_def;'			>> ${.TARGET}
321249423Sdim	echo 'typedef struct rtvec_def *rtvec;'		>> ${.TARGET}
322249423Sdim	echo 'union tree_node;'				>> ${.TARGET}
323249423Sdim	echo 'typedef union tree_node *tree;'		>> ${.TARGET}
324249423Sdim	echo '#ifndef GTY'				>> ${.TARGET}
325249423Sdim	echo '# define GTY(x)'				>> ${.TARGET}
326249423Sdim	echo '#endif'					>> ${.TARGET}
327249423Sdim	echo ''						>> ${.TARGET}
328249423Sdim.if ${TARGET_ARCH} == "amd64"
329249423Sdim	echo '#include "i386/biarch64.h"'		>> ${.TARGET}
330249423Sdim.endif
331249423Sdim.if ${TARGET_ARCH} == "ia64"
332249423Sdim	echo '#define TARGET_CPU_DEFAULT (MASK_GNU_AS|MASK_GNU_LD)' >>${.TARGET}
333249423Sdim.endif
334249423Sdim.for H in ${TARGET_INC}
335249423Sdim	echo '#include "$H"'				>> ${.TARGET}
336249423Sdim.endfor
337288943Sdim	echo '#ifndef POSIX'				>> ${.TARGET}
338249423Sdim	echo '# define POSIX'				>> ${.TARGET}
339249423Sdim	echo '#endif'					>> ${.TARGET}
340249423Sdim.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def)
341249423Sdim	echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET}
342249423Sdim	echo '#define EXTRA_CC_MODES 1'			>> ${.TARGET}
343249423Sdim.endif
344249423Sdim
345249423Sdimtm_p.h:
346249423Sdim	echo '#include "${GCC_CPU}/${GCC_CPU}-protos.h"'	>> ${.TARGET}
347288943Sdim	echo '#include "tm-preds.h"'				>> ${.TARGET}
348288943Sdim
349249423Sdimsafe-ctype.h: Makefile
350249423Sdim	echo '#include <ctype.h>'				> ${.TARGET}
351249423Sdim.for Z in TOUPPER TOLOWER ISDIGIT ISXDIGIT ISUPPER ISLOWER ISALPHA ISALNUM \
352249423Sdim    ISSPACE ISPUNCT ISGRAPH ISBLANK ISPRINT ISCNTRL
353249423Sdim	echo '#define ${Z}	${Z:L}'				>> ${.TARGET}
354249423Sdim.endfor
355249423Sdim	echo "#define ISIDST(x)		\
356249423Sdim		((x) == '_' || isalpha(x))"			>> ${.TARGET}
357249423Sdim	echo "#define ISIDNUM(x)	\
358249423Sdim		(isdigit(x) || ISIDST(x))"			>> ${.TARGET}
359249423Sdim	echo "#define IS_VSPACE(x)	\
360249423Sdim		((x) == '\n' || (x) == '\r')"			>> ${.TARGET}
361249423Sdim	echo "#define IS_NVSPACE(x)	\
362249423Sdim		(!IS_VSPACE(x) && (isspace(x) || (x) == '\0'))"	>> ${.TARGET}
363249423Sdim	echo "#define IS_SPACE_OR_NUL(x)	\
364249423Sdim		(isspace(x) || (x) == '\0')"			>> ${.TARGET}
365249423Sdim
366249423Sdimgtyp-gen.h:
367249423Sdim	echo "/* This file is machine generated.  Do not edit.  */" > ${.TARGET}
368249423Sdim	echo "static const char *srcdir = "			>> ${.TARGET}
369249423Sdim	echo "\"$(GTFILES_SRCDIR)\";"				>> ${.TARGET}
370288943Sdim	echo "static const char *lang_files[] = {"		>> ${.TARGET}
371288943Sdim.for F in ${GTFILES_FILES}
372288943Sdim	echo "\"$F\", "						>> ${.TARGET}
373288943Sdim.endfor
374288943Sdim	echo "NULL};"						>> ${.TARGET}
375288943Sdim	echo "static const char *langs_for_lang_files[] = {"	>> ${.TARGET}
376288943Sdim.for F in ${GTFILES_LANGS}
377288943Sdim	echo "\"$F\", "						>> ${.TARGET}
378249423Sdim.endfor
379249423Sdim	echo "NULL};"						>> ${.TARGET}
380249423Sdim	echo "static const char *all_files[] = {"		>> ${.TARGET}
381249423Sdim.for F in ${GTFILES}
382249423Sdim	echo "\"$F\", "						>> ${.TARGET}
383249423Sdim.endfor
384288943Sdim	echo "NULL};"						>> ${.TARGET}
385288943Sdim	echo "static const char *lang_dir_names[] = { \"c\", "	>> ${.TARGET}
386249423Sdim.for F in ${GTFILES_LANG_DIR_NAMES}
387249423Sdim	echo "\"$F\", "						>> ${.TARGET}
388249423Sdim.endfor
389249423Sdim	echo "NULL};"						>> ${.TARGET}
390249423Sdim	echo "#define	xexit exit"				>> ${.TARGET}
391249423Sdim
392249423Sdim
393249423Sdim#-----------------------------------------------------------------------
394249423Sdim# General things.
395321369Sdim
396249423SdimSRCS+=		${GENSRCS}
397249423SdimCLEANFILES+=	${GENSRCS}
398249423Sdim
399249423Sdimall: ${SRCS}
400249423Sdim
401249423Sdim.include <bsd.prog.mk>
402249423Sdim
403249423Sdim#-----------------------------------------------------------------------
404249423Sdim# Fixups.
405249423Sdim
406249423Sdim# Set OBJS the same as bsd.prog.mk would do if we defined PROG.  We can't
407249423Sdim# define PROG because we have multiple programs.
408249423Sdim#
409249423SdimOBJS+=		${SRCS:N*.h:R:S/$/.o/g}
410296417Sdim
411296417Sdim.if !exists(${DEPENDFILE})
412249423Sdim# Fudge pre-dependfile dependencies of objects in much the same way as
413249423Sdim# bsd.prog.mk would do if we defined PROG.  There are complications to
414249423Sdim# avoid circular dependencies.  First, only make most objects depend on
415249423Sdim# all headers.  Filter out the objects that would cause problems (i.e.,
416249423Sdim# objects that will be used to create programs that will generate headers).
417249423Sdim#
418249423Sdim${OBJS}: ${SRCS:M*.h:Ngtype-desc.h:Ngenrtl.h:Ntree-check.h:Ntm-preds.h:Ninsn-*.h}
419249423Sdim
420249423Sdim${OBJS:Ngencheck.o:Ngengenrtl.o:Ngenpreds.o}: tree-check.h tm-preds.h genrtl.h
421249423Sdim
422249423Sdim${OBJS:Ngengtype*.o:Nxmemdup.o:Ngengenrtl.o:Ngencheck.o:Ngenpreds.o}: gtype-desc.h
423249423Sdim
424249423Sdimgenextract.o: insn-config.h
425249423Sdim
426249423Sdiminsn-conditions.o: insn-constants.h
427249423Sdim
428249423Sdim.endif
429249423Sdim