1b450dd39SJohn Marino.include "../Makefile.inc" 2b450dd39SJohn Marino.include "../../Makefile.langs" 3b450dd39SJohn Marino 4b450dd39SJohn MarinoNXCFLAGS+= -DGENERATOR_FILE -I${.OBJDIR} 5b450dd39SJohn MarinoNXLDLIBS+= -lm 6b450dd39SJohn Marino 7b450dd39SJohn MarinoMIC= sh ${GCCDIR}/move-if-change 8b450dd39SJohn Marino 9b450dd39SJohn MarinoBUILD_LIBS= ../libiberty/libiberty.na 10b450dd39SJohn MarinoBUILD_RTL= rtl.no \ 11b450dd39SJohn Marino read-rtl.no \ 12b450dd39SJohn Marino ggc-none.no \ 13b450dd39SJohn Marino vec.no \ 14b450dd39SJohn Marino min-insn-modes.no \ 15b450dd39SJohn Marino gensupport.no \ 16b450dd39SJohn Marino print-rtl.no 17b450dd39SJohn MarinoBUILD_MD= read-md.no 18b450dd39SJohn MarinoBUILD_ERRORS= errors.no 19b450dd39SJohn Marino 20b450dd39SJohn Marino 21b450dd39SJohn Marino${BUILD_RTL}: tm.h insn-modes.h gtype-desc.h insn-constants.h 22b450dd39SJohn Marino 23b450dd39SJohn Marinogenprogrtl = attr attr-common attrtab automata codes conditions config emit \ 24b450dd39SJohn Marino extract flags opinit output peep preds recog 25b450dd39SJohn Marinogenprogmd = $(genprogrtl) mddeps constants enums 26b450dd39SJohn Marinogenprogerr = $(genprogmd) genrtl modes gtype hooks 27b450dd39SJohn Marino 28b450dd39SJohn Marino# All these programs use the RTL reader ($(BUILD_RTL)). 29b450dd39SJohn Marino${genprogrtl:S/^/gen/g:S/$/.no/g}: ${BUILD_RTL} 30b450dd39SJohn Marino# All these programs use the MD reader 31b450dd39SJohn Marino${genprogmd:S/^/gen/g:S/$/.no/g}: ${BUILD_MD} 32b450dd39SJohn Marino# All these programs need to report errors. 33b450dd39SJohn Marino${genprogerr:S/^/gen/g:S/$/.no/g}: ${BUILD_ERRORS} 34b450dd39SJohn Marino 35b450dd39SJohn Marino.for f in ${genprogrtl} 36b450dd39SJohn Marinogen${f}.nx: ${BUILD_RTL} 37b450dd39SJohn Marino.endfor 38b450dd39SJohn Marino 39b450dd39SJohn Marino.for f in ${genprogmd} 40b450dd39SJohn Marinogen${f}.nx: ${BUILD_MD} 41b450dd39SJohn Marino.endfor 42b450dd39SJohn Marino 43b450dd39SJohn Marino.for f in ${genprogerr} 44b450dd39SJohn Marinogen${f}.nx: ${BUILD_ERRORS} 45b450dd39SJohn MarinoGENTOOLS+= gen${f}.nx 46b450dd39SJohn Marino.endfor 47b450dd39SJohn Marino 48b450dd39SJohn Marinogengtype.nx: gengtype-lex.no gengtype-parse.no gengtype-state.no version.no 49b450dd39SJohn Marino 50b450dd39SJohn Marinogenattrtab.o ggc-none.no vec.no: gtype-desc.h 51b450dd39SJohn Marino 52b450dd39SJohn MarinoGENTOOLS+= gencheck.nx gencondmd.nx gcov-iov.nx genchecksum.nx 53b450dd39SJohn Marino 54b450dd39SJohn Marino.for f in ${GENTOOLS} 55b450dd39SJohn Marino$f: ${f:.nx=.no} ${BUILD_LIBS} 56b450dd39SJohn Marino ${NXCC} ${NXCFLAGS} ${NXLDFLAGS} ${.ALLSRC:M*.n[oa]} ${NXLDLIBS} -o ${.TARGET} 57b450dd39SJohn Marino.endfor 58b450dd39SJohn Marino 59b450dd39SJohn Marinogencheck.no: tm.h insn-constants.h 60b450dd39SJohn Marinogencondmd.no: tree-check.h insn-constants.h 61b450dd39SJohn Marino 62b450dd39SJohn MarinoCLEANFILES+= ${GENTOOLS} ${GENTOOLS:.nx=.no} 63b450dd39SJohn MarinoCLEANFILES+= gengtype-lex.c gengtype-lex.no gengtype-parse.no 64b450dd39SJohn MarinoCLEANFILES+= gengtype-state.no version.no 65b450dd39SJohn MarinoCLEANFILES+= ${BUILD_RTL} ${BUILD_MD} ${BUILD_ERRORS} 66b450dd39SJohn Marino 67b450dd39SJohn Marino 68b450dd39SJohn MarinoMD_DEPS= ${md_file} 69b450dd39SJohn Marino 70b450dd39SJohn Marino_MIC: .USE 71b450dd39SJohn Marino ${MIC} ${.TARGET}.tmp ${.TARGET} 7264ed7155SJohn Marino_PL: .USE 73b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} > ${.TARGET}.tmp 7464ed7155SJohn Marino ${MIC} ${.TARGET}.tmp ${.TARGET} 7564ed7155SJohn Marino_MD: .USE 76b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} ${md_file} > ${.TARGET}.tmp 7764ed7155SJohn Marino ${MIC} ${.TARGET}.tmp ${.TARGET} 78b450dd39SJohn Marino 79b450dd39SJohn Marinosimple_generated_h = insn-attr.h insn-codes.h insn-config.h insn-flags.h \ 80b450dd39SJohn Marino insn-attr-common.h 81b450dd39SJohn Marino 82b450dd39SJohn Marinosimple_generated_c = insn-attrtab.c insn-automata.c insn-emit.c \ 83b450dd39SJohn Marino insn-extract.c insn-opinit.c insn-output.c \ 84b450dd39SJohn Marino insn-peep.c insn-recog.c 85b450dd39SJohn Marino 86b450dd39SJohn Marino.for f in ${simple_generated_h} ${simple_generated_c} 87b450dd39SJohn Marino.for p in gen${f:R:S/^insn-//}.nx 88b450dd39SJohn Marino$f: $p ${MD_DEPS} insn-conditions.md _MIC 89b450dd39SJohn Marino ${.OBJDIR}/$p ${md_file} insn-conditions.md > ${.TARGET}.tmp 90b450dd39SJohn Marino.endfor 91b450dd39SJohn Marino.endfor 92b450dd39SJohn Marino 93b450dd39SJohn Marinoinsn-constants.h: genconstants.nx ${MD_DEPS} _MD 94b450dd39SJohn Marinotree-check.h: gencheck.nx _PL 95b450dd39SJohn Marinogencondmd.c: genconditions.nx ${MD_DEPS} tm-preds.h tm-constrs.h _MD 96b450dd39SJohn Marinoinsn-conditions.md: gencondmd.nx _PL 97b450dd39SJohn Marinogenrtl.c: gengenrtl.nx _PL 98b450dd39SJohn Marinogenrtl.h: gengenrtl.nx _MIC 99b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -h > ${.TARGET}.tmp 100b450dd39SJohn Marinoinsn-modes.c: genmodes.nx _PL 101b450dd39SJohn Marinoinsn-modes.h: genmodes.nx _MIC 102b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -h > ${.TARGET}.tmp 103b450dd39SJohn Marinomin-insn-modes.c: genmodes.nx _MIC 104b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -m > ${.TARGET}.tmp 105b450dd39SJohn Marinoinsn-preds.c: genpreds.nx _MD 106b450dd39SJohn Marinoinsn-enums.c: genenums.nx _MD 107b450dd39SJohn Marinotm-preds.h: genpreds.nx _MIC 108b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -h ${md_file} > ${.TARGET}.tmp 109b450dd39SJohn Marinotm-constrs.h: genpreds.nx _MIC 110b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -c ${md_file} > ${.TARGET}.tmp 111b450dd39SJohn Marinogtype.state: gengtype.nx gtyp-input.list ${GTFILES:N[*]} _MIC 112b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -S ${GCCDIR}/gcc -I ${.ALLSRC:M*.list} \ 113b450dd39SJohn Marino -w gtype.state.tmp 114b450dd39SJohn Marinogtype-desc.c gtype-desc.h: gengtype.nx gtype.state 115b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} -r gtype.state 116b450dd39SJohn Marinogcov-iov.h: gcov-iov.nx BASE-VER _MIC 117b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} "$$(cat ${.ALLSRC:M*BASE-VER})" "" > ${.TARGET}.tmp 118b450dd39SJohn Marinotarget-hooks-def.h: genhooks.nx _MIC 119b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} "Target Hook" > ${.TARGET}.tmp 120b450dd39SJohn Marinoc-family/c-target-hooks-def.h: genhooks.nx _MIC 121b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} "C Target Hook" > ${.TARGET}.tmp 122b450dd39SJohn Marinocommon/common-target-hooks-def.h: genhooks.nx _MIC 123b450dd39SJohn Marino ${.OBJDIR}/${.ALLSRC:M*.nx} "Common Target Hook" > ${.TARGET}.tmp 124b450dd39SJohn Marino 125b450dd39SJohn Marinogtyp-input.list: _MIC 126b450dd39SJohn Marino rm -f ${.TARGET}.tmp 127b450dd39SJohn Marino for f in ${GTFILES}; do \ 128b450dd39SJohn Marino echo "$$f" >> ${.TARGET}.tmp; \ 129b450dd39SJohn Marino done 130b450dd39SJohn Marino 131b450dd39SJohn MarinoGENFILES= \ 132b450dd39SJohn Marino ${simple_generated_h} ${simple_generated_c} \ 133b450dd39SJohn Marino insn-constants.h tree-check.h gencondmd.c insn-conditions.md \ 134b450dd39SJohn Marino genrtl.c genrtl.h insn-modes.c insn-modes.h min-insn-modes.c \ 135b450dd39SJohn Marino insn-preds.c tm-preds.h tm-constrs.h gtype-desc.c gtype-desc.h \ 136b450dd39SJohn Marino gcov-iov.h insn-enums.c target-hooks-def.h \ 137b450dd39SJohn Marino c-family/c-target-hooks-def.h \ 138b450dd39SJohn Marino common/common-target-hooks-def.h 139b450dd39SJohn Marino 140b450dd39SJohn MarinoCLEANFILES+= ${GENFILES} gtyp-input.list gtype.state 141b450dd39SJohn MarinoCLEANFILES+= gt-* gtype-*.h 142b450dd39SJohn MarinoCLEANDIRS+= common c-family 143b450dd39SJohn Marino 144b450dd39SJohn Marinodossier: 145b450dd39SJohn Marino mkdir -p common c-family 146b450dd39SJohn Marino 147b450dd39SJohn Marinogenfiles: ${GENTOOLS} ${GENFILES} 148b450dd39SJohn Marinodepend all: dossier genfiles 149b450dd39SJohn Marino 150b450dd39SJohn Marino.include <bsd.obj.mk> 151b450dd39SJohn Marino.include <bsd.dep.mk> 152*4d637376Szrj.include <bsd.sys.mk> 153