1# This is a generated file, do NOT edit! 2# See contrib/bmake/bsd.after-import.mk 3# 4 5SRCTOP?= ${.CURDIR:H:H} 6 7# look here first for config.h 8CFLAGS+= -I${.CURDIR} 9 10# for after-import 11CLEANDIRS+= FreeBSD 12CLEANFILES+= bootstrap 13 14# $Id: Makefile,v 1.137 2026/03/13 15:37:22 sjg Exp $ 15 16PROG?= ${.CURDIR:T} 17 18SRCS= \ 19 arch.c \ 20 buf.c \ 21 compat.c \ 22 cond.c \ 23 dir.c \ 24 for.c \ 25 hash.c \ 26 job.c \ 27 lst.c \ 28 main.c \ 29 make.c \ 30 make_malloc.c \ 31 meta.c \ 32 metachar.c \ 33 parse.c \ 34 str.c \ 35 suff.c \ 36 targ.c \ 37 trace.c \ 38 util.c \ 39 var.c 40 41.MAIN: all 42 43.-include "Makefile.inc" 44 45# this file gets generated by configure 46.-include "Makefile.config" 47 48.if !empty(LIBOBJS) 49SRCS+= ${LIBOBJS:T:.o=.c} 50.endif 51 52# just in case 53prefix?= /usr 54srcdir?= ${.PARSEDIR} 55srcdir:= ${srcdir} 56 57MAN?= ${PROG}.1 58SRCS.${MAN}?= ${srcdir}/make.1 59 60DEFAULT_SYS_PATH?= ${prefix}/share/mk 61 62CPPFLAGS+= -DUSE_META 63CFLAGS+= ${CPPFLAGS} 64CFLAGS+= -D_PATH_DEFSYSPATH=\"${DEFAULT_SYS_PATH}\" 65CFLAGS+= -I. -I${srcdir} ${XDEFS} -DMAKE_NATIVE 66CFLAGS+= ${COPTS.${.ALLSRC:M*.c:T:u}} 67COPTS.main.c+= "-DMAKE_VERSION=\"${_MAKE_VERSION}\"" 68 69# bmake defaults to the traditional behavior 70MAKE_SAVE_DOLLARS_DEFAULT?= no 71 72VARS.main+= FORCE_MAKE_OS FORCE_MACHINE FORCE_MACHINE_ARCH \ 73 MAKE_SAVE_DOLLARS_DEFAULT \ 74 75.for x in ${VARS.main} 76.ifdef $x 77COPTS.main.c+= "-D$x=\"${$x}\"" 78.endif 79.endfor 80 81# meta mode can be useful even without filemon 82# should be set by now 83USE_FILEMON?= no 84.if ${USE_FILEMON:tl} != "no" 85.PATH: ${srcdir}/filemon 86SRCS+= filemon_${USE_FILEMON}.c 87COPTS.meta.c+= -DUSE_FILEMON -DUSE_FILEMON_${USE_FILEMON:tu} 88COPTS.job.c+= ${COPTS.meta.c} 89 90.if ${USE_FILEMON} == "dev" 91FILEMON_H?= /usr/include/dev/filemon/filemon.h 92.if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h" 93COPTS.filemon_dev.c+= -DHAVE_FILEMON_H -I${FILEMON_H:H} 94.endif 95.elif ${USE_FILEMON} == "ktrace" 96COPTS.filemon_ktrace.c+= -Wno-error=unused-parameter 97.endif 98 99.endif # USE_FILEMON 100 101.PATH: ${srcdir} 102 103 104.if make(obj) || make(clean) 105SUBDIR.${MK_TESTS}+= unit-tests 106.endif 107 108MAN1= ${MAN} 109 110.if ${MK_GEN_MAN:Uno} == "yes" 111 112# we use this to generate ${MAN} 113.include <${srcdir}/mk/genfiles.mk> 114 115.if ${PROG} != "make" 116CLEANFILES+= my.history 117SED_CMDS.${MAN}+= \ 118 -e '/^.Dt/s/MAKE/${PROG:tu}/' \ 119 -e '/^.Nm/s/make/${PROG}/' \ 120 121.endif 122 123.if ${CLEANFILES:U:Mmy.history} != "" 124${MAN}: my.history 125my.history: 126 @(echo ".Nm"; \ 127 echo "is derived from NetBSD"; \ 128 echo ".Xr make 1 ."; \ 129 echo "It uses autoconf to facilitate portability to other platforms."; \ 130 echo ".Pp") > $@ 131 132SED_CMDS.${MAN}+= \ 133 -e '/^.Sh HISTORY/rmy.history' \ 134 -e '/^.Sh HISTORY/,/BUGS/s,^.Nm,make,' \ 135 136.endif 137 138.if ${.MAKE.OS:N*BSD} != "" 139# assume .Nx is not supported 140SED_CMDS.${MAN}+= -e 's/^\.Nx/NetBSD/' 141.endif 142 143# watch out for a late change of PROG 144.if !empty(SRCS.${MAN}) 145.NOPATH: ${MAN} 146${MAN}: ${SRCS.${MAN}} _GENFILES_USE 147 148all man beforeinstall: ${MAN} 149_mfromdir= . 150.endif 151.endif # MK_GEN_MAN 152 153MANTARGET?= cat 154MANDEST?= ${MANDIR}/${MANTARGET}1 155 156.if ${MANTARGET} == "cat" 157_mfromdir= ${srcdir} 158.endif 159 160.include <bsd.prog.mk> 161 162CPPFLAGS+= -DMAKE_NATIVE -DHAVE_CONFIG_H 163COPTS.var.c+= -Wno-cast-qual 164COPTS.job.c+= -Wno-format-nonliteral 165COPTS.parse.c+= -Wno-format-nonliteral 166COPTS.var.c+= -Wno-format-nonliteral 167 168# Force these 169SHAREDIR= ${SHAREDIR.bmake:U${prefix}/share} 170BINDIR= ${BINDIR.bmake:U${prefix}/bin} 171MANDIR= ${MANDIR.bmake:U${SHAREDIR}/man} 172 173${OBJS}: .META config.h 174${PROG}: .META 175 176 177# A simple unit-test driver to help catch regressions 178TEST_MAKE?= ${.OBJDIR}/${PROG:T} 179accept test: .NOMETA 180 cd ${.CURDIR}/unit-tests && \ 181 MAKEFLAGS= ${TEST_MAKE} -r -m / ${.TARGET} ${TESTS:DTESTS=${TESTS:Q}} 182 183 184.if make(test) && ${MK_AUTO_OBJ} == "yes" 185# The test target above visits unit-tests with -r -m / 186# which prevents MK_AUTO_OBJ doing its job 187# so do it here 188.if defined(MAKEOBJDIRPREFIX) || ${MAKEOBJDIR:U:M*/*} != "" 189_utobj= ${.OBJDIR}/unit-tests 190.else 191_utobj= ${.CURDIR}/unit-tests/${MAKEOBJDIR:Uobj} 192.endif 193utobj: .NOMETA 194 @test -d ${_utobj} && exit 0; \ 195 echo "[Creating ${_utobj}...]"; \ 196 umask ${OBJDIR_UMASK:U002}; \ 197 mkdir -p ${_utobj} 198test: utobj 199.endif 200 201# override some simple things 202BINDIR= /usr/bin 203MANDIR= /usr/share/man/man 204 205# make sure we get this 206CFLAGS+= ${COPTS.${.IMPSRC:T}} 207 208after-import: ${SRCTOP}/contrib/bmake/bsd.after-import.mk 209 cd ${.CURDIR} && ${.MAKE} -f ${SRCTOP}/contrib/bmake/bsd.after-import.mk 210 211