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