xref: /freebsd/usr.bin/bmake/Makefile (revision 34a3834eadd03bec7703b8fbf9123f27b1114986)
1d4d90f10SMarcel Moolenaar# This is a generated file, do NOT edit!
2d4d90f10SMarcel Moolenaar# See contrib/bmake/bsd.after-import.mk
3d4d90f10SMarcel Moolenaar#
4d4d90f10SMarcel Moolenaar
5d4d90f10SMarcel MoolenaarSRCTOP?= ${.CURDIR:H:H}
6d4d90f10SMarcel Moolenaar
7d4d90f10SMarcel Moolenaar# look here first for config.h
8d4d90f10SMarcel MoolenaarCFLAGS+= -I${.CURDIR}
9d4d90f10SMarcel Moolenaar
103cbdda60SSimon J. Gerraty# for after-import
113cbdda60SSimon J. GerratyCLEANDIRS+= FreeBSD
123cbdda60SSimon J. GerratyCLEANFILES+= bootstrap
13d4d90f10SMarcel Moolenaar
14*34a3834eSSimon J. Gerraty#	$Id: Makefile,v 1.137 2026/03/13 15:37:22 sjg Exp $
15d4d90f10SMarcel Moolenaar
163cbdda60SSimon J. GerratyPROG?= ${.CURDIR:T}
173cbdda60SSimon J. Gerraty
183cbdda60SSimon J. GerratySRCS= \
193cbdda60SSimon J. Gerraty	arch.c \
203cbdda60SSimon J. Gerraty	buf.c \
213cbdda60SSimon J. Gerraty	compat.c \
223cbdda60SSimon J. Gerraty	cond.c \
233cbdda60SSimon J. Gerraty	dir.c \
243cbdda60SSimon J. Gerraty	for.c \
253cbdda60SSimon J. Gerraty	hash.c \
263cbdda60SSimon J. Gerraty	job.c \
272c3632d1SSimon J. Gerraty	lst.c \
283cbdda60SSimon J. Gerraty	main.c \
293cbdda60SSimon J. Gerraty	make.c \
303cbdda60SSimon J. Gerraty	make_malloc.c \
313cbdda60SSimon J. Gerraty	meta.c \
324c620fe5SSimon J. Gerraty	metachar.c \
333cbdda60SSimon J. Gerraty	parse.c \
343cbdda60SSimon J. Gerraty	str.c \
353cbdda60SSimon J. Gerraty	suff.c \
363cbdda60SSimon J. Gerraty	targ.c \
373cbdda60SSimon J. Gerraty	trace.c \
383cbdda60SSimon J. Gerraty	util.c \
393cbdda60SSimon J. Gerraty	var.c
403cbdda60SSimon J. Gerraty
416a7405f5SSimon J. Gerraty.MAIN: all
426a7405f5SSimon J. Gerraty
436a7405f5SSimon J. Gerraty.-include "Makefile.inc"
44e22fef7dSSimon J. Gerraty
453cbdda60SSimon J. Gerraty# this file gets generated by configure
466a7405f5SSimon J. Gerraty.-include "Makefile.config"
47d4d90f10SMarcel Moolenaar
48d4d90f10SMarcel Moolenaar.if !empty(LIBOBJS)
49d4d90f10SMarcel MoolenaarSRCS+= ${LIBOBJS:T:.o=.c}
50d4d90f10SMarcel Moolenaar.endif
51d4d90f10SMarcel Moolenaar
523cbdda60SSimon J. Gerraty# just in case
533cbdda60SSimon J. Gerratyprefix?= /usr
546a7405f5SSimon J. Gerratysrcdir?= ${.PARSEDIR}
556a7405f5SSimon J. Gerratysrcdir:= ${srcdir}
563cbdda60SSimon J. Gerraty
57*34a3834eSSimon J. GerratyMAN?= ${PROG}.1
58*34a3834eSSimon J. GerratySRCS.${MAN}?= ${srcdir}/make.1
59*34a3834eSSimon J. Gerraty
600dede8b0SSimon J. GerratyDEFAULT_SYS_PATH?= ${prefix}/share/mk
613cbdda60SSimon J. Gerraty
62d4d90f10SMarcel MoolenaarCPPFLAGS+= -DUSE_META
633cbdda60SSimon J. GerratyCFLAGS+= ${CPPFLAGS}
643cbdda60SSimon J. GerratyCFLAGS+= -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\"
653cbdda60SSimon J. GerratyCFLAGS+= -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE
663cbdda60SSimon J. GerratyCFLAGS+= ${COPTS.${.ALLSRC:M*.c:T:u}}
6780a5408cSBryan DreweryCOPTS.main.c+= "-DMAKE_VERSION=\"${_MAKE_VERSION}\""
683cbdda60SSimon J. Gerraty
69*34a3834eSSimon J. Gerraty# bmake defaults to the traditional behavior
70*34a3834eSSimon J. GerratyMAKE_SAVE_DOLLARS_DEFAULT?= no
71*34a3834eSSimon J. Gerraty
72*34a3834eSSimon J. GerratyVARS.main+= FORCE_MAKE_OS FORCE_MACHINE FORCE_MACHINE_ARCH \
73*34a3834eSSimon J. Gerraty	MAKE_SAVE_DOLLARS_DEFAULT \
74*34a3834eSSimon J. Gerraty
75*34a3834eSSimon J. Gerraty.for x in ${VARS.main}
76e2eeea75SSimon J. Gerraty.ifdef $x
77e2eeea75SSimon J. GerratyCOPTS.main.c+= "-D$x=\"${$x}\""
78e2eeea75SSimon J. Gerraty.endif
79e2eeea75SSimon J. Gerraty.endfor
80e2eeea75SSimon J. Gerraty
813cbdda60SSimon J. Gerraty# meta mode can be useful even without filemon
8249caa483SSimon J. Gerraty# should be set by now
8349caa483SSimon J. GerratyUSE_FILEMON?= no
8449caa483SSimon J. Gerraty.if ${USE_FILEMON:tl} != "no"
8549caa483SSimon J. Gerraty.PATH:	${srcdir}/filemon
8649caa483SSimon J. GerratySRCS+= filemon_${USE_FILEMON}.c
8749caa483SSimon J. GerratyCOPTS.meta.c+= -DUSE_FILEMON -DUSE_FILEMON_${USE_FILEMON:tu}
8849caa483SSimon J. GerratyCOPTS.job.c+= ${COPTS.meta.c}
8949caa483SSimon J. Gerraty
9049caa483SSimon J. Gerraty.if ${USE_FILEMON} == "dev"
91d4d90f10SMarcel MoolenaarFILEMON_H?= /usr/include/dev/filemon/filemon.h
92d4d90f10SMarcel Moolenaar.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h"
9349caa483SSimon J. GerratyCOPTS.filemon_dev.c+= -DHAVE_FILEMON_H -I${FILEMON_H:H}
94d4d90f10SMarcel Moolenaar.endif
95148ee845SSimon J. Gerraty.elif ${USE_FILEMON} == "ktrace"
96148ee845SSimon J. GerratyCOPTS.filemon_ktrace.c+= -Wno-error=unused-parameter
97148ee845SSimon J. Gerraty.endif
9849caa483SSimon J. Gerraty
9949caa483SSimon J. Gerraty.endif				# USE_FILEMON
100d4d90f10SMarcel Moolenaar
101d4d90f10SMarcel Moolenaar.PATH:	${srcdir}
102d4d90f10SMarcel Moolenaar
1036a7405f5SSimon J. Gerraty
104d4d90f10SMarcel Moolenaar.if make(obj) || make(clean)
1056a7405f5SSimon J. GerratySUBDIR.${MK_TESTS}+= unit-tests
106d4d90f10SMarcel Moolenaar.endif
107d4d90f10SMarcel Moolenaar
108b4894ecaSSimon J. GerratyMAN1= ${MAN}
109b4894ecaSSimon J. Gerraty
1106a7405f5SSimon J. Gerraty.if ${MK_GEN_MAN:Uno} == "yes"
1116a7405f5SSimon J. Gerraty
1126a7405f5SSimon J. Gerraty# we use this to generate ${MAN}
1136a7405f5SSimon J. Gerraty.include <${srcdir}/mk/genfiles.mk>
1146a7405f5SSimon J. Gerraty
1151c04cf7dSSimon J. Gerraty.if ${PROG} != "make"
1163cbdda60SSimon J. GerratyCLEANFILES+= my.history
1176a7405f5SSimon J. GerratySED_CMDS.${MAN}+= \
1186a7405f5SSimon J. Gerraty	-e '/^.Dt/s/MAKE/${PROG:tu}/' \
1196a7405f5SSimon J. Gerraty	-e '/^.Nm/s/make/${PROG}/' \
1206a7405f5SSimon J. Gerraty
1216a7405f5SSimon J. Gerraty.endif
1226a7405f5SSimon J. Gerraty
1236a7405f5SSimon J. Gerraty.if ${CLEANFILES:U:Mmy.history} != ""
1246a7405f5SSimon J. Gerraty${MAN}: my.history
125ef0b2538SSimon J. Gerratymy.history:
12693036677SSimon J. Gerraty	@(echo ".Nm"; \
127d4d90f10SMarcel Moolenaar	echo "is derived from NetBSD"; \
128d4d90f10SMarcel Moolenaar	echo ".Xr make 1 ."; \
12993036677SSimon J. Gerraty	echo "It uses autoconf to facilitate portability to other platforms."; \
13093036677SSimon J. Gerraty	echo ".Pp") > $@
13193036677SSimon J. Gerraty
1326a7405f5SSimon J. GerratySED_CMDS.${MAN}+= \
13393036677SSimon J. Gerraty	-e '/^.Sh HISTORY/rmy.history' \
1346a7405f5SSimon J. Gerraty	-e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \
135d4d90f10SMarcel Moolenaar
1366a7405f5SSimon J. Gerraty.endif
1376a7405f5SSimon J. Gerraty
1386a7405f5SSimon J. Gerraty.if ${.MAKE.OS:N*BSD} != ""
1396a7405f5SSimon J. Gerraty# assume .Nx is not supported
1406a7405f5SSimon J. GerratySED_CMDS.${MAN}+= -e 's/^\.Nx/NetBSD/'
1416a7405f5SSimon J. Gerraty.endif
1426a7405f5SSimon J. Gerraty
1436a7405f5SSimon J. Gerraty# watch out for a late change of PROG
1446a7405f5SSimon J. Gerraty.if !empty(SRCS.${MAN})
1456a7405f5SSimon J. Gerraty.NOPATH: ${MAN}
1466a7405f5SSimon J. Gerraty${MAN}:	${SRCS.${MAN}} _GENFILES_USE
1476a7405f5SSimon J. Gerraty
1486a7405f5SSimon J. Gerratyall man beforeinstall: ${MAN}
1493cbdda60SSimon J. Gerraty_mfromdir= .
150d4d90f10SMarcel Moolenaar.endif
1516a7405f5SSimon J. Gerraty.endif				# MK_GEN_MAN
152d4d90f10SMarcel Moolenaar
153d4d90f10SMarcel MoolenaarMANTARGET?= cat
154d4d90f10SMarcel MoolenaarMANDEST?= ${MANDIR}/${MANTARGET}1
155d4d90f10SMarcel Moolenaar
156d4d90f10SMarcel Moolenaar.if ${MANTARGET} == "cat"
157d4d90f10SMarcel Moolenaar_mfromdir= ${srcdir}
158d4d90f10SMarcel Moolenaar.endif
159d4d90f10SMarcel Moolenaar
1603cbdda60SSimon J. Gerraty.include <bsd.prog.mk>
161d4d90f10SMarcel Moolenaar
1623cbdda60SSimon J. GerratyCPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H
163d4d90f10SMarcel MoolenaarCOPTS.var.c+= -Wno-cast-qual
164d4d90f10SMarcel MoolenaarCOPTS.job.c+= -Wno-format-nonliteral
165d4d90f10SMarcel MoolenaarCOPTS.parse.c+= -Wno-format-nonliteral
166d4d90f10SMarcel MoolenaarCOPTS.var.c+= -Wno-format-nonliteral
167d4d90f10SMarcel Moolenaar
168d4d90f10SMarcel Moolenaar# Force these
169db29cad8SSimon J. GerratySHAREDIR= ${SHAREDIR.bmake:U${prefix}/share}
170db29cad8SSimon J. GerratyBINDIR= ${BINDIR.bmake:U${prefix}/bin}
171db29cad8SSimon J. GerratyMANDIR= ${MANDIR.bmake:U${SHAREDIR}/man}
172d4d90f10SMarcel Moolenaar
173*34a3834eSSimon J. Gerraty${OBJS}: .META config.h
174*34a3834eSSimon J. Gerraty${PROG}: .META
1753cbdda60SSimon J. Gerraty
176d4d90f10SMarcel Moolenaar
177d4d90f10SMarcel Moolenaar# A simple unit-test driver to help catch regressions
1782c3632d1SSimon J. GerratyTEST_MAKE?= ${.OBJDIR}/${PROG:T}
17908604a02SSimon J. Gerratyaccept test: .NOMETA
1802c3632d1SSimon J. Gerraty	cd ${.CURDIR}/unit-tests && \
1812c3632d1SSimon J. Gerraty	MAKEFLAGS= ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS=${TESTS:Q}}
1822c3632d1SSimon J. Gerraty
183d4d90f10SMarcel Moolenaar
18408604a02SSimon J. Gerraty.if make(test) && ${MK_AUTO_OBJ} == "yes"
185532d4fbfSSimon J. Gerraty# The test target above visits unit-tests with -r -m /
186532d4fbfSSimon J. Gerraty# which prevents MK_AUTO_OBJ doing its job
187532d4fbfSSimon J. Gerraty# so do it here
188532d4fbfSSimon J. Gerraty.if defined(MAKEOBJDIRPREFIX) || ${MAKEOBJDIR:U:M*/*} != ""
18908604a02SSimon J. Gerraty_utobj= ${.OBJDIR}/unit-tests
19008604a02SSimon J. Gerraty.else
19108604a02SSimon J. Gerraty_utobj= ${.CURDIR}/unit-tests/${MAKEOBJDIR:Uobj}
19208604a02SSimon J. Gerraty.endif
19308604a02SSimon J. Gerratyutobj: .NOMETA
194532d4fbfSSimon J. Gerraty	@test -d ${_utobj} && exit 0; \
195532d4fbfSSimon J. Gerraty	echo "[Creating ${_utobj}...]"; \
196532d4fbfSSimon J. Gerraty	umask ${OBJDIR_UMASK:U002}; \
19708604a02SSimon J. Gerraty	mkdir -p ${_utobj}
19808604a02SSimon J. Gerratytest: utobj
19908604a02SSimon J. Gerraty.endif
20008604a02SSimon J. Gerraty
201d4d90f10SMarcel Moolenaar# override some simple things
202d4d90f10SMarcel MoolenaarBINDIR= /usr/bin
203d4d90f10SMarcel MoolenaarMANDIR= /usr/share/man/man
204d4d90f10SMarcel Moolenaar
205d4d90f10SMarcel Moolenaar# make sure we get this
206d4d90f10SMarcel MoolenaarCFLAGS+= ${COPTS.${.IMPSRC:T}}
207d4d90f10SMarcel Moolenaar
208d4d90f10SMarcel Moolenaarafter-import: ${SRCTOP}/contrib/bmake/bsd.after-import.mk
209d4d90f10SMarcel Moolenaar	cd ${.CURDIR} && ${.MAKE} -f ${SRCTOP}/contrib/bmake/bsd.after-import.mk
210d4d90f10SMarcel Moolenaar
211