xref: /freebsd/usr.bin/bmake/Makefile (revision d9a65c5de1c9f30ae71ce0be8fb88be9d20d216d)
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*d9a65c5dSSimon J. Gerraty#	$Id: Makefile,v 1.133 2025/03/08 20:12:56 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. GerratyMAN= ${PROG}.1
446a7405f5SSimon J. GerratySRCS.${MAN}= ${srcdir}/make.1
456a7405f5SSimon J. Gerraty
466a7405f5SSimon J. Gerraty.-include "Makefile.inc"
47e22fef7dSSimon J. Gerraty
483cbdda60SSimon J. Gerraty# this file gets generated by configure
496a7405f5SSimon J. Gerraty.-include "Makefile.config"
50d4d90f10SMarcel Moolenaar
51d4d90f10SMarcel Moolenaar.if !empty(LIBOBJS)
52d4d90f10SMarcel MoolenaarSRCS+= ${LIBOBJS:T:.o=.c}
53d4d90f10SMarcel Moolenaar.endif
54d4d90f10SMarcel Moolenaar
553cbdda60SSimon J. Gerraty# just in case
563cbdda60SSimon J. Gerratyprefix?= /usr
576a7405f5SSimon J. Gerratysrcdir?= ${.PARSEDIR}
586a7405f5SSimon J. Gerratysrcdir:= ${srcdir}
593cbdda60SSimon 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
69548bfc56SSimon J. Gerraty.for x in FORCE_MAKE_OS FORCE_MACHINE FORCE_MACHINE_ARCH
70e2eeea75SSimon J. Gerraty.ifdef $x
71e2eeea75SSimon J. GerratyCOPTS.main.c+= "-D$x=\"${$x}\""
72e2eeea75SSimon J. Gerraty.endif
73e2eeea75SSimon J. Gerraty.endfor
74e2eeea75SSimon J. Gerraty
753cbdda60SSimon J. Gerraty# meta mode can be useful even without filemon
7649caa483SSimon J. Gerraty# should be set by now
7749caa483SSimon J. GerratyUSE_FILEMON?= no
7849caa483SSimon J. Gerraty.if ${USE_FILEMON:tl} != "no"
7949caa483SSimon J. Gerraty.PATH:	${srcdir}/filemon
8049caa483SSimon J. GerratySRCS+= filemon_${USE_FILEMON}.c
8149caa483SSimon J. GerratyCOPTS.meta.c+= -DUSE_FILEMON -DUSE_FILEMON_${USE_FILEMON:tu}
8249caa483SSimon J. GerratyCOPTS.job.c+= ${COPTS.meta.c}
8349caa483SSimon J. Gerraty
8449caa483SSimon J. Gerraty.if ${USE_FILEMON} == "dev"
85d4d90f10SMarcel MoolenaarFILEMON_H?= /usr/include/dev/filemon/filemon.h
86d4d90f10SMarcel Moolenaar.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h"
8749caa483SSimon J. GerratyCOPTS.filemon_dev.c+= -DHAVE_FILEMON_H -I${FILEMON_H:H}
88d4d90f10SMarcel Moolenaar.endif
89148ee845SSimon J. Gerraty.elif ${USE_FILEMON} == "ktrace"
90148ee845SSimon J. GerratyCOPTS.filemon_ktrace.c+= -Wno-error=unused-parameter
91148ee845SSimon J. Gerraty.endif
9249caa483SSimon J. Gerraty
9349caa483SSimon J. Gerraty.endif				# USE_FILEMON
94d4d90f10SMarcel Moolenaar
95d4d90f10SMarcel Moolenaar.PATH:	${srcdir}
96d4d90f10SMarcel Moolenaar
976a7405f5SSimon J. Gerraty
98d4d90f10SMarcel Moolenaar.if make(obj) || make(clean)
996a7405f5SSimon J. GerratySUBDIR.${MK_TESTS}+= unit-tests
100d4d90f10SMarcel Moolenaar.endif
101d4d90f10SMarcel Moolenaar
1023cbdda60SSimon J. GerratyMAN1= ${MAN}
1033cbdda60SSimon J. Gerraty
1046a7405f5SSimon J. Gerraty.if ${MK_GEN_MAN:Uno} == "yes"
1056a7405f5SSimon J. Gerraty
1066a7405f5SSimon J. Gerraty# we use this to generate ${MAN}
1076a7405f5SSimon J. Gerraty.include <${srcdir}/mk/genfiles.mk>
1086a7405f5SSimon J. Gerraty
1091c04cf7dSSimon J. Gerraty.if ${PROG} != "make"
1103cbdda60SSimon J. GerratyCLEANFILES+= my.history
1116a7405f5SSimon J. GerratySED_CMDS.${MAN}+= \
1126a7405f5SSimon J. Gerraty	-e '/^.Dt/s/MAKE/${PROG:tu}/' \
1136a7405f5SSimon J. Gerraty	-e '/^.Nm/s/make/${PROG}/' \
1146a7405f5SSimon J. Gerraty
1156a7405f5SSimon J. Gerraty.endif
1166a7405f5SSimon J. Gerraty
1176a7405f5SSimon J. Gerraty.if ${CLEANFILES:U:Mmy.history} != ""
1186a7405f5SSimon J. Gerraty${MAN}: my.history
119ef0b2538SSimon J. Gerratymy.history:
12093036677SSimon J. Gerraty	@(echo ".Nm"; \
121d4d90f10SMarcel Moolenaar	echo "is derived from NetBSD"; \
122d4d90f10SMarcel Moolenaar	echo ".Xr make 1 ."; \
12393036677SSimon J. Gerraty	echo "It uses autoconf to facilitate portability to other platforms."; \
12493036677SSimon J. Gerraty	echo ".Pp") > $@
12593036677SSimon J. Gerraty
1266a7405f5SSimon J. GerratySED_CMDS.${MAN}+= \
12793036677SSimon J. Gerraty	-e '/^.Sh HISTORY/rmy.history' \
1286a7405f5SSimon J. Gerraty	-e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \
129d4d90f10SMarcel Moolenaar
1306a7405f5SSimon J. Gerraty.endif
1316a7405f5SSimon J. Gerraty
1326a7405f5SSimon J. Gerraty.if ${.MAKE.OS:N*BSD} != ""
1336a7405f5SSimon J. Gerraty# assume .Nx is not supported
1346a7405f5SSimon J. GerratySED_CMDS.${MAN}+= -e 's/^\.Nx/NetBSD/'
1356a7405f5SSimon J. Gerraty.endif
1366a7405f5SSimon J. Gerraty
1376a7405f5SSimon J. Gerraty# watch out for a late change of PROG
1386a7405f5SSimon J. Gerraty.if !empty(SRCS.${MAN})
1396a7405f5SSimon J. Gerraty.NOPATH: ${MAN}
1406a7405f5SSimon J. Gerraty${MAN}:	${SRCS.${MAN}} _GENFILES_USE
1416a7405f5SSimon J. Gerraty
1426a7405f5SSimon J. Gerratyall man beforeinstall: ${MAN}
1433cbdda60SSimon J. Gerraty_mfromdir= .
144d4d90f10SMarcel Moolenaar.endif
1456a7405f5SSimon J. Gerraty.endif				# MK_GEN_MAN
146d4d90f10SMarcel Moolenaar
147d4d90f10SMarcel MoolenaarMANTARGET?= cat
148d4d90f10SMarcel MoolenaarMANDEST?= ${MANDIR}/${MANTARGET}1
149d4d90f10SMarcel Moolenaar
150d4d90f10SMarcel Moolenaar.if ${MANTARGET} == "cat"
151d4d90f10SMarcel Moolenaar_mfromdir= ${srcdir}
152d4d90f10SMarcel Moolenaar.endif
153d4d90f10SMarcel Moolenaar
1543cbdda60SSimon J. Gerraty.include <bsd.prog.mk>
155d4d90f10SMarcel Moolenaar
1563cbdda60SSimon J. GerratyCPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H
157d4d90f10SMarcel MoolenaarCOPTS.var.c+= -Wno-cast-qual
158d4d90f10SMarcel MoolenaarCOPTS.job.c+= -Wno-format-nonliteral
159d4d90f10SMarcel MoolenaarCOPTS.parse.c+= -Wno-format-nonliteral
160d4d90f10SMarcel MoolenaarCOPTS.var.c+= -Wno-format-nonliteral
161d4d90f10SMarcel Moolenaar
162d4d90f10SMarcel Moolenaar# Force these
163db29cad8SSimon J. GerratySHAREDIR= ${SHAREDIR.bmake:U${prefix}/share}
164db29cad8SSimon J. GerratyBINDIR= ${BINDIR.bmake:U${prefix}/bin}
165db29cad8SSimon J. GerratyMANDIR= ${MANDIR.bmake:U${SHAREDIR}/man}
166d4d90f10SMarcel Moolenaar
1673cbdda60SSimon J. Gerraty${OBJS}: config.h
1683cbdda60SSimon J. Gerraty
169d4d90f10SMarcel Moolenaar
170d4d90f10SMarcel Moolenaar# A simple unit-test driver to help catch regressions
1712c3632d1SSimon J. GerratyTEST_MAKE?= ${.OBJDIR}/${PROG:T}
17208604a02SSimon J. Gerratyaccept test: .NOMETA
1732c3632d1SSimon J. Gerraty	cd ${.CURDIR}/unit-tests && \
1742c3632d1SSimon J. Gerraty	MAKEFLAGS= ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS=${TESTS:Q}}
1752c3632d1SSimon J. Gerraty
176d4d90f10SMarcel Moolenaar
17708604a02SSimon J. Gerraty.if make(test) && ${MK_AUTO_OBJ} == "yes"
178532d4fbfSSimon J. Gerraty# The test target above visits unit-tests with -r -m /
179532d4fbfSSimon J. Gerraty# which prevents MK_AUTO_OBJ doing its job
180532d4fbfSSimon J. Gerraty# so do it here
181532d4fbfSSimon J. Gerraty.if defined(MAKEOBJDIRPREFIX) || ${MAKEOBJDIR:U:M*/*} != ""
18208604a02SSimon J. Gerraty_utobj= ${.OBJDIR}/unit-tests
18308604a02SSimon J. Gerraty.else
18408604a02SSimon J. Gerraty_utobj= ${.CURDIR}/unit-tests/${MAKEOBJDIR:Uobj}
18508604a02SSimon J. Gerraty.endif
18608604a02SSimon J. Gerratyutobj: .NOMETA
187532d4fbfSSimon J. Gerraty	@test -d ${_utobj} && exit 0; \
188532d4fbfSSimon J. Gerraty	echo "[Creating ${_utobj}...]"; \
189532d4fbfSSimon J. Gerraty	umask ${OBJDIR_UMASK:U002}; \
19008604a02SSimon J. Gerraty	mkdir -p ${_utobj}
19108604a02SSimon J. Gerratytest: utobj
19208604a02SSimon J. Gerraty.endif
19308604a02SSimon J. Gerraty
194d4d90f10SMarcel Moolenaar# override some simple things
195d4d90f10SMarcel MoolenaarBINDIR= /usr/bin
196d4d90f10SMarcel MoolenaarMANDIR= /usr/share/man/man
197d4d90f10SMarcel Moolenaar
198d4d90f10SMarcel Moolenaar# make sure we get this
199d4d90f10SMarcel MoolenaarCFLAGS+= ${COPTS.${.IMPSRC:T}}
200d4d90f10SMarcel Moolenaar
201d4d90f10SMarcel Moolenaarafter-import: ${SRCTOP}/contrib/bmake/bsd.after-import.mk
202d4d90f10SMarcel Moolenaar	cd ${.CURDIR} && ${.MAKE} -f ${SRCTOP}/contrib/bmake/bsd.after-import.mk
203d4d90f10SMarcel Moolenaar
204