xref: /netbsd-src/share/mk/bsd.hostprog.mk (revision 3ade096cfcfe6635ac410cd0ffa712515494c24e)
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