Fri Oct 30 08:41:58 2020 UTC ()
libsqlite3 now requires -lm


(martin)
diff -r1.6 -r1.7 src/external/bsd/kyua-cli/Makefile.inc
diff -r1.23 -r1.24 src/external/ibm-public/postfix/Makefile.inc
diff -r1.5 -r1.6 src/external/public-domain/sqlite/bin/Makefile
diff -r1.332 -r1.333 src/share/mk/bsd.prog.mk

cvs diff -r1.6 -r1.7 src/external/bsd/kyua-cli/Makefile.inc (switch to unified diff)

--- src/external/bsd/kyua-cli/Makefile.inc 2020/07/02 14:04:00 1.6
+++ src/external/bsd/kyua-cli/Makefile.inc 2020/10/30 08:41:58 1.7
@@ -1,77 +1,77 @@ @@ -1,77 +1,77 @@
1# $NetBSD: Makefile.inc,v 1.6 2020/07/02 14:04:00 lukem Exp $ 1# $NetBSD: Makefile.inc,v 1.7 2020/10/30 08:41:58 martin Exp $
2 2
3.include <bsd.own.mk> 3.include <bsd.own.mk>
4 4
5TOPDIR= ${NETBSDSRCDIR}/external/bsd/kyua-cli 5TOPDIR= ${NETBSDSRCDIR}/external/bsd/kyua-cli
6SRCDIR= ${TOPDIR}/dist 6SRCDIR= ${TOPDIR}/dist
7 7
8# Name of the private libraries (without their lib prefix) to depend on. 8# Name of the private libraries (without their lib prefix) to depend on.
9KYUA_LIBS?= 9KYUA_LIBS?=
10 10
11# Layout of installed files. 11# Layout of installed files.
12KYUA_BINDIR= /usr/bin 12KYUA_BINDIR= /usr/bin
13KYUA_CONFDIR= /etc/kyua 13KYUA_CONFDIR= /etc/kyua
14KYUA_DOCDIR= /usr/share/doc/reference/ref1/kyua/kyua-cli 14KYUA_DOCDIR= /usr/share/doc/reference/ref1/kyua/kyua-cli
15KYUA_EXAMPLESDIR= /usr/share/examples/kyua-cli 15KYUA_EXAMPLESDIR= /usr/share/examples/kyua-cli
16KYUA_MISCDIR= /usr/share/kyua-cli/misc 16KYUA_MISCDIR= /usr/share/kyua-cli/misc
17KYUA_STOREDIR= /usr/share/kyua-cli/store 17KYUA_STOREDIR= /usr/share/kyua-cli/store
18KYUA_TESTERSDIR= /usr/libexec 18KYUA_TESTERSDIR= /usr/libexec
19KYUA_TESTSDIR= ${TESTSBASE} 19KYUA_TESTSDIR= ${TESTSBASE}
20 20
21KYUA_TARNAME!= grep 'define PACKAGE_TARNAME' ${TOPDIR}/config.h \ 21KYUA_TARNAME!= grep 'define PACKAGE_TARNAME' ${TOPDIR}/config.h \
22 | cut -d '"' -f 2 22 | cut -d '"' -f 2
23cookie-tarname: cookie-tarname-2 23cookie-tarname: cookie-tarname-2
24 @cmp -s cookie-tarname cookie-tarname-2 \ 24 @cmp -s cookie-tarname cookie-tarname-2 \
25 || cp cookie-tarname-2 cookie-tarname 25 || cp cookie-tarname-2 cookie-tarname
26cookie-tarname-2: .PHONY 26cookie-tarname-2: .PHONY
27 @echo "${KYUA_TARNAME}" >cookie-tarname-2 27 @echo "${KYUA_TARNAME}" >cookie-tarname-2
28CLEANFILES+= cookie-tarname cookie-tarname-2 28CLEANFILES+= cookie-tarname cookie-tarname-2
29  29
30KYUA_VERSION!= grep 'define VERSION' ${TOPDIR}/config.h | cut -d '"' -f 2 30KYUA_VERSION!= grep 'define VERSION' ${TOPDIR}/config.h | cut -d '"' -f 2
31cookie-version: cookie-version-2 31cookie-version: cookie-version-2
32 @cmp -s cookie-version cookie-version-2 \ 32 @cmp -s cookie-version cookie-version-2 \
33 || cp cookie-version-2 cookie-version 33 || cp cookie-version-2 cookie-version
34cookie-version-2: .PHONY 34cookie-version-2: .PHONY
35 @echo "${KYUA_VERSION}" >cookie-version-2 35 @echo "${KYUA_VERSION}" >cookie-version-2
36CLEANFILES+= cookie-version cookie-version-2 36CLEANFILES+= cookie-version cookie-version-2
37 37
38CPPFLAGS+= -DHAVE_CONFIG_H 38CPPFLAGS+= -DHAVE_CONFIG_H
39 39
40# Not all source files need these settings, but it's just easier to 40# Not all source files need these settings, but it's just easier to
41# set them in all cases. 41# set them in all cases.
42CPPFLAGS+= -DKYUA_CONFDIR=\"${KYUA_CONFDIR}\" 42CPPFLAGS+= -DKYUA_CONFDIR=\"${KYUA_CONFDIR}\"
43CPPFLAGS+= -DKYUA_DOCDIR=\"${KYUA_DOCDIR}\" 43CPPFLAGS+= -DKYUA_DOCDIR=\"${KYUA_DOCDIR}\"
44CPPFLAGS+= -DKYUA_EXAMPLESDIR=\"${KYUA_EXAMPLESDIR}\" 44CPPFLAGS+= -DKYUA_EXAMPLESDIR=\"${KYUA_EXAMPLESDIR}\"
45CPPFLAGS+= -DKYUA_MISCDIR=\"${KYUA_MISCDIR}\" 45CPPFLAGS+= -DKYUA_MISCDIR=\"${KYUA_MISCDIR}\"
46CPPFLAGS+= -DKYUA_STOREDIR=\"${KYUA_STOREDIR}\" 46CPPFLAGS+= -DKYUA_STOREDIR=\"${KYUA_STOREDIR}\"
47CPPFLAGS+= -DKYUA_TESTERSDIR=\"${KYUA_TESTERSDIR}\" 47CPPFLAGS+= -DKYUA_TESTERSDIR=\"${KYUA_TESTERSDIR}\"
48CPPFLAGS+= -DKYUA_TESTSDIR=\"${KYUA_TESTSDIR}\" 48CPPFLAGS+= -DKYUA_TESTSDIR=\"${KYUA_TESTSDIR}\"
49 49
50CPPFLAGS+= -I${TOPDIR} # For config.h. 50CPPFLAGS+= -I${TOPDIR} # For config.h.
51CPPFLAGS+= -I${TOPDIR}/lib # For utils/defs.hpp. 51CPPFLAGS+= -I${TOPDIR}/lib # For utils/defs.hpp.
52CPPFLAGS+= -I${SRCDIR} 52CPPFLAGS+= -I${SRCDIR}
53 53
54.for lib in ${KYUA_LIBS} 54.for lib in ${KYUA_LIBS}
55LIBOBJDIR_${lib}!= cd ${TOPDIR}/lib/${lib}; ${PRINTOBJDIR} 55LIBOBJDIR_${lib}!= cd ${TOPDIR}/lib/${lib}; ${PRINTOBJDIR}
56LDADD+= ${LIBOBJDIR_${lib}}/lib${lib}.a 56LDADD+= ${LIBOBJDIR_${lib}}/lib${lib}.a
57DPADD+= ${LIBOBJDIR_${lib}}/lib${lib}.a 57DPADD+= ${LIBOBJDIR_${lib}}/lib${lib}.a
58.endfor 58.endfor
59 59
60.if !empty(KYUA_LIBS:Mutils) 60.if !empty(KYUA_LIBS:Mutils)
61LDADD+= -llutok -lsqlite3 61LDADD+= -llutok -lsqlite3 -lm
62DPADD+= ${LIBLUTOK} ${LIBSQLITE} 62DPADD+= ${LIBLUTOK} ${LIBSQLITE} ${LIBM}
63.endif 63.endif
64 64
65MANPAGE_DEPS = cookie-tarname cookie-version 65MANPAGE_DEPS = cookie-tarname cookie-version
66BUILD_MANPAGE = \ 66BUILD_MANPAGE = \
67 sed -e 's,__CONFDIR__,${KYUA_CONFDIR},g' \ 67 sed -e 's,__CONFDIR__,${KYUA_CONFDIR},g' \
68 -e 's,__DOCDIR__,${KYUA_DOCDIR},g' \ 68 -e 's,__DOCDIR__,${KYUA_DOCDIR},g' \
69 -e 's,__EGDIR__,${KYUA_EXAMPLESDIR},g' \ 69 -e 's,__EGDIR__,${KYUA_EXAMPLESDIR},g' \
70 -e 's,__MISCDIR__,${KYUA_MISCDIR},g' \ 70 -e 's,__MISCDIR__,${KYUA_MISCDIR},g' \
71 -e 's,__PACKAGE__,${KYUA_TARNAME},g' \ 71 -e 's,__PACKAGE__,${KYUA_TARNAME},g' \
72 -e 's,__STOREDIR__,${KYUA_STOREDIR},g' \ 72 -e 's,__STOREDIR__,${KYUA_STOREDIR},g' \
73 -e 's,__TESTERSDIR__,${KYUA_TESTERSDIR},g' \ 73 -e 's,__TESTERSDIR__,${KYUA_TESTERSDIR},g' \
74 -e 's,__TESTSDIR__,${KYUA_TESTSDIR},g' \ 74 -e 's,__TESTSDIR__,${KYUA_TESTSDIR},g' \
75 -e 's,__VERSION__,${KYUA_VERSION},g' \ 75 -e 's,__VERSION__,${KYUA_VERSION},g' \
76 <${SRCDIR}/doc/$${name}.in >$${name}.tmp; \ 76 <${SRCDIR}/doc/$${name}.in >$${name}.tmp; \
77 mv $${name}.tmp $${name} 77 mv $${name}.tmp $${name}

cvs diff -r1.23 -r1.24 src/external/ibm-public/postfix/Makefile.inc (switch to unified diff)

--- src/external/ibm-public/postfix/Makefile.inc 2020/04/20 13:04:10 1.23
+++ src/external/ibm-public/postfix/Makefile.inc 2020/10/30 08:41:58 1.24
@@ -1,97 +1,97 @@ @@ -1,97 +1,97 @@
1# $NetBSD: Makefile.inc,v 1.23 2020/04/20 13:04:10 joerg Exp $ 1# $NetBSD: Makefile.inc,v 1.24 2020/10/30 08:41:58 martin Exp $
2 2
3.include <bsd.own.mk> 3.include <bsd.own.mk>
4 4
5USE_FORT?= yes # network client and server 5USE_FORT?= yes # network client and server
6CWARNFLAGS.clang+= -Wno-empty-body -Wno-format-extra-args \ 6CWARNFLAGS.clang+= -Wno-empty-body -Wno-format-extra-args \
7 -Wno-string-plus-int -Wno-string-compare 7 -Wno-string-plus-int -Wno-string-compare
8WARNS?= 0 8WARNS?= 0
9 9
10PFIX_DISTDIR= ${NETBSDSRCDIR}/external/ibm-public/postfix/dist 10PFIX_DISTDIR= ${NETBSDSRCDIR}/external/ibm-public/postfix/dist
11 11
12CPPFLAGS+= -DNETBSD7 -DUSE_SASL_AUTH -DNO_EAI \ 12CPPFLAGS+= -DNETBSD7 -DUSE_SASL_AUTH -DNO_EAI \
13 -I${DIST} \ 13 -I${DIST} \
14 -I${PFIX_DISTDIR}/src/dns -I${PFIX_DISTDIR}/src/global \ 14 -I${PFIX_DISTDIR}/src/dns -I${PFIX_DISTDIR}/src/global \
15 -I${PFIX_DISTDIR}/src/master -I${PFIX_DISTDIR}/src/util \ 15 -I${PFIX_DISTDIR}/src/master -I${PFIX_DISTDIR}/src/util \
16 -I${PFIX_DISTDIR}/src/tls -I${PFIX_DISTDIR}/src/milter \ 16 -I${PFIX_DISTDIR}/src/tls -I${PFIX_DISTDIR}/src/milter \
17 -I${PFIX_DISTDIR}/src/xsasl \ 17 -I${PFIX_DISTDIR}/src/xsasl \
18 ${${ACTIVE_CC} == "clang":?-Wno-comment:} 18 ${${ACTIVE_CC} == "clang":?-Wno-comment:}
19 19
20CPPFLAGS+= -DUSE_SASL_AUTH 20CPPFLAGS+= -DUSE_SASL_AUTH
21CPPFLAGS+= -DDEF_SERVER_SASL_TYPE=\"dovecot\" 21CPPFLAGS+= -DDEF_SERVER_SASL_TYPE=\"dovecot\"
22 22
23CPPFLAGS+= -DUSE_SASLC_SASL 23CPPFLAGS+= -DUSE_SASLC_SASL
24CPPFLAGS+= -DDEF_CLIENT_SASL_TYPE=\"saslc\" 24CPPFLAGS+= -DDEF_CLIENT_SASL_TYPE=\"saslc\"
25DPADD+= ${LIBSASCL} ${LIBSSL} 25DPADD+= ${LIBSASCL} ${LIBSSL}
26LDADD+= -lsaslc -lssl 26LDADD+= -lsaslc -lssl
27.if (${MKKERBEROS} != "no") 27.if (${MKKERBEROS} != "no")
28DPADD+= ${LIBGSSAPI} ${LIBCRYPTO} 28DPADD+= ${LIBGSSAPI} ${LIBCRYPTO}
29LDADD+= -lgssapi -lcrypto 29LDADD+= -lgssapi -lcrypto
30.endif 30.endif
31 31
32.if defined(HAVE_PCC) 32.if defined(HAVE_PCC)
33# code uses gcc-specific aggregate dynamic array 33# code uses gcc-specific aggregate dynamic array
34CPPFLAGS+= -DCANT_USE_SEND_RECV_MSG 34CPPFLAGS+= -DCANT_USE_SEND_RECV_MSG
35.endif 35.endif
36 36
37# TLS support. 37# TLS support.
38CPPFLAGS+= -DUSE_TLS 38CPPFLAGS+= -DUSE_TLS
39 39
40# IPv6 support. 40# IPv6 support.
41.if ${MKINET6} == "no" 41.if ${MKINET6} == "no"
42CPPFLAGS+= -DNO_IPV6 42CPPFLAGS+= -DNO_IPV6
43.endif 43.endif
44 44
45# SQLite support. 45# SQLite support.
46CPPFLAGS+= -DHAS_SQLITE 46CPPFLAGS+= -DHAS_SQLITE
47. if defined(PROG) 47. if defined(PROG)
48DPADD+= ${LIBSQLITE3} 48DPADD+= ${LIBSQLITE3} ${LIBM}
49LDADD+= -lsqlite3 49LDADD+= -lsqlite3 -lm
50.endif 50.endif
51 51
52# LDAP support. 52# LDAP support.
53.if ${USE_LDAP} != "no" 53.if ${USE_LDAP} != "no"
54CPPFLAGS+= -DHAS_LDAP 54CPPFLAGS+= -DHAS_LDAP
55 55
56# Automatically link in libldap for a program. 56# Automatically link in libldap for a program.
57. if defined(PROG) 57. if defined(PROG)
58LDADD+= -lldap -llber 58LDADD+= -lldap -llber
59DPADD+= ${LIBLDAP} ${LIBLBER} 59DPADD+= ${LIBLDAP} ${LIBLBER}
60. if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "")) 60. if (${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != ""))
61DPADD+= ${LIBSSL} ${LIBCRYPTO} 61DPADD+= ${LIBSSL} ${LIBCRYPTO}
62LDADD+= -lssl -lcrypto 62LDADD+= -lssl -lcrypto
63. endif 63. endif
64. endif 64. endif
65.endif # USE_LDAP != no 65.endif # USE_LDAP != no
66 66
67PFIX_SRCDIR= ${NETBSDSRCDIR}/external/ibm-public/postfix 67PFIX_SRCDIR= ${NETBSDSRCDIR}/external/ibm-public/postfix
68PFIX_LIBSDIRS= dns dns masterlib master global global util util \ 68PFIX_LIBSDIRS= dns dns masterlib master global global util util \
69 milter milter xsasl xsasl 69 milter milter xsasl xsasl
70 70
71PFIX_LIBSDIRS+= tls tls 71PFIX_LIBSDIRS+= tls tls
72 72
73.for _LD _LL in ${PFIX_LIBSDIRS} 73.for _LD _LL in ${PFIX_LIBSDIRS}
74.if !defined(POBJDIR.${_LL}) 74.if !defined(POBJDIR.${_LL})
75POBJDIR.${_LL}!=cd ${PFIX_SRCDIR}/lib/${_LD} && ${PRINTOBJDIR} 75POBJDIR.${_LL}!=cd ${PFIX_SRCDIR}/lib/${_LD} && ${PRINTOBJDIR}
76.MAKEOVERRIDES+=POBJDIR.${_LL} 76.MAKEOVERRIDES+=POBJDIR.${_LL}
77.endif 77.endif
78LIBP${_LL:tu}= ${POBJDIR.${_LL}}/lib${_LL}.a 78LIBP${_LL:tu}= ${POBJDIR.${_LL}}/lib${_LL}.a
79.endfor 79.endfor
80 80
81 81
82# Directories to install into. 82# Directories to install into.
83# 83#
84PFIX_LIBEXECDIR=/usr/libexec/postfix 84PFIX_LIBEXECDIR=/usr/libexec/postfix
85PFIX_ETCDIR= /etc/postfix 85PFIX_ETCDIR= /etc/postfix
86PFIX_EXAMPLEDIR=/usr/share/examples/postfix 86PFIX_EXAMPLEDIR=/usr/share/examples/postfix
87PFIX_HTMLDIR= /usr/share/doc/reference/ref8/postfix 87PFIX_HTMLDIR= /usr/share/doc/reference/ref8/postfix
88PFIX_SBINDIR= /usr/sbin 88PFIX_SBINDIR= /usr/sbin
89 89
90# override defaults which are otherwise empty and/or so postconf is correct 90# override defaults which are otherwise empty and/or so postconf is correct
91CPPFLAGS+= -DDEF_HTML_DIR=\"${PFIX_HTMLDIR}\" \ 91CPPFLAGS+= -DDEF_HTML_DIR=\"${PFIX_HTMLDIR}\" \
92 -DDEF_README_DIR=\"${PFIX_EXAMPLEDIR}\" \ 92 -DDEF_README_DIR=\"${PFIX_EXAMPLEDIR}\" \
93 -DDEF_SAMPLE_DIR=\"${PFIX_EXAMPLEDIR}\" \ 93 -DDEF_SAMPLE_DIR=\"${PFIX_EXAMPLEDIR}\" \
94 -DDEF_MANPAGE_DIR=\"${MANDIR}\" 94 -DDEF_MANPAGE_DIR=\"${MANDIR}\"
95 95
96# postfix check wants a lot of files to be owned by root 96# postfix check wants a lot of files to be owned by root
97BINOWN= root 97BINOWN= root

cvs diff -r1.5 -r1.6 src/external/public-domain/sqlite/bin/Makefile (switch to unified diff)

--- src/external/public-domain/sqlite/bin/Makefile 2013/02/14 21:07:25 1.5
+++ src/external/public-domain/sqlite/bin/Makefile 2020/10/30 08:41:58 1.6
@@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
1# $NetBSD: Makefile,v 1.5 2013/02/14 21:07:25 martin Exp $ 1# $NetBSD: Makefile,v 1.6 2020/10/30 08:41:58 martin Exp $
2 2
3PROG= sqlite3 3PROG= sqlite3
4 4
5SRCS= shell.c 5SRCS= shell.c
6 6
7DPADD+= ${LIBSQLITE3} ${LIBEDIT} ${LIBTERIMINFO} 7DPADD+= ${LIBSQLITE3} ${LIBEDIT} ${LIBTERIMINFO} ${LIBM}
8LDADD+= -lsqlite3 -ledit -lterminfo 8LDADD+= -lsqlite3 -ledit -lterminfo -lm
9 9
10BINDIR= /usr/bin 10BINDIR= /usr/bin
11 11
12.include <bsd.prog.mk> 12.include <bsd.prog.mk>

cvs diff -r1.332 -r1.333 src/share/mk/bsd.prog.mk (switch to unified diff)

--- src/share/mk/bsd.prog.mk 2020/10/16 06:55:36 1.332
+++ src/share/mk/bsd.prog.mk 2020/10/30 08:41:58 1.333
@@ -1,690 +1,691 @@ @@ -1,690 +1,691 @@
1# $NetBSD: bsd.prog.mk,v 1.332 2020/10/16 06:55:36 nia Exp $ 1# $NetBSD: bsd.prog.mk,v 1.333 2020/10/30 08:41:58 martin Exp $
2# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94 2# @(#)bsd.prog.mk 8.2 (Berkeley) 4/2/94
3 3
4.ifndef HOSTPROG 4.ifndef HOSTPROG
5 5
6.include <bsd.init.mk> 6.include <bsd.init.mk>
7.include <bsd.shlib.mk> 7.include <bsd.shlib.mk>
8.include <bsd.gcc.mk> 8.include <bsd.gcc.mk>
9.include <bsd.sanitizer.mk> 9.include <bsd.sanitizer.mk>
10 10
11##### Sanitizer specific flags. 11##### Sanitizer specific flags.
12 12
13CFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS} 13CFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS}
14CXXFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS} 14CXXFLAGS+= ${SANITIZERFLAGS} ${LIBCSANITIZERFLAGS}
15LDFLAGS+= ${SANITIZERFLAGS} 15LDFLAGS+= ${SANITIZERFLAGS}
16 16
17# 17#
18# Definitions and targets shared among all programs built by a single 18# Definitions and targets shared among all programs built by a single
19# Makefile. 19# Makefile.
20# 20#
21 21
22##### Basic targets 22##### Basic targets
23realinstall: proginstall scriptsinstall 23realinstall: proginstall scriptsinstall
24 24
25.gdbinit: 25.gdbinit:
26 rm -f .gdbinit 26 rm -f .gdbinit
27.if defined(DESTDIR) && !empty(DESTDIR) 27.if defined(DESTDIR) && !empty(DESTDIR)
28 echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit 28 echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit
29.else 29.else
30 touch .gdbinit 30 touch .gdbinit
31.endif 31.endif
32.for __gdbinit in ${GDBINIT} 32.for __gdbinit in ${GDBINIT}
33 echo "source ${__gdbinit}" >> .gdbinit 33 echo "source ${__gdbinit}" >> .gdbinit
34.endfor 34.endfor
35 35
36CLEANFILES+= a.out [Ee]rrs mklog core *.core .gdbinit 36CLEANFILES+= a.out [Ee]rrs mklog core *.core .gdbinit
37 37
38.if defined(SHAREDSTRINGS) 38.if defined(SHAREDSTRINGS)
39CLEANFILES+=strings 39CLEANFILES+=strings
40.c.o: 40.c.o:
41 ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - 41 ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c -
42 @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} 42 @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET}
43.if defined(CTFCONVERT) 43.if defined(CTFCONVERT)
44 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 44 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
45.endif 45.endif
46 @rm -f x.c 46 @rm -f x.c
47 47
48.cc.o .cpp.o .cxx.o .C.o: 48.cc.o .cpp.o .cxx.o .C.o:
49 ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - 49 ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c -
50 @${MV} x.c x.cc 50 @${MV} x.c x.cc
51 @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} 51 @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET}
52.if defined(CTFCONVERT) 52.if defined(CTFCONVERT)
53 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} 53 ${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
54.endif 54.endif
55 @rm -f x.cc 55 @rm -f x.cc
56.endif 56.endif
57 57
58.if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE) 58.if defined(MKPIE) && (${MKPIE} != "no") && !defined(NOPIE)
59CFLAGS+= ${PIE_CFLAGS} 59CFLAGS+= ${PIE_CFLAGS}
60AFLAGS+= ${PIE_AFLAGS} 60AFLAGS+= ${PIE_AFLAGS}
61LDFLAGS+= ${"${LDSTATIC.${.TARGET}}" == "-static" :? : ${PIE_LDFLAGS}} 61LDFLAGS+= ${"${LDSTATIC.${.TARGET}}" == "-static" :? : ${PIE_LDFLAGS}}
62.endif 62.endif
63 63
64CFLAGS+= ${COPTS} 64CFLAGS+= ${COPTS}
65.if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) 65.if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG)
66CFLAGS+= -g 66CFLAGS+= -g
67.endif 67.endif
68OBJCFLAGS+= ${OBJCOPTS} 68OBJCFLAGS+= ${OBJCOPTS}
69MKDEP_SUFFIXES?= .o .ln .d 69MKDEP_SUFFIXES?= .o .ln .d
70 70
71# CTF preserve debug symbols 71# CTF preserve debug symbols
72.if (${MKCTF:Uno} != "no") && (${CFLAGS:M-g} != "") 72.if (${MKCTF:Uno} != "no") && (${CFLAGS:M-g} != "")
73CTFFLAGS+= -g 73CTFFLAGS+= -g
74CTFMFLAGS+= -g 74CTFMFLAGS+= -g
75.if defined(HAVE_GCC) 75.if defined(HAVE_GCC)
76#CFLAGS+=-gdwarf-2 76#CFLAGS+=-gdwarf-2
77.endif 77.endif
78.endif 78.endif
79 79
80# ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o 80# ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o
81.ifndef LIBCRTBEGIN 81.ifndef LIBCRTBEGIN
82LIBCRTBEGIN= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o ${_GCC_CRTBEGIN} 82LIBCRTBEGIN= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o ${_GCC_CRTBEGIN}
83.MADE: ${LIBCRTBEGIN} 83.MADE: ${LIBCRTBEGIN}
84.endif 84.endif
85.ifndef LIBCRTEND 85.ifndef LIBCRTEND
86LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crtn.o 86LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crtn.o
87.MADE: ${LIBCRTEND} 87.MADE: ${LIBCRTEND}
88.endif 88.endif
89_SHLINKER= ${SHLINKDIR}/ld.elf_so 89_SHLINKER= ${SHLINKDIR}/ld.elf_so
90 90
91.ifndef LIBCRT0 91.ifndef LIBCRT0
92LIBCRT0= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crt0.o 92LIBCRT0= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crt0.o
93.MADE: ${LIBCRT0} 93.MADE: ${LIBCRT0}
94.endif 94.endif
95 95
96.ifndef LIBCRTI 96.ifndef LIBCRTI
97LIBCRTI= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o 97LIBCRTI= ${DESTDIR}/usr/lib/${MLIBDIR:D${MLIBDIR}/}crti.o
98.MADE: ${LIBCRTI} 98.MADE: ${LIBCRTI}
99.endif 99.endif
100 100
101##### Installed system library definitions 101##### Installed system library definitions
102# 102#
103# E.g. 103# E.g.
104# LIBC?=${DESTDIR}/usr/lib/libc.a 104# LIBC?=${DESTDIR}/usr/lib/libc.a
105# LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a 105# LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a
106# etc.. 106# etc..
107# NB: If you are a library here, add it in bsd.README 107# NB: If you are a library here, add it in bsd.README
108 108
109_LIBLIST=\ 109_LIBLIST=\
110 archive \ 110 archive \
111 asn1 \ 111 asn1 \
112 atf_c \ 112 atf_c \
113 atf_cxx \ 113 atf_cxx \
114 bind9 \ 114 bind9 \
115 blocklist \ 115 blocklist \
116 bluetooth \ 116 bluetooth \
117 bsdmalloc \ 117 bsdmalloc \
118 bz2 \ 118 bz2 \
119 c \ 119 c \
120 c_pic \ 120 c_pic \
121 cbor \ 121 cbor \
122 com_err \ 122 com_err \
123 compat \ 123 compat \
124 crypt \ 124 crypt \
125 crypto \ 125 crypto \
126 curses \ 126 curses \
127 cxx \ 127 cxx \
128 des \ 128 des \
129 dns \ 129 dns \
130 edit \ 130 edit \
131 event \ 131 event \
132 event_openssl \ 132 event_openssl \
133 event_pthreads \ 133 event_pthreads \
134 execinfo \ 134 execinfo \
135 expat \ 135 expat \
136 fetch \ 136 fetch \
137 fl \ 137 fl \
138 fido2 \ 138 fido2 \
139 form \ 139 form \
140 gcc \ 140 gcc \
141 gnuctf \ 141 gnuctf \
142 gnumalloc \ 142 gnumalloc \
143 gssapi \ 143 gssapi \
144 hdb \ 144 hdb \
145 heimbase \ 145 heimbase \
146 heimntlm \ 146 heimntlm \
147 hx509 \ 147 hx509 \
148 intl \ 148 intl \
149 ipsec \ 149 ipsec \
150 isc \ 150 isc \
151 isccc \ 151 isccc \
152 isccfg \ 152 isccfg \
153 kadm5clnt \ 153 kadm5clnt \
154 kadm5srv \ 154 kadm5srv \
155 kafs \ 155 kafs \
156 krb5 \ 156 krb5 \
157 kvm \ 157 kvm \
158 l \ 158 l \
159 lber \ 159 lber \
160 ldap \ 160 ldap \
161 ldap_r \ 161 ldap_r \
162 lua \ 162 lua \
163 m \ 163 m \
164 magic \ 164 magic \
165 menu \ 165 menu \
166 netpgpverify \ 166 netpgpverify \
167 ns \ 167 ns \
168 objc \ 168 objc \
169 ossaudio \ 169 ossaudio \
170 panel \ 170 panel \
171 pam \ 171 pam \
172 pcap \ 172 pcap \
173 pci \ 173 pci \
174 posix \ 174 posix \
175 pthread \ 175 pthread \
176 puffs \ 176 puffs \
177 quota \ 177 quota \
178 radius \ 178 radius \
179 refuse \ 179 refuse \
180 resolv \ 180 resolv \
181 rmt \ 181 rmt \
182 roken \ 182 roken \
183 rpcsvc \ 183 rpcsvc \
184 rt \ 184 rt \
185 rump \ 185 rump \
186 rumpfs_cd9660 \ 186 rumpfs_cd9660 \
187 rumpfs_efs \ 187 rumpfs_efs \
188 rumpfs_ext2fs \ 188 rumpfs_ext2fs \
189 rumpfs_ffs \ 189 rumpfs_ffs \
190 rumpfs_hfs \ 190 rumpfs_hfs \
191 rumpfs_lfs \ 191 rumpfs_lfs \
192 rumpfs_msdos \ 192 rumpfs_msdos \
193 rumpfs_nfs \ 193 rumpfs_nfs \
194 rumpfs_ntfs \ 194 rumpfs_ntfs \
195 rumpfs_syspuffs \ 195 rumpfs_syspuffs \
196 rumpfs_tmpfs \ 196 rumpfs_tmpfs \
197 rumpfs_udf \ 197 rumpfs_udf \
198 rumpuser \ 198 rumpuser \
199 saslc \ 199 saslc \
200 skey \ 200 skey \
201 sl \ 201 sl \
202 sqlite3 \ 202 sqlite3 \
203 ssh \ 203 ssh \
204 ssl \ 204 ssl \
205 stdc++ \ 205 stdc++ \
206 supc++ \ 206 supc++ \
207 terminfo \ 207 terminfo \
208 tre \ 208 tre \
209 unbound \ 209 unbound \
210 usbhid \ 210 usbhid \
211 util \ 211 util \
212 wind \ 212 wind \
213 wrap \ 213 wrap \
214 y \ 214 y \
215 z  215 z
216 216
217.for _lib in ${_LIBLIST} 217.for _lib in ${_LIBLIST}
218.ifndef LIB${_lib:tu} 218.ifndef LIB${_lib:tu}
219LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib:S/xx/++/:S/atf_c/atf-c/}.a 219LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib:S/xx/++/:S/atf_c/atf-c/}.a
220.MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded 220.MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded
221.endif 221.endif
222.endfor 222.endfor
223 223
224.if (${MKKERBEROS} != "no") 224.if (${MKKERBEROS} != "no")
225# Kerberos5 applications 225# Kerberos5 applications
226LIBKRB5_LDADD+= -lkrb5 -lcom_err \ 226LIBKRB5_LDADD+= -lkrb5 -lcom_err \
227 -lhx509 -lcrypto -lasn1 \ 227 -lhx509 -lcrypto -lasn1 \
228 -lwind -lheimbase -lcom_err -lroken \ 228 -lwind -lheimbase -lcom_err -lroken \
229 -lsqlite3 -lcrypt -lutil 229 -lsqlite3 -lm -lcrypt -lutil
230LIBKRB5_DPADD+= ${LIBKRB5} ${LIBCOM_ERR} \ 230LIBKRB5_DPADD+= ${LIBKRB5} ${LIBCOM_ERR} \
231 ${LIBHX509} ${LIBCRYPTO} ${LIBASN1} \ 231 ${LIBHX509} ${LIBCRYPTO} ${LIBASN1} \
232 ${LIBWIND} ${LIBHEIMBASE} ${LIBCOM_ERR} ${LIBROKEN} \ 232 ${LIBWIND} ${LIBHEIMBASE} ${LIBCOM_ERR} ${LIBROKEN} \
233 ${LIBSQLITE3} ${LIBCRYPT} ${LIBUTIL} 233 ${LIBSQLITE3} ${LIBM} ${LIBCRYPT} ${LIBUTIL}
234.endif 234.endif
235 235
236# PAM applications, if linked statically, need more libraries 236# PAM applications, if linked statically, need more libraries
237.if (${MKPIC} == "no") 237.if (${MKPIC} == "no")
238PAM_STATIC_LDADD+= -lssh 238PAM_STATIC_LDADD+= -lssh
239PAM_STATIC_DPADD+= ${LIBSSH} 239PAM_STATIC_DPADD+= ${LIBSSH}
240.if (${MKKERBEROS} != "no") 240.if (${MKKERBEROS} != "no")
241PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lwind -lasn1 \ 241PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lwind -lasn1 \
242 -lroken -lcom_err -lheimbase -lcrypto -lsqlite3 242 -lroken -lcom_err -lheimbase -lcrypto -lsqlite3 -lm
243PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBWIND} ${LIBASN1} \ 243PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBWIND} ${LIBASN1} \
244 ${LIBROKEN} ${LIBCOM_ERR} ${LIBHEIMBASE} ${LIBCRYPTO} ${LIBSQLITE3} 244 ${LIBROKEN} ${LIBCOM_ERR} ${LIBHEIMBASE} ${LIBCRYPTO} ${LIBSQLITE3} \
 245 ${LIBM}
245.endif 246.endif
246.if (${MKSKEY} != "no") 247.if (${MKSKEY} != "no")
247PAM_STATIC_LDADD+= -lskey 248PAM_STATIC_LDADD+= -lskey
248PAM_STATIC_DPADD+= ${LIBSKEY} 249PAM_STATIC_DPADD+= ${LIBSKEY}
249.endif 250.endif
250PAM_STATIC_LDADD+= -lradius -lcrypt -lrpcsvc -lutil 251PAM_STATIC_LDADD+= -lradius -lcrypt -lrpcsvc -lutil
251PAM_STATIC_DPADD+= ${LIBRADIUS} ${LIBCRYPT} ${LIBRPCSVC} ${LIBUTIL} 252PAM_STATIC_DPADD+= ${LIBRADIUS} ${LIBCRYPT} ${LIBRPCSVC} ${LIBUTIL}
252.else 253.else
253PAM_STATIC_LDADD= 254PAM_STATIC_LDADD=
254PAM_STATIC_DPADD= 255PAM_STATIC_DPADD=
255.endif 256.endif
256 257
257# NB: If you are a library here, add it in bsd.README 258# NB: If you are a library here, add it in bsd.README
258# This list is sorted with -f so that it matches the order in bsd.README 259# This list is sorted with -f so that it matches the order in bsd.README
259_X11LIBLIST= dps fntstubs fontcache fontconfig fontenc freetype FS GL GLU \ 260_X11LIBLIST= dps fntstubs fontcache fontconfig fontenc freetype FS GL GLU \
260 ICE lbxutil SM X11 X11_xcb Xau Xaw xcb Xdmcp Xext Xfont Xfont2 Xft Xi \ 261 ICE lbxutil SM X11 X11_xcb Xau Xaw xcb Xdmcp Xext Xfont Xfont2 Xft Xi \
261 Xinerama xkbfile Xmu Xmuu Xpm Xrandr Xrender Xss Xt XTrap Xtst Xv Xxf86dga \ 262 Xinerama xkbfile Xmu Xmuu Xpm Xrandr Xrender Xss Xt XTrap Xtst Xv Xxf86dga \
262 Xxf86misc Xxf86vm Xcomposite Xdamage Xfixes 263 Xxf86misc Xxf86vm Xcomposite Xdamage Xfixes
263 264
264.for _lib in ${_X11LIBLIST} 265.for _lib in ${_X11LIBLIST}
265.ifndef LIB${_lib:tu} 266.ifndef LIB${_lib:tu}
266LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR}/lib${_lib}.a 267LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR}/lib${_lib}.a
267.MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded 268.MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded
268.endif 269.endif
269.endfor 270.endfor
270 271
271# Ugly one-offs 272# Ugly one-offs
272LIBX11_XCB= ${DESTDIR}${X11USRLIBDIR}/libX11-xcb.a 273LIBX11_XCB= ${DESTDIR}${X11USRLIBDIR}/libX11-xcb.a
273LIBXCB= ${DESTDIR}${X11USRLIBDIR}/libxcb.a 274LIBXCB= ${DESTDIR}${X11USRLIBDIR}/libxcb.a
274 275
275.if defined(RESCUEDIR) 276.if defined(RESCUEDIR)
276CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" 277CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\"
277.endif 278.endif
278 279
279_PROGLDOPTS= 280_PROGLDOPTS=
280.if ${SHLINKDIR} != "/usr/libexec" # XXX: change or remove if ld.so moves 281.if ${SHLINKDIR} != "/usr/libexec" # XXX: change or remove if ld.so moves
281_PROGLDOPTS+= -Wl,-dynamic-linker=${_SHLINKER} 282_PROGLDOPTS+= -Wl,-dynamic-linker=${_SHLINKER}
282.endif 283.endif
283.if ${SHLIBDIR} != "/usr/lib" 284.if ${SHLIBDIR} != "/usr/lib"
284_PROGLDOPTS+= -Wl,-rpath,${SHLIBDIR} \ 285_PROGLDOPTS+= -Wl,-rpath,${SHLIBDIR} \
285 -L=${SHLIBDIR} 286 -L=${SHLIBDIR}
286.elif ${SHLIBINSTALLDIR} != "/usr/lib" 287.elif ${SHLIBINSTALLDIR} != "/usr/lib"
287_PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ 288_PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \
288 -L=${SHLIBINSTALLDIR} 289 -L=${SHLIBINSTALLDIR}
289.endif 290.endif
290 291
291__proginstall: .USE 292__proginstall: .USE
292 ${_MKTARGET_INSTALL} 293 ${_MKTARGET_INSTALL}
293 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ 294 ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
294 ${STRIPFLAG} ${.ALLSRC} ${.TARGET} 295 ${STRIPFLAG} ${.ALLSRC} ${.TARGET}
295 296
296__progrumpinstall: .USE 297__progrumpinstall: .USE
297 ${_MKTARGET_INSTALL} 298 ${_MKTARGET_INSTALL}
298 ${INSTALL_FILE} -o ${RUMPBINOWN} -g ${RUMPBINGRP} -m ${RUMPBINMODE} \ 299 ${INSTALL_FILE} -o ${RUMPBINOWN} -g ${RUMPBINGRP} -m ${RUMPBINMODE} \
299 ${STRIPFLAG} ${.ALLSRC} ${.TARGET} 300 ${STRIPFLAG} ${.ALLSRC} ${.TARGET}
300 301
301__progdebuginstall: .USE 302__progdebuginstall: .USE
302 ${_MKTARGET_INSTALL} 303 ${_MKTARGET_INSTALL}
303 ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ 304 ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \
304 ${.ALLSRC} ${.TARGET} 305 ${.ALLSRC} ${.TARGET}
305 306
306 307
307 308
308# 309#
309# Backwards compatibility with Makefiles that assume that bsd.prog.mk 310# Backwards compatibility with Makefiles that assume that bsd.prog.mk
310# can only build a single binary. 311# can only build a single binary.
311# 312#
312 313
313_APPEND_MANS=yes 314_APPEND_MANS=yes
314_APPEND_SRCS=yes 315_APPEND_SRCS=yes
315 316
316_CCLINKFLAGS= 317_CCLINKFLAGS=
317 318
318.if defined(PROG_CXX) 319.if defined(PROG_CXX)
319PROG= ${PROG_CXX} 320PROG= ${PROG_CXX}
320_CCLINK= ${CXX} ${_CCLINKFLAGS} 321_CCLINK= ${CXX} ${_CCLINKFLAGS}
321.endif 322.endif
322 323
323.if defined(RUMPPRG) 324.if defined(RUMPPRG)
324CPPFLAGS+= -D_KERNTYPES 325CPPFLAGS+= -D_KERNTYPES
325PROG= ${RUMPPRG} 326PROG= ${RUMPPRG}
326. ifndef CRUNCHEDPROG 327. ifndef CRUNCHEDPROG
327. if (${MKRUMP} != "no") 328. if (${MKRUMP} != "no")
328PROGS= ${RUMPPRG} rump.${RUMPPRG} 329PROGS= ${RUMPPRG} rump.${RUMPPRG}
329. else 330. else
330PROGS= ${RUMPPRG} 331PROGS= ${RUMPPRG}
331. endif 332. endif
332. if defined(SRCS) 333. if defined(SRCS)
333. if (${MKRUMP} != "no") 334. if (${MKRUMP} != "no")
334SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS} 335SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS}
335. endif 336. endif
336SRCS+= ${PROG}_hostops.c 337SRCS+= ${PROG}_hostops.c
337. else 338. else
338SRCS= ${PROG}.c ${PROG}_hostops.c 339SRCS= ${PROG}.c ${PROG}_hostops.c
339. if (${MKRUMP} != "no") 340. if (${MKRUMP} != "no")
340SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS} 341SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS}
341. endif 342. endif
342. endif 343. endif
343. if (${MKRUMP} != "no") 344. if (${MKRUMP} != "no")
344DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS} 345DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS}
345LDADD.rump.${PROG}+= ${LDADD.rump} -lrumpclient 346LDADD.rump.${PROG}+= ${LDADD.rump} -lrumpclient
346DPADD.rump.${PROG}+= ${DPADD.rump} ${LIBRUMPCLIENT} 347DPADD.rump.${PROG}+= ${DPADD.rump} ${LIBRUMPCLIENT}
347MAN.rump.${PROG}= # defined but feeling empty 348MAN.rump.${PROG}= # defined but feeling empty
348_RUMPINSTALL.rump.${PROG}=# defined 349_RUMPINSTALL.rump.${PROG}=# defined
349. endif 350. endif
350. else # CRUNCHEDPROG 351. else # CRUNCHEDPROG
351PROGS= ${PROG} 352PROGS= ${PROG}
352CPPFLAGS+= -DCRUNCHOPS 353CPPFLAGS+= -DCRUNCHOPS
353. endif 354. endif
354.endif 355.endif
355 356
356.if defined(PROG) 357.if defined(PROG)
357_CCLINK?= ${CC} ${_CCLINKFLAGS} 358_CCLINK?= ${CC} ${_CCLINKFLAGS}
358. if defined(MAN) 359. if defined(MAN)
359MAN.${PROG}= ${MAN} 360MAN.${PROG}= ${MAN}
360_APPEND_MANS= no 361_APPEND_MANS= no
361. endif 362. endif
362. if !defined(OBJS) 363. if !defined(OBJS)
363OBJS= ${OBJS.${PROG}} 364OBJS= ${OBJS.${PROG}}
364. endif 365. endif
365. if defined(PROGNAME) 366. if defined(PROGNAME)
366PROGNAME.${PROG}= ${PROGNAME} 367PROGNAME.${PROG}= ${PROGNAME}
367. endif 368. endif
368. if defined(SRCS) 369. if defined(SRCS)
369SRCS.${PROG}= ${SRCS} 370SRCS.${PROG}= ${SRCS}
370_APPEND_SRCS= no 371_APPEND_SRCS= no
371. endif 372. endif
372.endif 373.endif
373 374
374# Turn the single-program PROG and PROG_CXX variables into their multi-word 375# Turn the single-program PROG and PROG_CXX variables into their multi-word
375# counterparts, PROGS and PROGS_CXX. 376# counterparts, PROGS and PROGS_CXX.
376.if !defined(RUMPPRG) 377.if !defined(RUMPPRG)
377. if defined(PROG_CXX) && !defined(PROGS_CXX) 378. if defined(PROG_CXX) && !defined(PROGS_CXX)
378PROGS_CXX= ${PROG_CXX} 379PROGS_CXX= ${PROG_CXX}
379. elif defined(PROG) && !defined(PROGS) 380. elif defined(PROG) && !defined(PROGS)
380PROGS= ${PROG} 381PROGS= ${PROG}
381. endif 382. endif
382.endif 383.endif
383 384
384##### Libraries that this may depend upon. 385##### Libraries that this may depend upon.
385.if defined(PROGDPLIBS) # { 386.if defined(PROGDPLIBS) # {
386.for _lib _dir in ${PROGDPLIBS} 387.for _lib _dir in ${PROGDPLIBS}
387.if !defined(BINDO.${_lib}) 388.if !defined(BINDO.${_lib})
388PROGDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR} 389PROGDO.${_lib}!= cd "${_dir}" && ${PRINTOBJDIR}
389.MAKEOVERRIDES+=PROGDO.${_lib} 390.MAKEOVERRIDES+=PROGDO.${_lib}
390.endif 391.endif
391LDADD+= -L${PROGDO.${_lib}} -l${_lib} 392LDADD+= -L${PROGDO.${_lib}} -l${_lib}
392.if exists(${PROGDO.${_lib}}/lib${_lib}_pic.a) 393.if exists(${PROGDO.${_lib}}/lib${_lib}_pic.a)
393DPADD+= ${PROGDO.${_lib}}/lib${_lib}_pic.a 394DPADD+= ${PROGDO.${_lib}}/lib${_lib}_pic.a
394.elif exists(${PROGDO.${_lib}}/lib${_lib}.so) 395.elif exists(${PROGDO.${_lib}}/lib${_lib}.so)
395DPADD+= ${PROGDO.${_lib}}/lib${_lib}.so 396DPADD+= ${PROGDO.${_lib}}/lib${_lib}.so
396.else 397.else
397DPADD+= ${PROGDO.${_lib}}/lib${_lib}.a 398DPADD+= ${PROGDO.${_lib}}/lib${_lib}.a
398.endif 399.endif
399.endfor 400.endfor
400.endif # } 401.endif # }
401# 402#
402# Per-program definitions and targets. 403# Per-program definitions and targets.
403# 404#
404 405
405_CCLINK.CDEFAULT= ${CC} ${_CCLINKFLAGS} 406_CCLINK.CDEFAULT= ${CC} ${_CCLINKFLAGS}
406# Definitions specific to C programs. 407# Definitions specific to C programs.
407.for _P in ${PROGS} 408.for _P in ${PROGS}
408SRCS.${_P}?= ${_P}.c 409SRCS.${_P}?= ${_P}.c
409_CCLINK.${_P}= ${CC} ${_CCLINKFLAGS} 410_CCLINK.${_P}= ${CC} ${_CCLINKFLAGS}
410_CFLAGS.${_P}= ${CFLAGS} ${CPUFLAGS} 411_CFLAGS.${_P}= ${CFLAGS} ${CPUFLAGS}
411_CPPFLAGS.${_P}= ${CPPFLAGS} 412_CPPFLAGS.${_P}= ${CPPFLAGS}
412_COPTS.${_P}= ${COPTS} 413_COPTS.${_P}= ${COPTS}
413.endfor 414.endfor
414 415
415_CCLINK.CXXDEFAULT= ${CXX} ${_CCLINKFLAGS} 416_CCLINK.CXXDEFAULT= ${CXX} ${_CCLINKFLAGS}
416# Definitions specific to C++ programs. 417# Definitions specific to C++ programs.
417.for _P in ${PROGS_CXX} 418.for _P in ${PROGS_CXX}
418SRCS.${_P}?= ${_P}.cc 419SRCS.${_P}?= ${_P}.cc
419_CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS} 420_CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS}
420.endfor 421.endfor
421 422
422# Language-independent definitions. 423# Language-independent definitions.
423.for _P in ${PROGS} ${PROGS_CXX} # { 424.for _P in ${PROGS} ${PROGS_CXX} # {
424 425
425BINDIR.${_P}?= ${BINDIR} 426BINDIR.${_P}?= ${BINDIR}
426PROGNAME.${_P}?= ${_P} 427PROGNAME.${_P}?= ${_P}
427 428
428.if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) && !commands(${_P}) && \ 429.if ${MKDEBUG:Uno} != "no" && !defined(NODEBUG) && !commands(${_P}) && \
429 empty(SRCS.${_P}:M*.sh) 430 empty(SRCS.${_P}:M*.sh)
430_PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug 431_PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug
431.endif 432.endif
432 433
433# paxctl specific arguments 434# paxctl specific arguments
434 435
435.if defined(PAXCTL_FLAGS) 436.if defined(PAXCTL_FLAGS)
436PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS} 437PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS}
437.endif 438.endif
438 439
439.if ${MKSANITIZER:Uno} == "yes" && \ 440.if ${MKSANITIZER:Uno} == "yes" && \
440 (${USE_SANITIZER} == "address" || ${USE_SANITIZER} == "thread" || \ 441 (${USE_SANITIZER} == "address" || ${USE_SANITIZER} == "thread" || \
441 ${USE_SANITIZER} == "memory") 442 ${USE_SANITIZER} == "memory")
442PAXCTL_FLAGS.${_P}= +a 443PAXCTL_FLAGS.${_P}= +a
443.endif 444.endif
444 445
445##### PROG specific flags. 446##### PROG specific flags.
446 447
447_DPADD.${_P}= ${DPADD} ${DPADD.${_P}} 448_DPADD.${_P}= ${DPADD} ${DPADD.${_P}}
448_LDADD.${_P}= ${LDADD} ${LDADD.${_P}} 449_LDADD.${_P}= ${LDADD} ${LDADD.${_P}}
449_LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}} 450_LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}}
450.if ${MKSANITIZER} != "yes" 451.if ${MKSANITIZER} != "yes"
451# Sanitizers don't support static build. 452# Sanitizers don't support static build.
452_LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}} 453_LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}}
453.endif 454.endif
454 455
455##### Build and install rules 456##### Build and install rules
456.if !empty(_APPEND_SRCS:M[Yy][Ee][Ss]) 457.if !empty(_APPEND_SRCS:M[Yy][Ee][Ss])
457SRCS+= ${SRCS.${_P}} # For bsd.dep.mk 458SRCS+= ${SRCS.${_P}} # For bsd.dep.mk
458.endif 459.endif
459 460
460_YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}} 461_YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}}
461 462
462DPSRCS+= ${_YPSRCS.${_P}} 463DPSRCS+= ${_YPSRCS.${_P}}
463CLEANFILES+= ${_YPSRCS.${_P}} 464CLEANFILES+= ${_YPSRCS.${_P}}
464 465
465.if !empty(SRCS.${_P}:N*.h:N*.sh:N*.fth) 466.if !empty(SRCS.${_P}:N*.h:N*.sh:N*.fth)
466OBJS.${_P}+= ${SRCS.${_P}:N*.h:N*.sh:N*.fth:R:S/$/.o/g} 467OBJS.${_P}+= ${SRCS.${_P}:N*.h:N*.sh:N*.fth:R:S/$/.o/g}
467LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_P}:M*.c:.c=.ln} 468LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_P}:M*.c:.c=.ln}
468.endif 469.endif
469 470
470.if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # { 471.if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # {
471.NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}} 472.NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}}
472 473
473.if (defined(USE_COMBINE) && ${USE_COMBINE} != "no" && !commands(${_P}) \ 474.if (defined(USE_COMBINE) && ${USE_COMBINE} != "no" && !commands(${_P}) \
474 && (${_CCLINK.${_P}} == ${_CCLINK.CDEFAULT} \ 475 && (${_CCLINK.${_P}} == ${_CCLINK.CDEFAULT} \
475 || ${_CCLINK.${_P}} == ${_CCLINK.CXXDEFAULT}) \ 476 || ${_CCLINK.${_P}} == ${_CCLINK.CXXDEFAULT}) \
476 && !defined(NOCOMBINE.${_P}) && !defined(NOCOMBINE)) 477 && !defined(NOCOMBINE.${_P}) && !defined(NOCOMBINE))
477.for f in ${SRCS.${_P}:N*.h:N*.sh:N*.fth:C/\.[yl]$/.c/g} 478.for f in ${SRCS.${_P}:N*.h:N*.sh:N*.fth:C/\.[yl]$/.c/g}
478#_XFLAGS.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} \ 479#_XFLAGS.$f := ${CPPFLAGS.$f:D1} ${CPUFLAGS.$f:D2} \
479# ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5} 480# ${COPTS.$f:D3} ${OBJCOPTS.$f:D4} ${CXXFLAGS.$f:D5}
480.if (${CPPFLAGS.$f:D1} == "1" || ${CPUFLAGS.$f:D2} == "2" \ 481.if (${CPPFLAGS.$f:D1} == "1" || ${CPUFLAGS.$f:D2} == "2" \
481 || ${COPTS.$f:D3} == "3" || ${OBJCOPTS.$f:D4} == "4" \ 482 || ${COPTS.$f:D3} == "3" || ${OBJCOPTS.$f:D4} == "4" \
482 || ${CXXFLAGS.$f:D5} == "5") \ 483 || ${CXXFLAGS.$f:D5} == "5") \
483 || ("${f:M*.[cyl]}" == "" || commands(${f:R:S/$/.o/})) 484 || ("${f:M*.[cyl]}" == "" || commands(${f:R:S/$/.o/}))
484XOBJS.${_P}+= ${f:R:S/$/.o/} 485XOBJS.${_P}+= ${f:R:S/$/.o/}
485.else 486.else
486XSRCS.${_P}+= ${f} 487XSRCS.${_P}+= ${f}
487NODPSRCS+= ${f} 488NODPSRCS+= ${f}
488.endif 489.endif
489.endfor 490.endfor
490 491
491${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${XOBJS.${_P}} ${SRCS.${_P}} \ 492${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${XOBJS.${_P}} ${SRCS.${_P}} \
492 ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${_DPADD.${_P}} 493 ${DPSRCS} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${_DPADD.${_P}}
493 ${_MKTARGET_LINK} 494 ${_MKTARGET_LINK}
494.if defined(DESTDIR) 495.if defined(DESTDIR)
495 ${_CCLINK.${_P}} -Wl,-nostdlib \ 496 ${_CCLINK.${_P}} -Wl,-nostdlib \
496 ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ 497 ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \
497 -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \ 498 -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ \
498 -MD --combine ${_CPPFLAGS.${_P}} ${_CFLAGS.${_P}} ${_COPTS.${_P}} \ 499 -MD --combine ${_CPPFLAGS.${_P}} ${_CFLAGS.${_P}} ${_COPTS.${_P}} \
499 ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ 500 ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \
500 ${_LDADD.${_P}} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib 501 ${_LDADD.${_P}} -L${_GCC_LIBGCCDIR} -L${DESTDIR}/usr/lib
501.else 502.else
502 ${_CCLINK.${_P}} ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \ 503 ${_CCLINK.${_P}} ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} ${_PROGLDOPTS} \
503 -MD --combine ${_CPPFLAGS.${_P}} ${_COPTS.${_P}} 504 -MD --combine ${_CPPFLAGS.${_P}} ${_COPTS.${_P}}
504 ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \ 505 ${XSRCS.${_P}:@.SRC.@${.ALLSRC:M*.c:M*${.SRC.}}@:O:u} ${XOBJS.${_P}} \
505 ${_LDADD.${_P}} 506 ${_LDADD.${_P}}
506.endif # defined(DESTDIR) 507.endif # defined(DESTDIR)
507.if defined(CTFMERGE) 508.if defined(CTFMERGE)
508 ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} 509 ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}}
509.endif 510.endif
510.if defined(PAXCTL_FLAGS.${_P}) 511.if defined(PAXCTL_FLAGS.${_P})
511 ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} 512 ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET}
512.endif 513.endif
513.if ${MKSTRIPIDENT} != "no" 514.if ${MKSTRIPIDENT} != "no"
514 ${OBJCOPY} -R .ident ${.TARGET} 515 ${OBJCOPY} -R .ident ${.TARGET}
515.endif 516.endif
516 517
517CLEANFILES+= ${_P}.d 518CLEANFILES+= ${_P}.d
518.if exists(${_P}.d) 519.if exists(${_P}.d)
519.include "${_P}.d" # include -MD depend for program. 520.include "${_P}.d" # include -MD depend for program.
520.endif 521.endif
521.else # USE_COMBINE 522.else # USE_COMBINE
522 523
523${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} 524${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS}
524 525
525${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} \ 526${_P}: .gdbinit ${LIBCRT0} ${LIBCRTI} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} \
526 ${LIBCRTEND} ${_DPADD.${_P}} 527 ${LIBCRTEND} ${_DPADD.${_P}}
527.if !commands(${_P}) 528.if !commands(${_P})
528 ${_MKTARGET_LINK} 529 ${_MKTARGET_LINK}
529 ${_CCLINK.${_P}} \ 530 ${_CCLINK.${_P}} \
530 ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ 531 ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \
531 ${OBJS.${_P}} ${_PROGLDOPTS} ${_LDADD.${_P}} 532 ${OBJS.${_P}} ${_PROGLDOPTS} ${_LDADD.${_P}}
532.if defined(CTFMERGE) 533.if defined(CTFMERGE)
533 ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} 534 ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}}
534.endif 535.endif
535.if defined(PAXCTL_FLAGS.${_P}) 536.if defined(PAXCTL_FLAGS.${_P})
536 ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} 537 ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET}
537.endif 538.endif
538.if ${MKSTRIPIDENT} != "no" 539.if ${MKSTRIPIDENT} != "no"
539 ${OBJCOPY} -R .ident ${.TARGET} 540 ${OBJCOPY} -R .ident ${.TARGET}
540.endif 541.endif
541.endif # !commands(${_P}) 542.endif # !commands(${_P})
542.endif # USE_COMBINE 543.endif # USE_COMBINE
543 544
544${_P}.ro: ${OBJS.${_P}} ${_DPADD.${_P}} 545${_P}.ro: ${OBJS.${_P}} ${_DPADD.${_P}}
545 ${_MKTARGET_LINK} 546 ${_MKTARGET_LINK}
546 ${CC} ${LDFLAGS:N-pie} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}} 547 ${CC} ${LDFLAGS:N-pie} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}}
547 548
548.if defined(_PROGDEBUG.${_P}) 549.if defined(_PROGDEBUG.${_P})
549${_PROGDEBUG.${_P}}: ${_P} 550${_PROGDEBUG.${_P}}: ${_P}
550 ${_MKTARGET_CREATE} 551 ${_MKTARGET_CREATE}
551 ( ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \ 552 ( ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \
552 && ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ 553 && ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \
553 --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \ 554 --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \
554 ) || (rm -f ${_PROGDEBUG.${_P}}; false) 555 ) || (rm -f ${_PROGDEBUG.${_P}}; false)
555.endif 556.endif
556 557
557.endif # defined(OBJS.${_P}) && !empty(OBJS.${_P}) # } 558.endif # defined(OBJS.${_P}) && !empty(OBJS.${_P}) # }
558 559
559.if !defined(MAN.${_P}) 560.if !defined(MAN.${_P})
560MAN.${_P}= ${_P}.1 561MAN.${_P}= ${_P}.1
561.endif # !defined(MAN.${_P}) 562.endif # !defined(MAN.${_P})
562.if !empty(_APPEND_MANS:M[Yy][Ee][Ss]) 563.if !empty(_APPEND_MANS:M[Yy][Ee][Ss])
563MAN+= ${MAN.${_P}} 564MAN+= ${MAN.${_P}}
564.endif 565.endif
565 566
566realall: ${_P} ${_PROGDEBUG.${_P}} 567realall: ${_P} ${_PROGDEBUG.${_P}}
567 568
568CLEANFILES+= ${_P} ${_PROGDEBUG.${_P}} 569CLEANFILES+= ${_P} ${_PROGDEBUG.${_P}}
569 570
570.if defined(OBJS.${_P}) && !empty(OBJS.${_P}) 571.if defined(OBJS.${_P}) && !empty(OBJS.${_P})
571CLEANFILES+= ${OBJS.${_P}} ${LOBJS.${_P}} 572CLEANFILES+= ${OBJS.${_P}} ${LOBJS.${_P}}
572.endif 573.endif
573 574
574_PROG_INSTALL+= proginstall-${_P} 575_PROG_INSTALL+= proginstall-${_P}
575 576
576.if !target(proginstall-${_P}) # { 577.if !target(proginstall-${_P}) # {
577proginstall-${_P}:: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ 578proginstall-${_P}:: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \
578 ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} 579 ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}}
579.PRECIOUS: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ 580.PRECIOUS: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \
580 ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} 581 ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}}
581 582
582.if ${MKUPDATE} == "no" 583.if ${MKUPDATE} == "no"
583.if defined(_RUMPINSTALL.${_P}) 584.if defined(_RUMPINSTALL.${_P})
584${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __progrumpinstall 585${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __progrumpinstall
585.else 586.else
586${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __proginstall 587${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __proginstall
587.endif 588.endif
588.if !defined(BUILD) && !make(all) && !make(${_P}) 589.if !defined(BUILD) && !make(all) && !make(${_P})
589${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! .MADE 590${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! .MADE
590.endif 591.endif
591.if defined(_PROGDEBUG.${_P}) 592.if defined(_PROGDEBUG.${_P})
592${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! ${_PROGDEBUG.${_P}} __progdebuginstall 593${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! ${_PROGDEBUG.${_P}} __progdebuginstall
593.if !defined(BUILD) && !make(all) && !make(${_P}) 594.if !defined(BUILD) && !make(all) && !make(${_P})
594${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! .MADE 595${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! .MADE
595.endif 596.endif
596.endif # define(_PROGDEBUG.${_P}) 597.endif # define(_PROGDEBUG.${_P})
597.else # MKUPDATE != no 598.else # MKUPDATE != no
598.if defined(_RUMPINSTALL.${_P}) 599.if defined(_RUMPINSTALL.${_P})
599${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __progrumpinstall 600${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __progrumpinstall
600.else 601.else
601${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __proginstall 602${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __proginstall
602.endif 603.endif
603.if !defined(BUILD) && !make(all) && !make(${_P}) 604.if !defined(BUILD) && !make(all) && !make(${_P})
604${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: .MADE 605${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: .MADE
605.endif 606.endif
606.if defined(_PROGDEBUG.${_P}) 607.if defined(_PROGDEBUG.${_P})
607${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: ${_PROGDEBUG.${_P}} __progdebuginstall 608${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: ${_PROGDEBUG.${_P}} __progdebuginstall
608.if !defined(BUILD) && !make(all) && !make(${_P}) 609.if !defined(BUILD) && !make(all) && !make(${_P})
609${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: .MADE 610${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: .MADE
610.endif 611.endif
611.endif # defined(_PROGDEBUG.${_P}) 612.endif # defined(_PROGDEBUG.${_P})
612.endif # MKUPDATE != no 613.endif # MKUPDATE != no
613 614
614.endif # !target(proginstall-${_P}) # } 615.endif # !target(proginstall-${_P}) # }
615 616
616lint: lint-${_P} 617lint: lint-${_P}
617lint-${_P}: ${LOBJS.${_P}} 618lint-${_P}: ${LOBJS.${_P}}
618.if defined(LOBJS.${_P}) && !empty(LOBJS.${_P}) 619.if defined(LOBJS.${_P}) && !empty(LOBJS.${_P})
619 ${LINT} ${LINTFLAGS} ${_LDFLAGS.${_P}:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS.${_P}} ${_LDADD.${_P}} 620 ${LINT} ${LINTFLAGS} ${_LDFLAGS.${_P}:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS.${_P}} ${_LDADD.${_P}}
620.endif 621.endif
621 622
622.endfor # _P in ${PROGS} ${PROGS_CXX} # } 623.endfor # _P in ${PROGS} ${PROGS_CXX} # }
623 624
624.if defined(OBJS) && !empty(OBJS) && \ 625.if defined(OBJS) && !empty(OBJS) && \
625 (empty(PROGS) && empty(PROGS_CXX)) 626 (empty(PROGS) && empty(PROGS_CXX))
626CLEANFILES+= ${OBJS} ${LOBJS} 627CLEANFILES+= ${OBJS} ${LOBJS}
627.endif 628.endif
628 629
629.if !target(proginstall) 630.if !target(proginstall)
630proginstall:: ${_PROG_INSTALL} 631proginstall:: ${_PROG_INSTALL}
631.endif 632.endif
632.PHONY: proginstall 633.PHONY: proginstall
633 634
634 635
635 636
636realall: ${SCRIPTS} 637realall: ${SCRIPTS}
637.if defined(SCRIPTS) && !target(scriptsinstall) # { 638.if defined(SCRIPTS) && !target(scriptsinstall) # {
638SCRIPTSDIR?=${BINDIR} 639SCRIPTSDIR?=${BINDIR}
639SCRIPTSOWN?=${BINOWN} 640SCRIPTSOWN?=${BINOWN}
640SCRIPTSGRP?=${BINGRP} 641SCRIPTSGRP?=${BINGRP}
641SCRIPTSMODE?=${BINMODE} 642SCRIPTSMODE?=${BINMODE}
642 643
643scriptsinstall:: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} 644scriptsinstall:: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@}
644.PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} 645.PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@}
645 646
646__scriptinstall: .USE 647__scriptinstall: .USE
647 ${_MKTARGET_INSTALL} 648 ${_MKTARGET_INSTALL}
648 ${INSTALL_FILE} \ 649 ${INSTALL_FILE} \
649 -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \ 650 -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \
650 -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \ 651 -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \
651 -m ${SCRIPTSMODE_${.ALLSRC:T}:U${SCRIPTSMODE}} \ 652 -m ${SCRIPTSMODE_${.ALLSRC:T}:U${SCRIPTSMODE}} \
652 ${.ALLSRC} ${.TARGET} 653 ${.ALLSRC} ${.TARGET}
653 654
654.for S in ${SCRIPTS:O:u} 655.for S in ${SCRIPTS:O:u}
655.if ${MKUPDATE} == "no" 656.if ${MKUPDATE} == "no"
656${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! ${S} __scriptinstall 657${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! ${S} __scriptinstall
657.if !defined(BUILD) && !make(all) && !make(${S}) 658.if !defined(BUILD) && !make(all) && !make(${S})
658${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! .MADE 659${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! .MADE
659.endif 660.endif
660.else 661.else
661${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: ${S} __scriptinstall 662${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: ${S} __scriptinstall
662.if !defined(BUILD) && !make(all) && !make(${S}) 663.if !defined(BUILD) && !make(all) && !make(${S})
663${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: .MADE 664${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: .MADE
664.endif 665.endif
665.endif 666.endif
666.endfor 667.endfor
667.endif # } 668.endif # }
668 669
669.if !target(scriptsinstall) 670.if !target(scriptsinstall)
670scriptsinstall:: 671scriptsinstall::
671.endif 672.endif
672.PHONY: scriptsinstall 673.PHONY: scriptsinstall
673 674
674##### Pull in related .mk logic 675##### Pull in related .mk logic
675LINKSOWN?= ${BINOWN} 676LINKSOWN?= ${BINOWN}
676LINKSGRP?= ${BINGRP} 677LINKSGRP?= ${BINGRP}
677LINKSMODE?= ${BINMODE} 678LINKSMODE?= ${BINMODE}
678.include <bsd.man.mk> 679.include <bsd.man.mk>
679.include <bsd.nls.mk> 680.include <bsd.nls.mk>
680.include <bsd.files.mk> 681.include <bsd.files.mk>
681.include <bsd.inc.mk> 682.include <bsd.inc.mk>
682.include <bsd.links.mk> 683.include <bsd.links.mk>
683.include <bsd.sys.mk> 684.include <bsd.sys.mk>
684.include <bsd.dep.mk> 685.include <bsd.dep.mk>
685.include <bsd.clang-analyze.mk> 686.include <bsd.clang-analyze.mk>
686.include <bsd.clean.mk> 687.include <bsd.clean.mk>
687 688
688${TARGETS}: # ensure existence 689${TARGETS}: # ensure existence
689 690
690.endif # HOSTPROG 691.endif # HOSTPROG