1 # $Id: Makefile,v 1.122 2022/10/08 02:53:30 sjg Exp $
29 .
-include "Makefile.inc"
31 # this file gets generated by configure
32 .
-include "Makefile.config"
35 SRCS
+= ${LIBOBJS
:T
:.o
=.c
}
42 DEFAULT_SYS_PATH?
= ${prefix}/share
/mk
46 CFLAGS
+= -D_PATH_DEFSYSPATH
=\"${DEFAULT_SYS_PATH}\"
47 CFLAGS
+= -I.
-I
${srcdir} ${XDEFS} -DMAKE_NATIVE
48 CFLAGS
+= ${COPTS.
${.ALLSRC
:M
*.c
:T
:u
}}
49 COPTS.main.c
+= "-DMAKE_VERSION=\"${_MAKE_VERSION}\""
51 .for x in FORCE_MACHINE FORCE_MACHINE_ARCH
53 COPTS.main.c
+= "-D$x=\"${$x}\""
57 # meta mode can be useful even without filemon
58 # should be set by now
60 .if
${USE_FILEMON
:tl
} != "no"
61 .PATH
: ${srcdir}/filemon
62 SRCS
+= filemon_
${USE_FILEMON}.c
63 COPTS.meta.c
+= -DUSE_FILEMON
-DUSE_FILEMON_
${USE_FILEMON
:tu
}
64 COPTS.job.c
+= ${COPTS.meta.c
}
66 .if
${USE_FILEMON} == "dev"
67 FILEMON_H ?
= /usr
/include/dev
/filemon
/filemon.h
68 .if exists
(${FILEMON_H}) && ${FILEMON_H
:T
} == "filemon.h"
69 COPTS.filemon_dev.c
+= -DHAVE_FILEMON_H
-I
${FILEMON_H
:H
}
71 .
endif # USE_FILEMON == dev
77 .if make
(obj
) || make
(clean)
81 # start-delete1 for bsd.after-import.mk
82 # we skip a lot of this when building as part of FreeBSD etc.
84 # list of OS's which are derrived from BSD4.4
85 BSD44_LIST
= NetBSD FreeBSD OpenBSD DragonFly MirBSD Bitrig
87 OS
:= ${.MAKE.OS
:U
${uname
-s
:L
:sh
}}
89 isBSD44
:=${BSD44_LIST
:M
${OS}}
91 .if
${isBSD44} == "" && ${OS
:NDarwin
:NLinux
} != ""
93 INSTALL?
=${srcdir}/install-sh
94 .if
${MACHINE} == "sun386"
95 # even I don't have one of these anymore :-)
97 .elif
${OS} != "SunOS"
100 CFLAGS
+= -DSIGNAL_FLAGS
=SA_RESTART
106 # turn this on by default - ignored if we are root
107 WITH_INSTALL_AS_USER
=
109 # suppress with -DWITHOUT_*
110 OPTIONS_DEFAULT_YES
+= \
115 OPTIONS_DEFAULT_NO
+= \
118 # process options now
121 .if
${MK_PROG_VERSION} == "yes"
122 PROG_NAME
= ${PROG}-${_MAKE_VERSION}
123 .if
${MK_PROG_LINK} == "yes"
124 SYMLINKS
+= ${PROG_NAME} ${BINDIR}/${PROG}
134 .if
${PROG} != "make"
135 CLEANFILES
+= my.history
136 .if make
(${MAN}) ||
!exists
(${srcdir}/${MAN})
139 echo
"is derived from NetBSD"; \
140 echo
".Xr make 1 ."; \
141 echo
"It uses autoconf to facilitate portability to other platforms."; \
145 ${MAN}: make
.1 my.history
148 -e
'/^.Dt/s/MAKE/${PROG:tu}/' \
149 -e
's/^.Nx/NetBSD/' \
150 -e
'/^.Nm/s/make/${PROG}/' \
151 -e
'/^.Sh HISTORY/rmy.history' \
152 -e
'/^.Sh HISTORY/,$$s,^.Nm,make,' ${srcdir}/make
.1 > $@
154 all beforeinstall
: ${MAN}
160 MANDEST?
= ${MANDIR}/${MANTARGET}1
162 .if
${MANTARGET} == "cat"
168 CPPFLAGS
+= -DMAKE_NATIVE
-DHAVE_CONFIG_H
169 COPTS.var.c
+= -Wno-cast-qual
170 COPTS.job.c
+= -Wno-format-nonliteral
171 COPTS.parse.c
+= -Wno-format-nonliteral
172 COPTS.var.c
+= -Wno-format-nonliteral
175 SHAREDIR
= ${SHAREDIR.bmake
:U
${prefix}/share
}
176 BINDIR
= ${BINDIR.bmake
:U
${prefix}/bin
}
177 MANDIR
= ${MANDIR.bmake
:U
${SHAREDIR}/man
}
183 # start-delete2 for bsd.after-import.mk
185 # make sure that MAKE_VERSION gets updated.
186 main.o
: ${srcdir}/VERSION
188 .if
${MK_AUTOCONF_MK} == "yes"
189 CONFIGURE_DEPS
+= ${.CURDIR
}/VERSION
190 # we do not need or want the generated makefile
191 CONFIGURE_ARGS
+= --without-makefile
192 AUTOCONF_GENERATED_MAKEFILE
= Makefile.config
193 .
include <autoconf.mk
>
195 SHARE_MK ?
= ${SHAREDIR}/mk
197 INSTALL ?
= ${srcdir}/install-sh
199 .if
${MK_INSTALL_MK} == "yes"
204 test -d
${DESTDIR}${BINDIR} ||
${INSTALL} -m
775 -d
${DESTDIR}${BINDIR}
205 test -d
${DESTDIR}${MANDEST} ||
${INSTALL} -m
775 -d
${DESTDIR}${MANDEST}
208 .if exists
(${MKSRC}/install-mk
)
209 test -d
${DESTDIR}${SHARE_MK} ||
${INSTALL} -m
775 -d
${DESTDIR}${SHARE_MK}
210 sh
${MKSRC}/install-mk
-v
-m
644 ${DESTDIR}${SHARE_MK}
212 @echo need to unpack mk.
tar.gz under
${srcdir} or set MKSRC
; false
216 # A simple unit-test driver to help catch regressions
217 TEST_MAKE ?
= ${.OBJDIR
}/${PROG
:T
}
219 cd
${.CURDIR
}/unit-tests
&& \
220 MAKEFLAGS
= ${TEST_MAKE} -r
-m
/ ${.TARGET
} ${TESTS
:DTESTS
=${TESTS
:Q
}}
223 .if make
(test) && ${MK_AUTO_OBJ} == "yes"
224 # The test target above visits unit-tests with -r -m /
225 # which prevents MK_AUTO_OBJ doing its job
227 .if defined
(MAKEOBJDIRPREFIX
) ||
${MAKEOBJDIR
:U
:M
*/*} != ""
228 _utobj
= ${.OBJDIR
}/unit-tests
230 _utobj
= ${.CURDIR
}/unit-tests
/${MAKEOBJDIR
:Uobj
}
233 @
test -d
${_utobj} && exit
0; \
234 echo
"[Creating ${_utobj}...]"; \
235 umask
${OBJDIR_UMASK
:U002
}; \