Makefile revision 132751
150472Speter# $FreeBSD: head/gnu/usr.bin/cc/cc_tools/Makefile 132751 2004-07-28 05:27:21Z kan $ 218390Speter 318390Speter# 418390Speter# This could probably be merged with ../cc_int/Makefile, but bsd.lib.mk 534112Sbde# is such a !@#!*#% nightmare because of how it reprograms the dependencies, 618390Speter# suffix rules, SRCS, etc. It's easiest to cheat by using bsd.prog.mk and 718390Speter# SRCS to get dependencies. 818390Speter# 918390Speter 10126266Sbde# 1135402Sbde# ../Makefile.inc will put an absolute path to our objdir in CFLAGS. 1235402Sbde# Prevent mkdep from using it, so that we don't have to give rules for 1335402Sbde# aliases of generated headers. 14126266Sbde# 15126266SbdeCFLAGS+= -I. 1649864Sobrien 1718390Speter.include "../Makefile.inc" 1818390Speter 19132751Skan.PATH: ${GCCDIR} ${GCCDIR}/f 2045583Sbde 21126266SbdeCFLAGS+= -DGENERATOR_FILE 22126266Sbde 23132751Skan# 2418390Speter#----------------------------------------------------------------------- 25132751Skan# Build 'pocket' libiberty exclusively for build tools use. 26132751Skan 27132751SkanLIBIBERTY_SRCS= choose-temp.c concat.c cp-demangle.c cp-demint.c cplus-dem.c \ 28132751Skan dyn-string.c errors.c fibheap.c \ 29132751Skan getpwd.c getruntime.c hashtab.c hex.c lbasename.c make-temp-file.c \ 30132751Skan md5.c obstack.c partition.c pexecute.c physmem.c splay-tree.c xexit.c \ 31132751Skan xmalloc.c xmemdup.c xstrdup.c xstrerror.c xexit.c 32132751SkanLIBIBERTY_OBJS= ${LIBIBERTY_SRCS:R:S/$/.o/g} 33132751Skan 34132751SkanSRCS+= ${LIBIBERTY_SRCS} 35132751Skan 36132751SkanLIBIBERTY=libiberty.a 37132751Skan${LIBIBERTY}: ${LIBIBERTY_OBJS} 38132751Skan @rm -f ${.TARGET} 39132751Skan @${AR} cq ${.TARGET} `lorder ${LIBIBERTY_OBJS} | tsort -q` 40132751Skan ${RANLIB} ${.TARGET} 41132751SkanCLEANFILES+= ${LIBIBERTY} 42132751Skan 43132751Skan# 44132751Skan#----------------------------------------------------------------------- 45132751Skan# options 46132751SkanOPTION_FILES=${GCCDIR}/f/lang.opt ${GCCDIR}/c.opt ${GCCDIR}/common.opt 47132751Skan 48132751Skan.ORDER: options.h options.c 49132751Skanoptions.h options.c: opts.sh ${OPTION_FILES} 50132751Skan /bin/sh ${GCCDIR}/opts.sh mv options.c options.h ${OPTION_FILES} 51132751Skan 52132751Skan 53132751SkanGENSRCS+= options.c options.h 54132751SkanCLEANFILES+= options.c options.h 55132751Skan 56132751Skan#----------------------------------------------------------------------- 5718390Speter# insn-* gunk 5818390Speter 59117429Skan.for F in attr codes config flags constants 6056497Sobrieninsn-$F.h: gen$F ${MD_FILE} 6156497Sobrien ./gen$F ${MD_FILE} > insn-$F.h 6256497SobrienGENSRCS+= insn-$F.h 6318390Speter.endfor 6418390Speter 65117429Skan.for F in conditions 66117429Skaninsn-$F.c: gen$F ${MD_FILE} 67117429Skan ./gen$F ${MD_FILE} > insn-$F.c 68117429SkanGENSRCS+= insn-$F.c 69117429Skan.endfor 70117429Skan 7191559SobrienGENSRCS+= gen-time-stamp 72117429Skangen-time-stamp: genattr genattrtab genconditions genconstants genemit \ 73117429Skan genextract gengtype genopinit genoutput genpeep genrecog 7491559Sobrien touch ${.TARGET} 7518390Speter 7656497Sobrien.for F in attr codes config emit extract flags opinit output peep recog 7756497Sobrienbuild-tools: gen$F 7837460Sbde 79132751Skangen$F: gen$F.o rtl.o print-rtl.o bitmap.o gensupport.o ggc-none.o \ 80132751Skan read-rtl.o insn-conditions.o min-insn-modes.o ${LIBIBERTY} 8193874Sobrien ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 8218390Speter 8356497SobrienGENSRCS+= gen$F.c 8456497SobrienCLEANFILES+= gen$F 8518390Speter.endfor 8618390Speter 87117429Skan# 88117429Skan# genattrtab needs more complex build rule 89117429Skan# 90117429Skanbuild-tools: genattrtab 91117429Skan 92132751Skangenattrtab : genattrtab.o rtl.o print-rtl.o bitmap.o gensupport.o ggc-none.o \ 93132751Skan read-rtl.o insn-conditions.o genautomata.o varray.o min-insn-modes.o \ 94132751Skan ${LIBIBERTY} 95117429Skan ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} -lm 96117429Skan 97117429SkanGENSRCS+= genattrtab.c 98117429SkanCLEANFILES+= genattrtab 99117429Skan 100117429Skan# 101117429Skan# genconstants and genconditions cannot depend on insn-conditions.o 102117429Skan# they should be liked with dummy-conditions.o stubs instead 103117429Skan# 104117429Skan.for F in constants conditions 10556497Sobrienbuild-tools: gen$F 10645299Sobrien 107132751Skangen$F: gen$F.o rtl.o bitmap.o gensupport.o ggc-none.o read-rtl.o dummy-conditions.o min-insn-modes.o ${LIBIBERTY} 10893874Sobrien ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 10945299Sobrien 11056497SobrienGENSRCS+= gen$F.c 11156497SobrienCLEANFILES+= gen$F 11245299Sobrien.endfor 11345299Sobrien 114132751Skan.for F in modes check genrtl preds 11556497Sobrienbuild-tools: gen$F 11637460Sbde 117132751Skangen$F: gen$F.o ${LIBIBERTY} 11893874Sobrien ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 11918390Speter 12056497SobrienGENSRCS+= gen$F.c 12156497SobrienCLEANFILES+= gen$F 12218390Speter.endfor 12318390Speter 12456806Sobrien.ORDER: genrtl.c genrtl.h 12545583Sbdegenrtl.c genrtl.h: gengenrtl 12696340Sobrien ./gengenrtl > genrtl.c 12796340Sobrien ./gengenrtl -h > genrtl.h 12845583Sbde 12945583SbdeGENSRCS+= genrtl.c genrtl.h 13045583Sbde 131132751SkanSRCS+= bitmap.c concat.c dummy-conditions.c genautomata.c \ 132124417Sru gensupport.c getruntime.c ggc-none.c hashtab.c \ 133117429Skan obstack.c physmem.c print-rtl.c read-rtl.c rtl.c varray.c xmemdup.c 134117429Skan 13518390Speter#----------------------------------------------------------------------- 136132751Skan# insn modes stuff. 137132751Skan 138132751Skan.ORDER: insn-modes.c insn-modes.h 139132751Skaninsn-modes.h: genmodes 140132751Skan ./genmodes -h > insn-modes.h 141132751Skan 142132751Skaninsn-modes.c: genmodes 143132751Skan ./genmodes > insn-modes.c 144132751Skan 145132751Skanmin-insn-modes.c: genmodes 146132751Skan ./genmodes -m > min-insn-modes.c 147132751Skan 148132751SkanGENSRCS+= insn-modes.c min-insn-modes.c insn-modes.h 149132751Skan 150132751Skan#----------------------------------------------------------------------- 15145583Sbde# Common parser stuff. 15245299Sobrien 15345299Sobrientree-check.h: gencheck 15445299Sobrien ./gencheck > ${.TARGET} 15545519SbdeGENSRCS+= tree-check.h 15645299Sobrien 15745299Sobrien#----------------------------------------------------------------------- 15896340Sobrien# Predicates stuff. 15996340Sobrien 16096340Sobrientm-preds.h: genpreds 16196340Sobrien ./genpreds > ${.TARGET} 16296340SobrienGENSRCS+= tm-preds.h 16396340Sobrien 16496340Sobrien#----------------------------------------------------------------------- 165117429Skan# Gengtype 166117429Skan 167117429Skangengtype-lex.c : gengtype-lex.l 168117429Skan ${LEX} -t ${.ALLSRC} | \ 169117429Skan sed 's/^\(char msg\[\];\)/yyconst \1/' > ${.TARGET} 170117429Skan 171117429Skan.ORDER: gengtype-yacc.c gengtype-yacc.h 172117429Skangengtype-yacc.c gengtype-yacc.h: gengtype-yacc.y 173117429Skan ${YACC} -d -o gengtype-yacc.c ${.ALLSRC} 174117429Skan 175117429SkanGENSRCS+= gengtype-yacc+%DIKED.c gengtype-yacc.h gengtype-lex.c 176117429SkanCLEANFILES+= gengtype-yacc.c 177117429Skan 178117429Skangengtype-yacc+%DIKED.c: gengtype-yacc.c 179117429Skan cat ${.ALLSRC} > ${.TARGET} 180117429Skan sed -e "s/xmalloc/malloc/g" \ 181117429Skan -e "s/xrealloc/realloc/g" \ 182117429Skan -e "s/malloc/xmalloc/g" \ 183117429Skan -e "s/realloc/xrealloc/g" \ 184117429Skan ${.ALLSRC} > ${.TARGET} 185117429Skan 186132751Skangengtype: gengtype.o gengtype-yacc+%DIKED.o gengtype-lex.o ${LIBIBERTY} 187117429Skan ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 188117429Skan 189117429SkanGENSRCS+= gengtype.c 190117429SkanCLEANFILES+= gengtype 191117429Skan 192117429Skangengtype-lex.o: gengtype-yacc.h 193117429Skan 194117429Skan.ORDER: gtype-desc.c gtype-desc.h 195117429Skangtype-desc.c gtype-desc.h: gtype-time-stamp 196117429Skan @true 197117429Skan 198117429SkanGENSRCS+= gtype-time-stamp 199117429Skangtype-time-stamp: gengtype ${GTFILES} 200117429Skan ./gengtype 201117429Skan touch ${.TARGET} 202117429Skan 203117429SkanGENSRCS+= gtype-desc.c gtype-desc.h 204117429SkanCLEANFILES+= gt-*.h gtype-*.h 205117429Skan 206132751Skan# 207117429Skan#----------------------------------------------------------------------- 208132751Skan# Fortran build tools 209132751Skan 210132751Skan.if !defined(NO_FORTRAN) 211132751Skangen-time-stamp: fini 212132751Skanbuild-tools: fini 213132751Skanfini: fini.o ${LIBIBERTY} 214132751Skan ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${.ALLSRC} 215132751SkanSRCS+= fini.c 216132751SkanCLEANFILES+= fini 217132751Skan.endif 218132751Skan 219132751Skan#----------------------------------------------------------------------- 220117429Skan# Determine content of variables used by the target/host config files 221117429Skan 222117429Skan# 223132751Skan# The list of headers to go into tm.h 224117429Skan# 225132751Skan.if ${TARGET_ARCH} == "amd64" 226132751SkanTARGET_INC= i386/biarch64.h 227132751Skan.endif 228117429SkanTARGET_INC+= ${GCC_CPU}/${GCC_CPU}.h 229117429Skan.if ${TARGET_ARCH} == "i386" || ${TARGET_ARCH} == "amd64" 230117429SkanTARGET_INC+= ${GCC_CPU}/unix.h 231117429SkanTARGET_INC+= ${GCC_CPU}/att.h 232117429Skan.endif 233117429Skan.if ${TARGET_ARCH} != "alpha" 234117429SkanTARGET_INC+= dbxelf.h 235117429SkanTARGET_INC+= elfos.h 236117429Skan.endif 237117429SkanTARGET_INC+= freebsd-native.h 238117429SkanTARGET_INC+= freebsd-spec.h 239117429SkanTARGET_INC+= freebsd.h 240117429Skan.if ${TARGET_ARCH} == "alpha" 241117429SkanTARGET_INC+= ${GCC_CPU}/elf.h 242117429Skan.endif 243117429Skan.if ${TARGET_ARCH} != "i386" && ${TARGET_ARCH} != "amd64" 244117429Skan.if exists(${GCCDIR}/config/${GCC_CPU}/sysv4.h) 245117429SkanTARGET_INC+= ${GCC_CPU}/sysv4.h 246117429Skan.endif 247117429Skan.endif 248117429SkanTARGET_INC+= ${GCC_CPU}/freebsd.h 249117429Skan.if ${TARGET_ARCH} == "amd64" 250117429SkanTARGET_INC+= ${GCC_CPU}/x86-64.h 251117429SkanTARGET_INC+= ${GCC_CPU}/freebsd64.h 252130325SpeterTARGET_INC+= freebsd64-fix.h 253117429Skan.endif 254132751Skan.if ${TARGET_ARCH} == "powepc" 255132751SkanTARGET_INC+= altivec-defs.h 256132751Skan.endif 257117429SkanTARGET_INC+= defaults.h 258117429Skan 259117429Skan# 260117429Skan# Use TARGET_INC as a template and build a list of target specific 261117429Skan# include files for gengtype to scan 262117429Skan# 263132751SkanGCONFIG_H= ${.CURDIR}/auto-host.h 264117429Skan 265117429Skan.for H in ${TARGET_INC} 266117429Skan.for D in ${GCCDIR}/config ${GCCDIR} ${.CURDIR} 267117429Skan.if exists($D/$H) 268117429SkanGCONFIG_H+= $D/$H 269117429Skan.endif 270117429Skan.endfor 271117429Skan.endfor 272117429Skan 273117429Skan# 274117429Skan# Define some variables to make blocks copied from Makefile.in happy 275117429Skan# 276117429Skansrcdir= ${GCCDIR} 277117429SkanHASHTAB_H= ${GCCDIR}/hashtab.h 278132751SkanSPLAY_TREE_H= ${GCCDIR}/splay-tree.h 279117429Skanout_file= ${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}.c 280117429SkanGTFILES_SRCDIR= ${GCCDIR} 281117429Skan 282117429Skan# 283117429Skan# Copied unchanged from gcc/Makefile.in 284117429Skan# 285132751SkanGTFILES = $(srcdir)/input.h $(srcdir)/coretypes.h $(srcdir)/cpplib.h \ 286132751Skan $(GCONFIG_H) $(HASHTAB_H) $(SPLAY_TREE_H) \ 287132751Skan $(srcdir)/bitmap.h $(srcdir)/coverage.c $(srcdir)/function.h $(srcdir)/rtl.h \ 288132751Skan $(srcdir)/optabs.h $(srcdir)/tree.h $(srcdir)/libfuncs.h $(srcdir)/hashtable.h \ 289132751Skan $(srcdir)/real.h $(srcdir)/varray.h $(srcdir)/insn-addr.h \ 290132751Skan $(srcdir)/cselib.h $(srcdir)/basic-block.h $(srcdir)/cgraph.h \ 291117429Skan $(srcdir)/c-common.h $(srcdir)/c-tree.h \ 292132751Skan $(srcdir)/alias.c $(srcdir)/bitmap.c $(srcdir)/cselib.c $(srcdir)/cgraph.c \ 293132751Skan $(srcdir)/dbxout.c $(srcdir)/dwarf2out.c $(srcdir)/dwarf2asm.c \ 294132751Skan $(srcdir)/emit-rtl.c $(srcdir)/except.c $(srcdir)/explow.c $(srcdir)/expr.c \ 295117429Skan $(srcdir)/fold-const.c $(srcdir)/function.c \ 296117429Skan $(srcdir)/gcse.c $(srcdir)/integrate.c $(srcdir)/lists.c $(srcdir)/optabs.c \ 297117429Skan $(srcdir)/profile.c $(srcdir)/ra-build.c $(srcdir)/regclass.c \ 298132751Skan $(srcdir)/reg-stack.c $(srcdir)/cfglayout.c $(srcdir)/langhooks.c \ 299117429Skan $(srcdir)/sdbout.c $(srcdir)/stmt.c $(srcdir)/stor-layout.c \ 300132751Skan $(srcdir)/stringpool.c $(srcdir)/tree.c $(srcdir)/varasm.c $(out_file) 301117429Skan 302117429Skan# 303117429Skan# Build a list of frontend directories to look into 304117429Skan# 305117429SkanGTFILES_LANG_DIR_NAMES= 306117429Skan 307117429Skan.if !defined(NO_CXX) 308117429SkanGTFILES_LANG_DIR_NAMES+= cp 309117429Skan.endif 310117429Skan 311117429Skan.if !defined(NO_OBJC) 312117429SkanGTFILES_LANG_DIR_NAMES+= objc 313117429Skan.endif 314117429Skan 315117429Skan.if !defined(NO_FORTRAN) 316117429SkanGTFILES_LANG_DIR_NAMES+= f 317117429Skan.endif 318117429Skan 319117429Skan# 320117429Skan# Build a list of language specific files for gengtype 321117429Skan# 322117429Skan.for L in ${GTFILES_LANG_DIR_NAMES} c 323117429Skan.if exists(${GCCDIR}/$L-config-lang.in) 324117429Skan# Source the language config file 325125040SkanL_GTFILES!= sh -c '. ${GCCDIR}/$L-config-lang.in; echo $$gtfiles' 326117429Skan.else 327125040SkanL_GTFILES!= sh -c '. ${GCCDIR}/$L/config-lang.in; echo $$gtfiles' 328117429Skan.endif 329125040Skan.for F in ${L_GTFILES} 330117429SkanGTFILES_FILES+= $F 331117429SkanGTFILES_LANGS+= $L 332117429Skan.endfor 333117429Skan.endfor 334125040SkanGTFILES+= ${GTFILES_FILES} 335117429Skan 336117429Skan#----------------------------------------------------------------------- 33718390Speter# the host/target compiler config. 33818390Speter 339132751SkanCOMMONHDRS= bconfig.h config.h configargs.h gencheck.h multilib.h \ 340132751Skan specs.h safe-ctype.h tconfig.h tm.h tm_p.h gcov-iov.h \ 341132751Skan gtyp-gen.h 342132751SkanGENSRCS+= ${COMMONHDRS} 34334112Sbde 34496340SobrienMFILE?= ${.CURDIR}/Makefile 34596340Sobrien${COMMONHDRS}: ${MFILE} 34645299Sobrien 34796340Sobrienconfigargs.h: 34896340Sobrien echo 'static const char configuration_arguments[] =' > ${.TARGET} 349117429Skan echo ' "FreeBSD/${TARGET_ARCH} system compiler";' >> ${.TARGET} 35096340Sobrien echo 'static const char thread_model[] = "posix";' >> ${.TARGET} 351132751Skan echo 'static const struct {' >> ${.TARGET} 352132751Skan echo ' const char *name, *value;' >> ${.TARGET} 353132751Skan echo '} configure_default_options[] = {' >> ${.TARGET} 354132751Skan echo ' { "NULL", "NULL" } };' >> ${.TARGET} 35596340Sobrien 356132751Skantconfig.h: 357132751Skan echo '#ifndef GCC_TCONFIG_H' > ${.TARGET} 358132751Skan echo '#define GCC_TCONFIG_H' >> ${.TARGET} 359132751Skan echo '#ifdef IN_GCC' >> ${.TARGET} 360132751Skan echo '# include "ansidecl.h"' >> ${.TARGET} 361132751Skan echo '#endif' >> ${.TARGET} 362132751Skan echo '#define USED_FOR_TARGET' >> ${.TARGET} 363132751Skan echo '#endif /* GCC_TCONFIG_H */' >> ${.TARGET} 36496340Sobrien 365132751Skanbconfig.h: 366132751Skan echo '#ifndef GCC_BCONFIG_H' > ${.TARGET} 367132751Skan echo '#define GCC_BCONFIG_H' >> ${.TARGET} 368132751Skan echo '#include "auto-host.h"' >> ${.TARGET} 369132751Skan.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 370132751Skan echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 371132751Skan.endif 372132751Skan echo '#ifdef IN_GCC' >> ${.TARGET} 373132751Skan echo '# include "ansidecl.h"' >> ${.TARGET} 374132751Skan echo '#endif' >> ${.TARGET} 375132751Skan echo '#endif /* GCC_BCONFIG_H */' >> ${.TARGET} 376132751Skan 37753173Sobriengencheck.h: 37853173Sobrien echo '#include "cp/cp-tree.def"' > ${.TARGET} 37953173Sobrien echo '#include "objc/objc-tree.def"' >> ${.TARGET} 38053173Sobrien 38145583Sbdemultilib.h: 38296340Sobrien echo 'static const char *const multilib_raw[] = { \ 38353161Sobrien "aout maout;", "elf !maout;", NULL };' > ${.TARGET} 38496340Sobrien echo 'static const char *const multilib_matches_raw[] = { \ 38553161Sobrien "maout maout;", "melf melf;", NULL };' >> ${.TARGET} 38696340Sobrien echo 'static const char *multilib_extra = "";' >> ${.TARGET} 387104770Skan echo 'static const char *multilib_options = "";'>> ${.TARGET} 38896340Sobrien echo 'static const char *const multilib_exclusions_raw[] = { \ 38996340Sobrien NULL };' >> ${.TARGET} 39045299Sobrien 39140457Sbdespecs.h: 39253161Sobrien echo '#include "cp/lang-specs.h"' > ${.TARGET} 39353161Sobrien echo '#include "f/lang-specs.h"' >> ${.TARGET} 39453173Sobrien echo '#include "objc/lang-specs.h"' >> ${.TARGET} 39545299Sobrien 396132751Skanconfig.h: bconfig.h 397132751Skan echo '#include <bconfig.h>' > ${.TARGET} 39896340Sobrien 399132751Skantm.h: 400132751Skan echo '#ifndef GCC_TM_H' > ${.TARGET} 401132751Skan echo '#define GCC_TM_H' >> ${.TARGET} 402132751Skan.if defined(TARGET_CPU_DEFAULT) 403132751Skan echo "#define TARGET_CPU_DEFAULT (${TARGET_CPU_DEFAULT})" >> ${.TARGET} 404114425Sobrien.endif 405132751Skan echo '#ifdef IN_GCC' >> ${.TARGET} 406117429Skan.for H in ${TARGET_INC} 407117429Skan echo '#include "$H"' >> ${.TARGET} 408117429Skan.endfor 409132751Skan echo '#if !defined GENERATOR_FILE && !defined USED_FOR_TARGET' >> ${.TARGET} 410132751Skan echo '# include "insn-constants.h"' >> ${.TARGET} 411132751Skan echo '# include "insn-flags.h"' >> ${.TARGET} 41296340Sobrien echo '#endif' >> ${.TARGET} 413132751Skan echo '#endif' >> ${.TARGET} 414117429Skan.if exists(${GCCDIR}/config/${GCC_CPU}/${GCC_CPU}-modes.def) 415117429Skan echo '#define EXTRA_MODES_FILE "${GCC_CPU}/${GCC_CPU}-modes.def"' >> ${.TARGET} 41696360Sobrien.endif 417132751Skan echo '#endif /* GCC_TM_H */' >> ${.TARGET} 41818390Speter 41996340Sobrientm_p.h: 42096340Sobrien echo '#include "${GCC_CPU}/${GCC_CPU}-protos.h"' >> ${.TARGET} 42196340Sobrien echo '#include "tm-preds.h"' >> ${.TARGET} 42296340Sobrien 423132751Skansafe-ctype.h: 42496340Sobrien echo '#include <ctype.h>' > ${.TARGET} 42596340Sobrien.for Z in TOUPPER TOLOWER ISDIGIT ISXDIGIT ISUPPER ISLOWER ISALPHA ISALNUM \ 42696340Sobrien ISSPACE ISPUNCT ISGRAPH ISBLANK ISPRINT ISCNTRL 42796340Sobrien echo '#define ${Z} ${Z:L}' >> ${.TARGET} 42896340Sobrien.endfor 42996340Sobrien echo "#define ISIDST(x) \ 43096340Sobrien ((x) == '_' || isalpha(x))" >> ${.TARGET} 43196340Sobrien echo "#define ISIDNUM(x) \ 43296340Sobrien (isdigit(x) || ISIDST(x))" >> ${.TARGET} 43396340Sobrien echo "#define IS_VSPACE(x) \ 43496340Sobrien ((x) == '\n' || (x) == '\r')" >> ${.TARGET} 43596340Sobrien echo "#define IS_NVSPACE(x) \ 43696340Sobrien (!IS_VSPACE(x) && (isspace(x) || (x) == '\0'))" >> ${.TARGET} 43796340Sobrien echo "#define IS_SPACE_OR_NUL(x) \ 43896340Sobrien (isspace(x) || (x) == '\0')" >> ${.TARGET} 43996340Sobrien 440117429Skangtyp-gen.h: 441117429Skan echo "/* This file is machine generated. Do not edit. */" > ${.TARGET} 442117429Skan echo "static const char *srcdir = " >> ${.TARGET} 443117429Skan echo "\"$(GTFILES_SRCDIR)\";" >> ${.TARGET} 444117429Skan echo "static const char *lang_files[] = {" >> ${.TARGET} 445117429Skan.for F in ${GTFILES_FILES} 446117429Skan echo "\"$F\", " >> ${.TARGET} 447117429Skan.endfor 448117429Skan echo "NULL};" >> ${.TARGET} 449117429Skan echo "static const char *langs_for_lang_files[] = {" >> ${.TARGET} 450117429Skan.for F in ${GTFILES_LANGS} 451117429Skan echo "\"$F\", " >> ${.TARGET} 452117429Skan.endfor 453117429Skan echo "NULL};" >> ${.TARGET} 454117429Skan echo "static const char *all_files[] = {" >> ${.TARGET} 455117429Skan.for F in ${GTFILES} 456117429Skan echo "\"$F\", " >> ${.TARGET} 457117429Skan.endfor 458117429Skan echo "NULL};" >> ${.TARGET} 459117429Skan echo "static const char *lang_dir_names[] = { \"c\", " >> ${.TARGET} 460117429Skan.for F in ${GTFILES_LANG_DIR_NAMES} 461117429Skan echo "\"$F\", " >> ${.TARGET} 462117429Skan.endfor 463117429Skan echo "NULL};" >> ${.TARGET} 464117429Skan 465132751Skangcov-iov.h: 466132751Skan echo "#define GCOV_VERSION ((gcov_unsigned_t)0x33303470)" >> ${.TARGET} 467117429Skan 46834229Speter#----------------------------------------------------------------------- 46935402Sbde# General things. 47034229Speter 47135402SbdeSRCS+= ${GENSRCS} 47235402SbdeCLEANFILES+= ${GENSRCS} 47334229Speter 474132751Skanall: ${SRCS} 475132751Skanbuild-tools: ${SRCS} 47635402Sbde 47735402Sbde.include <bsd.prog.mk> 47835402Sbde 47934229Speter#----------------------------------------------------------------------- 48035402Sbde# Fixups. 48134112Sbde 48235402Sbde# Set OBJS the same as bsd.prog.mk would do if we defined PROG. We can't 48335402Sbde# define PROG because we have multiple programs. 48435402Sbde# 48535402SbdeOBJS+= ${SRCS:N*.h:R:S/$/.o/g} 486124547SruCLEANFILES+= ${OBJS} 48735402Sbde 48835402Sbde.if !exists(${DEPENDFILE}) 48945519Sbde# Fudge pre-dependfile dependencies of objects in much the same way as 490132751Skan# bsd.prog.mk would do if we defined PROG. 49135402Sbde 492132751Skan${OBJS}: ${COMMONHDRS} 49396344Sobrien 494132751Skandummy-conditions.o: 495132751Skangencheck.o: 496132751Skangenmodes.o: 497117429Skan 498132751Skangenpreds.o: insn-modes.h 499132751Skangenconstants.o: insn-modes.h genrtl.h 500132751Skangengtype.o: insn-modes.h genrtl.h gtyp-gen.h 501132751Skanrtl.o: insn-modes.h gtype-desc.h genrtl.h 502132751Skanbitmap.o: insn-modes.h gtype-desc.h genrtl.h 503132751Skanggc-none.o: gtype-desc.h 504132751Skangensupport.o: insn-modes.h genrtl.h 505132751Skanvarray.o: gtype-desc.h 506132751Skangenautomata.o: insn-modes.h genrtl.h 507132751Skangenconditions.o: insn-modes.h genrtl.h 508132751Skangencodes.o: insn-modes.h genrtl.h 509132751Skangenconfig.o: insn-modes.h genrtl.h 510132751Skanprint-rtl.o: insn-modes.h genrtl.h tm-preds.h tree-check.h 511132751Skanread-rtl.o: insn-modes.h genrtl.h 512132751Skangenattr.o: insn-modes.h genrtl.h 513132751Skangenemit.o: insn-modes.h genrtl.h 514132751Skangenflags.o: insn-modes.h genrtl.h 515132751Skangenopinit.o: insn-modes.h genrtl.h 516132751Skangenoutput.o: insn-modes.h genrtl.h 517132751Skangenpeep.o: insn-modes.h genrtl.h 518132751Skangenrecog.o: insn-modes.h genrtl.h 519132751Skangenextract.o: genrtl.h insn-config.h 520132751Skangenattrtab.o: insn-modes.h gtype-desc.h genrtl.h 521132751Skangenrtl.o: insn-modes.h genrtl.h gtype-desc.h 522117429Skan 523132751Skaninsn-conditions.o: insn-constants.h tm-preds.h 524132751Skaninsn-modes.o: insn-modes.h 525132751Skanmin-insn-modes.o: insn-modes.h 526132751Skangtype-desc.o: insn-modes.h insn-config.h insn-codes.h tree-check.h 527117429Skan 52835402Sbde.endif 529