1*3ade096cSchristos# $NetBSD: bsd.hostprog.mk,v 1.86 2024/11/02 22:02:39 christos Exp $ 26703225fSwrstuden# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 36703225fSwrstuden 4ee08ce7dSchristos.include <bsd.hostinit.mk> 57745da0fStv.include <bsd.sys.mk> 66703225fSwrstuden 71129ed4aStv##### Basic targets 86703225fSwrstuden 91129ed4aStv##### Default values 1007be9009SjmmvLIBATF_C?= /usr/lib/libatf-c.a 1107be9009SjmmvLIBATF_CXX?= /usr/lib/libatf-c++.a 12a5c89047SgdamoreLIBBLUETOOTH?= /usr/lib/libbluetooth.a 136703225fSwrstudenLIBBZ2?= /usr/lib/libbz2.a 146703225fSwrstudenLIBC?= /usr/lib/libc.a 156703225fSwrstudenLIBCOMPAT?= /usr/lib/libcompat.a 166703225fSwrstudenLIBCRYPT?= /usr/lib/libcrypt.a 176703225fSwrstudenLIBCURSES?= /usr/lib/libcurses.a 189b4e8488SchristosLIBC_PIC?= /usr/lib/libc_pic.a 199b4e8488SchristosLIBC_SO?= /usr/lib/libc.so 206703225fSwrstudenLIBDBM?= /usr/lib/libdbm.a 216703225fSwrstudenLIBDES?= /usr/lib/libdes.a 226703225fSwrstudenLIBEDIT?= /usr/lib/libedit.a 235522c1a3SprovosLIBEVENT?= /usr/lib/libevent.a 24287e82f1SchristosLIBEVENT_OPENSSL?= /usr/lib/libevent_openssl.a 25287e82f1SchristosLIBEVENT_PTHREADS?= /usr/lib/libevent_pthreads.a 26df92d05dStronLIBEXPAT?= /usr/lib/libexpat.a 2739741d28SjoergLIBFETCH?= /usr/lib/libfetch.a 289c926b46SgarbledLIBFORM?= /usr/lib/libform.a 296703225fSwrstudenLIBGCC?= /usr/lib/libgcc.a 300916a772SchristosLIBGNUCTF?= /usr/lib/libgnuctf.a 316703225fSwrstudenLIBGNUMALLOC?= /usr/lib/libgnumalloc.a 32caf7b110SitojunLIBINTL?= /usr/lib/libintl.a 336703225fSwrstudenLIBIPSEC?= /usr/lib/libipsec.a 346703225fSwrstudenLIBKVM?= /usr/lib/libkvm.a 356703225fSwrstudenLIBL?= /usr/lib/libl.a 367d3a48f1SjmmvLIBLUTOK?= /usr/lib/liblutok.a 37afd3226fSjoergLIBLZMA?= /usr/lib/liblzma.a 386703225fSwrstudenLIBM?= /usr/lib/libm.a 39b95d15a3SrossLIBMAGIC?= /usr/lib/libmagic.a 4038bd927cSblymnLIBMENU?= /usr/lib/libmenu.a 416703225fSwrstudenLIBMP?= /usr/lib/libmp.a 426703225fSwrstudenLIBNTP?= /usr/lib/libntp.a 43a8c6c0bfSmaxvLIBNVMM?= /usr/lib/libnvmm.a 446703225fSwrstudenLIBOBJC?= /usr/lib/libobjc.a 45bdf6e0b0SpookaLIBP2K?= /usr/lib/libp2k.a 461d5ce4bbSkamilLIBPANEL?= /usr/lib/libpanel.a 476703225fSwrstudenLIBPC?= /usr/lib/libpc.a 486703225fSwrstudenLIBPCAP?= /usr/lib/libpcap.a 49913b93d7SthorpejLIBPCI?= /usr/lib/libpci.a 506703225fSwrstudenLIBPLOT?= /usr/lib/libplot.a 516703225fSwrstudenLIBPOSIX?= /usr/lib/libposix.a 529b4e8488SchristosLIBPTHREAD?= /usr/lib/libpthread.a 53bcb1fcccSpookaLIBPUFFS?= /usr/lib/libpuffs.a 54d9210c24SbouyerLIBQUOTA?= /usr/lib/libquota.a 5540017b1bSjmcneillLIBREFUSE?= /usr/lib/librefuse.a 566703225fSwrstudenLIBRESOLV?= /usr/lib/libresolv.a 576703225fSwrstudenLIBRPCSVC?= /usr/lib/librpcsvc.a 58bdf6e0b0SpookaLIBRUMP?= /usr/lib/librump.a 59ebb5797aSpookaLIBRUMPCLIENT?= /usr/lib/librumpclient.a 60e10fef6cSpookaLIBRUMPNET?= /usr/lib/librumpnet.a 6139eea483SchristosLIBRUMPRES?= /usr/lib/librumpres.a 62bdf6e0b0SpookaLIBRUMPUSER?= /usr/lib/librumpuser.a 63e10fef6cSpookaLIBRUMPVFS?= /usr/lib/librumpvfs.a 646703225fSwrstudenLIBSKEY?= /usr/lib/libskey.a 65ac86ba95SjoergLIBSQLITE3?= /usr/lib/libsqlite3.a 663051b084SchristosLIBSSP?= /usr/lib/libssp.a 67b55240a4SmrgLIBSTDCXX?= /usr/lib/libstdc++.a 68b55240a4SmrgLIBSUPCXX?= /usr/lib/libsupc++.a 6998eb8895SroyLIBTERMINFO?= /usr/lib/libterminfo.a 709b4e8488SchristosLIBUKFS?= /usr/lib/libukfs.a 716703225fSwrstudenLIBUTIL?= /usr/lib/libutil.a 726703225fSwrstudenLIBWRAP?= /usr/lib/libwrap.a 736703225fSwrstudenLIBY?= /usr/lib/liby.a 746703225fSwrstudenLIBZ?= /usr/lib/libz.a 756703225fSwrstuden 76bdf6e0b0Spooka##### rump file system modules 77bdf6e0b0SpookaLIBRUMPFS_CD9660FS?= /usr/lib/librumpfs_cd9660fs.a 78bdf6e0b0SpookaLIBRUMPFS_EFS?= /usr/lib/librumpfs_efs.a 79bdf6e0b0SpookaLIBRUMPFS_EXT2FS?= /usr/lib/librumpfs_ext2fs.a 80bdf6e0b0SpookaLIBRUMPFS_FFS?= /usr/lib/librumpfs_ffs.a 81bdf6e0b0SpookaLIBRUMPFS_HFS?= /usr/lib/librumpfs_hfs.a 82bdf6e0b0SpookaLIBRUMPFS_LFS?= /usr/lib/librumpfs_lfs.a 83bdf6e0b0SpookaLIBRUMPFS_MSDOSFS?= /usr/lib/librumpfs_msdosfs.a 84bdf6e0b0SpookaLIBRUMPFS_NTFS?= /usr/lib/librumpfs_ntfs.a 85bdf6e0b0SpookaLIBRUMPFS_SYSPUFFS?= /usr/lib/librumpfs_syspuffs.a 86bdf6e0b0SpookaLIBRUMPFS_TMPFS?= /usr/lib/librumpfs_tmpfs.a 87bdf6e0b0SpookaLIBRUMPFS_UDF?= /usr/lib/librumpfs_udf.a 88bdf6e0b0SpookaLIBRUMPFS_UFS?= /usr/lib/librumpfs_ufs.a 89bdf6e0b0Spooka 906830ef87SerhMKDEP_SUFFIXES?= .lo .ln .d 911129ed4aStv 9225c34dbaStv# Override these: 9325c34dbaStvINSTALL:= ${INSTALL:NSTRIP=*} 9406f06e28StvMKDEP:= ${HOST_MKDEP} 953292fd41SjoergMKDEPCXX:= ${HOST_MKDEPCXX} 9625c34dbaStv 9702e913d5Slukem.if ${TOOLCHAIN_MISSING} == "no" || defined(EXTERNAL_TOOLCHAIN) 982e00400bStvOBJHOSTMACHINE= # set 992e00400bStv.endif 1002e00400bStv 1011129ed4aStv##### Build rules 1023deae994Sjwise.if defined(HOSTPROG_CXX) 1033deae994SjwiseHOSTPROG= ${HOSTPROG_CXX} 1043deae994Sjwise.endif 1053deae994Sjwise 1066703225fSwrstuden.if defined(HOSTPROG) 1076703225fSwrstudenSRCS?= ${HOSTPROG}.c 1086703225fSwrstuden 1094fbb0461Slukem_YHPSRCS= ${SRCS:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS:M*.y:.y=.h}} 1104fbb0461SlukemDPSRCS+= ${_YHPSRCS} 1114fbb0461SlukemCLEANFILES+= ${_YHPSRCS} 1126703225fSwrstuden 1136703225fSwrstuden.if !empty(SRCS:N*.h:N*.sh) 1146703225fSwrstudenOBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.lo/g} 1156703225fSwrstudenLOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} 1166703225fSwrstuden.endif 1176703225fSwrstuden 1186703225fSwrstuden.if defined(OBJS) && !empty(OBJS) 1194fbb0461Slukem.NOPATH: ${OBJS} ${HOSTPROG} ${_YHPSRCS} 1206703225fSwrstuden 121a93ea220Slukem${OBJS} ${LOBJS}: ${DPSRCS} 122a93ea220Slukem${HOSTPROG}: ${OBJS} ${DPADD} 123abdaf2f3Slukem ${_MKTARGET_LINK} 1246703225fSwrstuden ${HOST_LINK.c} ${HOST_LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD} 1255a9353fcSchristos.if !empty(.MAKE.OS:M*CYGWIN*) 126ccf0f700Stsutsui ${HOST_SH} ${NETBSDSRCDIR}/tools/binstall/mkmanifest ${HOSTPROG} 1275a9353fcSchristos.endif 1285a9353fcSchristos 1296703225fSwrstuden 1306703225fSwrstuden.endif # defined(OBJS) && !empty(OBJS) 1316703225fSwrstuden 1326703225fSwrstuden.if !defined(MAN) 1336703225fSwrstudenMAN= ${HOSTPROG}.1 1346703225fSwrstuden.endif # !defined(MAN) 1356703225fSwrstuden.endif # defined(HOSTPROG) 1366703225fSwrstuden 1373e13200bSmycroftrealall: ${HOSTPROG} 1386703225fSwrstuden 139386a389aSapbCLEANFILES+= a.out [Ee]rrs mklog core *.core ${HOSTPROG} ${OBJS} ${LOBJS} 1406703225fSwrstuden 1416703225fSwrstudenbeforedepend: 1427745da0fStvCFLAGS:= ${HOST_CFLAGS} 14376232558SjoergCPPFLAGS:= ${HOST_CPPFLAGS:N-Wp,-iremap,*} 1446703225fSwrstuden 1456703225fSwrstudenlint: ${LOBJS} 1466703225fSwrstuden.if defined(LOBJS) && !empty(LOBJS) 147af85ccadSlukem ${LINT} ${LINTFLAGS} ${LDFLAGS:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS} ${LDADD} 1486703225fSwrstuden.endif 1496703225fSwrstuden 1501129ed4aStv##### Pull in related .mk logic 15191fe922fSapbLINKSMODE?= ${BINMODE} 1526703225fSwrstuden.include <bsd.man.mk> 1536703225fSwrstuden.include <bsd.nls.mk> 1546703225fSwrstuden.include <bsd.files.mk> 1556703225fSwrstuden.include <bsd.inc.mk> 1566703225fSwrstuden.include <bsd.links.mk> 1576703225fSwrstuden.include <bsd.dep.mk> 158386a389aSapb.include <bsd.clean.mk> 1596703225fSwrstuden 1601129ed4aStv${TARGETS}: # ensure existence 161b2f78261Sjmc 162b2f78261Sjmc# Override YACC/LEX rules so nbtool_config.h can be forced as the 1st include 163b2f78261Sjmc.l.c: 164b2f78261Sjmc ${_MKTARGET_LEX} 165b2f78261Sjmc ${LEX.l} -o${.TARGET} ${.IMPSRC} 166b2f78261Sjmc echo '#if HAVE_NBTOOL_CONFIG_H' > ${.TARGET}.1 167b2f78261Sjmc echo '#include "nbtool_config.h"' >> ${.TARGET}.1 168b2f78261Sjmc echo '#endif' >> ${.TARGET}.1 169b2f78261Sjmc cat ${.TARGET} >> ${.TARGET}.1 1700a4f449bSchristos ${MV} ${.TARGET}.1 ${.TARGET} 171b2f78261Sjmc.y.c: 172b2f78261Sjmc ${_MKTARGET_YACC} 173b2f78261Sjmc ${YACC.y} -o ${.TARGET} ${.IMPSRC} 174b2f78261Sjmc echo '#if HAVE_NBTOOL_CONFIG_H' > ${.TARGET}.1 175b2f78261Sjmc echo '#include "nbtool_config.h"' >> ${.TARGET}.1 176b2f78261Sjmc echo '#endif' >> ${.TARGET}.1 177b2f78261Sjmc cat ${.TARGET} >> ${.TARGET}.1 1780a4f449bSchristos ${MV} ${.TARGET}.1 ${.TARGET} 179