12233c95bSzrj# This does the same job as bsd.hostlib.mk except .c files are bult with c++ 22233c95bSzrj# and it does not contain "afterdepend: all" which forces everything to be 32233c95bSzrj# built under the "depend" target 42233c95bSzrj 52233c95bSzrj.include <bsd.init.mk> 62233c95bSzrj 72233c95bSzrj.SUFFIXES: 82233c95bSzrj.SUFFIXES: .out .no .c .cc .cpp .cxx .C .y .l 92233c95bSzrj 102233c95bSzrj.c.no .cc.no .C.no .cpp.no .cxx.no: 112233c95bSzrj ${NXCXX} ${_${.IMPSRC}_FLAGS} ${NXCXXFLAGS:N-std=*:N-flto} -c ${.IMPSRC} -o ${.TARGET} 122233c95bSzrj @${NXLD} -o ${.TARGET}.tmp -x -r ${.TARGET} 132233c95bSzrj @mv ${.TARGET}.tmp ${.TARGET} 142233c95bSzrj 152233c95bSzrjall: objwarn 162233c95bSzrj 172233c95bSzrj.if defined(LIB) && !empty(LIB) && !empty(SRCS) 181bc877a0SSascha WildnerOBJS+= ${SRCS:N*.h:R:S/$/.no/g} 192233c95bSzrj.endif 202233c95bSzrj 212233c95bSzrj.if defined(LIB) && !empty(LIB) 222233c95bSzrj_LIBS= lib${LIB}.na 232233c95bSzrj 242233c95bSzrjlib${LIB}.na: ${OBJS} ${STATICOBJS} 252233c95bSzrj @${ECHO} building native static ${LIB} library 262233c95bSzrj rm -f ${.TARGET} 27*49feb856Szrj ${NXAR} ${ARFLAGS} ${.TARGET} `lorder ${OBJS} ${STATICOBJS} | tsort -q` ${ARADD} 28*49feb856Szrj ${NXRANLIB} ${.TARGET} 292233c95bSzrj.endif 302233c95bSzrj 312233c95bSzrjall: ${_LIBS} 322233c95bSzrj 332233c95bSzrj## 342233c95bSzrj# HEAD: embedded equivalent bsd.dep.mk 352233c95bSzrj## 362233c95bSzrj 372233c95bSzrjCTAGS?= gtags 382233c95bSzrjMKDEPCMD?= CC=c++ mkdep 392233c95bSzrjDEPENDFILE?= .depend 402233c95bSzrjGTAGSFLAGS?= -o 412233c95bSzrjCTAGSFLAGS?= 422233c95bSzrjHTAGSFLAGS?= 432233c95bSzrj 442233c95bSzrj.if !target(tags) && defined(SRCS) && !defined(NOTAGS) 452233c95bSzrjtags: ${SRCS} 462233c95bSzrj. if ${CTAGS:T} == "ctags" 472233c95bSzrj @${CTAGS} ${CTAGSFLAGS} -f /dev/stdout \ 482233c95bSzrj ${.ALLSRC:N*.h} | sed "s;${.CURDIR}/;;" > ${.TARGET} 492233c95bSzrj. elif ${CTAGS:T} == "gtags" 502233c95bSzrj @cd ${.CURDIR} && ${CTAGS} ${GTAGSFLAGS} ${.OBJDIR} 512233c95bSzrj. if defined(HTML) 522233c95bSzrj @cd ${.CURDIR} && htags ${HTAGSFLAGS} -d ${.OBJDIR} ${.OBJDIR} 532233c95bSzrj. endif 542233c95bSzrj. endif 552233c95bSzrj.endif 562233c95bSzrj 572233c95bSzrj.if defined(SRCS) 582233c95bSzrj 592233c95bSzrjCLEANFILES?= 602233c95bSzrj 612233c95bSzrj. for _LSRC in ${SRCS:M*.l:N*/*} 622233c95bSzrj. for _LC in ${_LSRC:R}.c 632233c95bSzrj${_LC}: ${_LSRC} 642233c95bSzrj ${LEX} -t ${LFLAGS} ${.ALLSRC} > ${.TARGET} 652233c95bSzrjSRCS:= ${SRCS:S/${_LSRC}/${_LC}/} 662233c95bSzrjCLEANFILES+= ${_LC} 672233c95bSzrj. endfor 682233c95bSzrj. endfor 692233c95bSzrj 702233c95bSzrj. for _YSRC in ${SRCS:M*.y:N*/*} 712233c95bSzrj. for _YC in ${_YSRC:R}.c 722233c95bSzrjSRCS:= ${SRCS:S/${_YSRC}/${_YC}/} 732233c95bSzrjCLEANFILES+= ${_YC} 742233c95bSzrj. if !empty(YFLAGS:M-d) && !empty(SRCS:My.tab.h) 752233c95bSzrj.ORDER: ${_YC} y.tab.h 762233c95bSzrj${_YC} y.tab.h: ${_YSRC} 772233c95bSzrj ${YACC} ${YFLAGS} ${.ALLSRC} 782233c95bSzrj cp y.tab.c ${_YC} 792233c95bSzrjCLEANFILES+= y.tab.c y.tab.h 802233c95bSzrj. elif !empty(YFLAGS:M-d) 812233c95bSzrj. for _YH in ${_YC:S/.c/.h/} 822233c95bSzrj${_YH}: ${_YC} 832233c95bSzrj${_YC}: ${_YSRC} 842233c95bSzrj ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} 852233c95bSzrjSRCS+= ${_YH} 862233c95bSzrjCLEANFILES+= ${_YH} 872233c95bSzrj. endfor 882233c95bSzrj. else 892233c95bSzrj${_YC}: ${_YSRC} 902233c95bSzrj ${YACC} ${YFLAGS} -o ${_YC} ${.ALLSRC} 912233c95bSzrj. endif 922233c95bSzrj. endfor 932233c95bSzrj. endfor 942233c95bSzrj.endif 952233c95bSzrj 962233c95bSzrj.if !target(depend) 972233c95bSzrj. if defined(SRCS) 982233c95bSzrjdepend: beforedepend _dependincs ${DEPENDFILE} afterdepend 992233c95bSzrj 1002233c95bSzrj.NOPATH: ${DEPENDFILE} 1012233c95bSzrj 1022233c95bSzrj__FLAGS= 1032233c95bSzrj__FLAGS_FILES= ${SRCS} 1042233c95bSzrj. for _FG in ${FLAGS_GROUPS} 1052233c95bSzrj. for _FFILE in ${${_FG}_FLAGS_FILES} 1062233c95bSzrj__FLAGS_FILES:= ${__FLAGS_FILES:N${_FFILE}} 1072233c95bSzrj. endfor 1082233c95bSzrj. endfor 1092233c95bSzrj 1102233c95bSzrj_DEPENDFILES= ${FLAGS_GROUPS:S/^/.depend_/g} 1112233c95bSzrj 1122233c95bSzrj${DEPENDFILE}: ${_DEPENDFILES} 1132233c95bSzrj 1142233c95bSzrj_ALL_DEPENDS=${__FLAGS_FILES:N*.[sS]:N*.c:N*.cc:N*.C:N*.cpp:N*.cpp:N*.cxx:N*.m} 1152233c95bSzrj 1162233c95bSzrj. for _FG in _ ${FLAGS_GROUPS} 1172233c95bSzrj.depend${_FG:S/^/_/:N__}: ${${_FG}_FLAGS_FILES} ${_ALL_DEPENDS} 1182233c95bSzrj -rm -f ${.TARGET} 1192233c95bSzrj -> ${.TARGET} 1202233c95bSzrj. if ${${_FG}_FLAGS_FILES:M*.[sS]} != "" 1212233c95bSzrj ${MKDEPCMD} -f ${.TARGET} -a ${MKDEP} \ 1222233c95bSzrj ${${_FG}_FLAGS} \ 1232233c95bSzrj ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} \ 1242233c95bSzrj ${CFLAGS:M-std=*} \ 1252233c95bSzrj ${.ALLSRC:M*.[sS]} 1262233c95bSzrj. endif 1272233c95bSzrj. if ${${_FG}_FLAGS_FILES:M*.cc} != "" || \ 1282233c95bSzrj ${${_FG}_FLAGS_FILES:M*.C} != "" || \ 1292233c95bSzrj ${${_FG}_FLAGS_FILES:M*.c} != "" || \ 1302233c95bSzrj ${${_FG}_FLAGS_FILES:M*.cpp} != "" || \ 1312233c95bSzrj ${${_FG}_FLAGS_FILES:M*.cxx} != "" 1322233c95bSzrj ${MKDEPCMD} -f ${.TARGET} -a ${MKDEP} \ 1332233c95bSzrj ${${_FG}_FLAGS} \ 1342233c95bSzrj ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} \ 1352233c95bSzrj ${.ALLSRC:M*.c} \ 1362233c95bSzrj ${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cpp} ${.ALLSRC:M*.cxx} 1372233c95bSzrj. endif 1382233c95bSzrj. if ${${_FG}_FLAGS_FILES:M*.m} != "" 1392233c95bSzrj ${MKDEPCMD} -f ${.TARGET} -a ${MKDEP} \ 1402233c95bSzrj ${${_FG}_FLAGS} \ 1412233c95bSzrj ${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} \ 1422233c95bSzrj ${OBJCFLAGS:M-Wno-import*} \ 1432233c95bSzrj ${.ALLSRC:M*.m} 1442233c95bSzrj. endif 1452233c95bSzrj. if !empty(${_FG:M_}) && !empty(_DEPENDFILES) 1462233c95bSzrj cat ${_DEPENDFILES} >> ${.TARGET} 1472233c95bSzrj. endif 1482233c95bSzrj. endfor 1492233c95bSzrj 1502233c95bSzrj. if target(_EXTRADEPEND) 1512233c95bSzrj_EXTRADEPEND: .USE 1522233c95bSzrj${DEPENDFILE}: _EXTRADEPEND 1532233c95bSzrj. endif 1542233c95bSzrj 1552233c95bSzrj. else 1562233c95bSzrjdepend: beforedepend _dependincs afterdepend 1572233c95bSzrj. endif 1582233c95bSzrj. if !target(beforedepend) 1592233c95bSzrjbeforedepend: 1602233c95bSzrj. endif 1612233c95bSzrj. if !target(afterdepend) 1622233c95bSzrjafterdepend: 1632233c95bSzrj. endif 1642233c95bSzrj.endif 1652233c95bSzrj 1662233c95bSzrj.if !target(cleandepend) 1672233c95bSzrjcleandepend: 1682233c95bSzrj. if defined(SRCS) 1692233c95bSzrj. if ${CTAGS:T} == "ctags" 1702233c95bSzrj rm -f ${DEPENDFILE} ${_DEPENDFILES} tags 1712233c95bSzrj. elif ${CTAGS:T} == "gtags" 1722233c95bSzrj rm -f ${DEPENDFILE} ${_DEPENDFILES} GPATH GRTAGS GSYMS GTAGS 1732233c95bSzrj. if defined(HTML) 1742233c95bSzrj rm -rf HTML 1752233c95bSzrj. endif 1762233c95bSzrj. endif 1772233c95bSzrj. endif 1782233c95bSzrj.endif 1792233c95bSzrj 1802233c95bSzrj.if !target(checkdpadd) && (defined(DPADD) || defined(LDADD)) 1812233c95bSzrjcheckdpadd: 1822233c95bSzrj @ldadd=`echo \`for lib in ${DPADD} ; do \ 1832233c95bSzrj echo $$lib | sed 's;^/usr/lib/lib\(.*\)\.a;-l\1;' ; \ 1842233c95bSzrj done \`` ; \ 1852233c95bSzrj ldadd1=`echo ${LDADD}` ; \ 1862233c95bSzrj if [ "$$ldadd" != "$$ldadd1" ] ; then \ 1872233c95bSzrj echo ${.CURDIR} ; \ 1882233c95bSzrj echo "DPADD -> $$ldadd" ; \ 1892233c95bSzrj echo "LDADD -> $$ldadd1" ; \ 1902233c95bSzrj fi 1912233c95bSzrj.endif 1922233c95bSzrj 1932233c95bSzrj.if defined(INCS) && make(depend) 1942233c95bSzrj_dependincs: buildincludes .WAIT installincludes 1952233c95bSzrj.else 1962233c95bSzrj_dependincs: 1972233c95bSzrj.endif 1982233c95bSzrj 1992233c95bSzrj.ORDER: beforedepend _dependincs ${DEPENDFILE} afterdepend 2002233c95bSzrj 2012233c95bSzrj## 2022233c95bSzrj# TAIL: embedded equivalent bsd.dep.mk 2032233c95bSzrj## 2042233c95bSzrj 2052233c95bSzrj.if !exists(${.OBJDIR}/${DEPENDFILE}) 2062233c95bSzrj. if defined(LIB) && !empty(LIB) 2072233c95bSzrj${OBJS} ${STATICOBJS}: ${SRCS:M*.h} 2082233c95bSzrj. endif 2092233c95bSzrj.endif 2102233c95bSzrj 2112233c95bSzrj.if !target(clean) 2122233c95bSzrjclean: 2132233c95bSzrj. if defined(CLEANFILES) && !empty(CLEANFILES) 2142233c95bSzrj rm -f ${CLEANFILES} 2152233c95bSzrj. endif 2162233c95bSzrj. if defined(LIB) && !empty(LIB) 2172233c95bSzrj rm -f a.out ${OBJS} ${OBJS:S/$/.tmp/} ${STATICOBJS} 2182233c95bSzrj. endif 2192233c95bSzrj. if defined(_LIBS) && !empty(_LIBS) 2202233c95bSzrj rm -f ${_LIBS} 2212233c95bSzrj. endif 2222233c95bSzrj. if defined(CLEANDIRS) && !empty(CLEANDIRS) 2232233c95bSzrj rm -rf ${CLEANDIRS} 2242233c95bSzrj. endif 2252233c95bSzrj.endif 2262233c95bSzrj 2272233c95bSzrj.include <bsd.obj.mk> 2282233c95bSzrj.include <bsd.sys.mk> 229