| @@ -1,496 +1,496 @@ | | | @@ -1,496 +1,496 @@ |
1 | # $NetBSD: bsd.prog.mk,v 1.258 2011/02/06 01:08:37 joerg Exp $ | | 1 | # $NetBSD: bsd.prog.mk,v 1.259 2011/02/13 00:42:45 christos 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 | | | 9 | |
10 | # | | 10 | # |
11 | # Definitions and targets shared among all programs built by a single | | 11 | # Definitions and targets shared among all programs built by a single |
12 | # Makefile. | | 12 | # Makefile. |
13 | # | | 13 | # |
14 | | | 14 | |
15 | ##### Basic targets | | 15 | ##### Basic targets |
16 | realinstall: proginstall scriptsinstall | | 16 | realinstall: proginstall scriptsinstall |
17 | clean: cleanprog | | 17 | clean: cleanprog |
18 | | | 18 | |
19 | .gdbinit: | | 19 | .gdbinit: |
20 | rm -f .gdbinit | | 20 | rm -f .gdbinit |
21 | .if defined(DESTDIR) && !empty(DESTDIR) | | 21 | .if defined(DESTDIR) && !empty(DESTDIR) |
22 | echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit | | 22 | echo "set solib-absolute-prefix ${DESTDIR}" > .gdbinit |
23 | .else | | 23 | .else |
24 | touch .gdbinit | | 24 | touch .gdbinit |
25 | .endif | | 25 | .endif |
26 | .for __gdbinit in ${GDBINIT} | | 26 | .for __gdbinit in ${GDBINIT} |
27 | echo "source ${__gdbinit}" >> .gdbinit | | 27 | echo "source ${__gdbinit}" >> .gdbinit |
28 | .endfor | | 28 | .endfor |
29 | | | 29 | |
30 | cleanobjs: .PHONY | | 30 | cleanobjs: .PHONY |
31 | | | 31 | |
32 | cleanprog: .PHONY cleanobjs cleanextra | | 32 | cleanprog: .PHONY cleanobjs cleanextra |
33 | rm -f a.out [Ee]rrs mklog core *.core .gdbinit | | 33 | rm -f a.out [Ee]rrs mklog core *.core .gdbinit |
34 | | | 34 | |
35 | .if defined(SHAREDSTRINGS) | | 35 | .if defined(SHAREDSTRINGS) |
36 | CLEANFILES+=strings | | 36 | CLEANFILES+=strings |
37 | .c.o: | | 37 | .c.o: |
38 | ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - | | 38 | ${CC} -E ${CPPFLAGS} ${CFLAGS} ${.IMPSRC} | xstr -c - |
39 | @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} | | 39 | @${CC} ${CPPFLAGS} ${CFLAGS} -c x.c -o ${.TARGET} |
40 | @rm -f x.c | | 40 | @rm -f x.c |
41 | | | 41 | |
42 | .cc.o .cpp.o .cxx.o .C.o: | | 42 | .cc.o .cpp.o .cxx.o .C.o: |
43 | ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - | | 43 | ${CXX} -E ${CPPFLAGS} ${CXXFLAGS} ${.IMPSRC} | xstr -c - |
44 | @mv -f x.c x.cc | | 44 | @mv -f x.c x.cc |
45 | @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} | | 45 | @${CXX} ${CPPFLAGS} ${CXXFLAGS} -c x.cc -o ${.TARGET} |
46 | @rm -f x.cc | | 46 | @rm -f x.cc |
47 | .endif | | 47 | .endif |
48 | | | 48 | |
49 | .if defined(MKPIE) && (${MKPIE} != "no") | | 49 | .if defined(MKPIE) && (${MKPIE} != "no") |
50 | CFLAGS+= ${PIE_CFLAGS} | | 50 | CFLAGS+= ${PIE_CFLAGS} |
51 | AFLAGS+= ${PIE_AFLAGS} | | 51 | AFLAGS+= ${PIE_AFLAGS} |
52 | LDFLAGS+= ${PIE_LDFLAGS} | | 52 | LDFLAGS+= ${PIE_LDFLAGS} |
53 | .endif | | 53 | .endif |
54 | | | 54 | |
55 | ##### Default values | | 55 | ##### Default values |
56 | .if !defined(HOSTLIB) | | 56 | .if !defined(HOSTLIB) |
57 | .if empty(CPPFLAGS:M-nostdinc) | | 57 | .if empty(CPPFLAGS:M-nostdinc) |
58 | CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} | | 58 | CPPFLAGS+= ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include} |
59 | .endif | | 59 | .endif |
60 | .if empty(CXXFLAGS:M-nostdinc++) | | 60 | .if empty(CXXFLAGS:M-nostdinc++) |
61 | CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} | | 61 | CXXFLAGS+= ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++} |
62 | .endif | | 62 | .endif |
63 | .endif | | 63 | .endif |
64 | | | 64 | |
65 | CFLAGS+= ${COPTS} | | 65 | CFLAGS+= ${COPTS} |
66 | OBJCFLAGS+= ${OBJCOPTS} | | 66 | OBJCFLAGS+= ${OBJCOPTS} |
67 | MKDEP_SUFFIXES?= .o .ln | | 67 | MKDEP_SUFFIXES?= .o .ln |
68 | | | 68 | |
69 | # CTF preserve debug symbols | | 69 | # CTF preserve debug symbols |
70 | .if defined(MKDTRACE) && (${MKDTRACE} != "no") && (${CFLAGS:M-g} != "") | | 70 | .if defined(MKDTRACE) && (${MKDTRACE} != "no") && (${CFLAGS:M-g} != "") |
71 | CTFFLAGS+= -g | | 71 | CTFFLAGS+= -g |
72 | CTFMFLAGS+= -g | | 72 | CTFMFLAGS+= -g |
73 | .endif | | 73 | .endif |
74 | | | 74 | |
75 | # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o | | 75 | # ELF platforms depend on crti.o, crtbegin.o, crtend.o, and crtn.o |
76 | .ifndef LIBCRTBEGIN | | 76 | .ifndef LIBCRTBEGIN |
77 | LIBCRTBEGIN= ${DESTDIR}/usr/lib/crti.o ${_GCC_CRTBEGIN} | | 77 | LIBCRTBEGIN= ${DESTDIR}/usr/lib/crti.o ${_GCC_CRTBEGIN} |
78 | .MADE: ${LIBCRTBEGIN} | | 78 | .MADE: ${LIBCRTBEGIN} |
79 | .endif | | 79 | .endif |
80 | .ifndef LIBCRTEND | | 80 | .ifndef LIBCRTEND |
81 | LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/crtn.o | | 81 | LIBCRTEND= ${_GCC_CRTEND} ${DESTDIR}/usr/lib/crtn.o |
82 | .MADE: ${LIBCRTEND} | | 82 | .MADE: ${LIBCRTEND} |
83 | .endif | | 83 | .endif |
84 | _SHLINKER= ${SHLINKDIR}/ld.elf_so | | 84 | _SHLINKER= ${SHLINKDIR}/ld.elf_so |
85 | | | 85 | |
86 | .ifndef LIBCRT0 | | 86 | .ifndef LIBCRT0 |
87 | LIBCRT0= ${DESTDIR}/usr/lib/crt0.o | | 87 | LIBCRT0= ${DESTDIR}/usr/lib/crt0.o |
88 | .MADE: ${LIBCRT0} | | 88 | .MADE: ${LIBCRT0} |
89 | .endif | | 89 | .endif |
90 | | | 90 | |
91 | ##### Installed system library definitions | | 91 | ##### Installed system library definitions |
92 | # | | 92 | # |
93 | # E.g. | | 93 | # E.g. |
94 | # LIBC?=${DESTDIR}/usr/lib/libc.a | | 94 | # LIBC?=${DESTDIR}/usr/lib/libc.a |
95 | # LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a | | 95 | # LIBX11?=${DESTDIR}/usr/X11R7/lib/libX11.a |
96 | # etc.. | | 96 | # etc.. |
97 | | | 97 | |
98 | .for _lib in \ | | 98 | .for _lib in \ |
99 | archive asn1 bluetooth bsdmalloc bz2 c c_pic cdk com_err compat \ | | 99 | archive asn1 bluetooth bsdmalloc bz2 c c_pic cdk com_err compat \ |
100 | crypt crypto crypto_idea crypto_mdc2 crypto_rc5 \ | | 100 | crypt crypto crypto_idea crypto_mdc2 crypto_rc5 \ |
101 | curses dbm des edit event \ | | 101 | curses dbm des edit event \ |
102 | fetch form fl g2c gcc gnumalloc gssapi hdb heimntlm hx509 intl ipsec \ | | 102 | fetch form fl g2c gcc gnumalloc gssapi hdb heimntlm hx509 intl ipsec \ |
103 | kadm5clnt kadm5srv kafs krb5 kvm l lber ldap ldap_r lua \ | | 103 | kadm5clnt kadm5srv kafs krb5 kvm l lber ldap ldap_r lua \ |
104 | m magic menu objc ossaudio pam pcap pci pmc posix pthread pthread_dbg \ | | 104 | m magic menu objc ossaudio pam pcap pci pmc posix pthread pthread_dbg \ |
105 | puffs radius resolv rmt roken rpcsvc rt rump rumpuser skey sl ss \ | | 105 | puffs radius resolv rmt roken rpcsvc rt rump rumpuser saslc skey sl ss \ |
106 | ssh ssl termcap usbhid util wrap y z bind9 dns lwres isccfg isccc isc \ | | 106 | ssh ssl termcap usbhid util wrap y z bind9 dns lwres isccfg isccc isc \ |
107 | \ | | 107 | \ |
108 | rumpfs_cd9660fs rumpfs_efs rumpfs_ext2fs rumpfs_ffs rumpfs_hfs \ | | 108 | rumpfs_cd9660fs rumpfs_efs rumpfs_ext2fs rumpfs_ffs rumpfs_hfs \ |
109 | rumpfs_lfs rumpfs_msdosfs rumpfs_nfs rumpfs_ntfs rumpfs_syspuffs \ | | 109 | rumpfs_lfs rumpfs_msdosfs rumpfs_nfs rumpfs_ntfs rumpfs_syspuffs \ |
110 | rumpfs_tmpfs rumpfs_udf rumpfs_ufs | | 110 | rumpfs_tmpfs rumpfs_udf rumpfs_ufs |
111 | .ifndef LIB${_lib:tu} | | 111 | .ifndef LIB${_lib:tu} |
112 | LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib}.a | | 112 | LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib}.a |
113 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded | | 113 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded |
114 | .endif | | 114 | .endif |
115 | .endfor | | 115 | .endfor |
116 | | | 116 | |
117 | # PAM applications, if linked statically, need more libraries | | 117 | # PAM applications, if linked statically, need more libraries |
118 | .if (${MKPIC} == "no") | | 118 | .if (${MKPIC} == "no") |
119 | .if (${MKCRYPTO} != "no") | | 119 | .if (${MKCRYPTO} != "no") |
120 | PAM_STATIC_LDADD+= -lssh | | 120 | PAM_STATIC_LDADD+= -lssh |
121 | PAM_STATIC_DPADD+= ${LIBSSH} | | 121 | PAM_STATIC_DPADD+= ${LIBSSH} |
122 | .endif | | 122 | .endif |
123 | .if (${MKKERBEROS} != "no") | | 123 | .if (${MKKERBEROS} != "no") |
124 | PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lasn1 -lroken -lcom_err -lcrypto | | 124 | PAM_STATIC_LDADD+= -lkafs -lkrb5 -lhx509 -lasn1 -lroken -lcom_err -lcrypto |
125 | PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBASN1} ${LIBROKEN} \ | | 125 | PAM_STATIC_DPADD+= ${LIBKAFS} ${LIBKRB5} ${LIBHX509} ${LIBASN1} ${LIBROKEN} \ |
126 | ${LIBCOM_ERR} ${LIBCRYPTO} | | 126 | ${LIBCOM_ERR} ${LIBCRYPTO} |
127 | .endif | | 127 | .endif |
128 | .if (${MKSKEY} != "no") | | 128 | .if (${MKSKEY} != "no") |
129 | PAM_STATIC_LDADD+= -lskey | | 129 | PAM_STATIC_LDADD+= -lskey |
130 | PAM_STATIC_DPADD+= ${LIBSKEY} | | 130 | PAM_STATIC_DPADD+= ${LIBSKEY} |
131 | .endif | | 131 | .endif |
132 | PAM_STATIC_LDADD+= -lradius -lcrypt -lrpcsvc -lutil | | 132 | PAM_STATIC_LDADD+= -lradius -lcrypt -lrpcsvc -lutil |
133 | PAM_STATIC_DPADD+= ${LIBRADIUS} ${LIBCRYPT} ${LIBRPCSVC} ${LIBUTIL} | | 133 | PAM_STATIC_DPADD+= ${LIBRADIUS} ${LIBCRYPT} ${LIBRPCSVC} ${LIBUTIL} |
134 | .else | | 134 | .else |
135 | PAM_STATIC_LDADD= | | 135 | PAM_STATIC_LDADD= |
136 | PAM_STATIC_DPADD= | | 136 | PAM_STATIC_DPADD= |
137 | .endif | | 137 | .endif |
138 | | | 138 | |
139 | # These need + -> X transformations | | 139 | # These need + -> X transformations |
140 | .ifndef LIBSTDCXX | | 140 | .ifndef LIBSTDCXX |
141 | LIBSTDCXX= ${DESTDIR}/usr/lib/libstdc++.a | | 141 | LIBSTDCXX= ${DESTDIR}/usr/lib/libstdc++.a |
142 | .MADE: ${LIBSTDCXX} | | 142 | .MADE: ${LIBSTDCXX} |
143 | .endif | | 143 | .endif |
144 | | | 144 | |
145 | .ifndef LIBSUPCXX | | 145 | .ifndef LIBSUPCXX |
146 | LIBSUPCXX= ${DESTDIR}/usr/lib/libsupc++.a | | 146 | LIBSUPCXX= ${DESTDIR}/usr/lib/libsupc++.a |
147 | .MADE: ${LIBSUPCXX} | | 147 | .MADE: ${LIBSUPCXX} |
148 | .endif | | 148 | .endif |
149 | | | 149 | |
150 | .for _lib in \ | | 150 | .for _lib in \ |
151 | dps expat fntstubs fontcache fontconfig fontenc freetype FS \ | | 151 | dps expat fntstubs fontcache fontconfig fontenc freetype FS \ |
152 | GL GLU ICE lbxutil SM X11 Xau Xaw Xdmcp Xext Xfont Xft \ | | 152 | GL GLU ICE lbxutil SM X11 Xau Xaw Xdmcp Xext Xfont Xft \ |
153 | Xi Xinerama xkbfile Xmu Xmuu Xpm Xrandr Xrender Xss Xt \ | | 153 | Xi Xinerama xkbfile Xmu Xmuu Xpm Xrandr Xrender Xss Xt \ |
154 | XTrap Xtst Xv Xxf86dga Xxf86misc Xxf86vm | | 154 | XTrap Xtst Xv Xxf86dga Xxf86misc Xxf86vm |
155 | .ifndef LIB${_lib:tu} | | 155 | .ifndef LIB${_lib:tu} |
156 | LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR}/lib${_lib}.a | | 156 | LIB${_lib:tu}= ${DESTDIR}${X11USRLIBDIR}/lib${_lib}.a |
157 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded | | 157 | .MADE: ${LIB${_lib:tu}} # Note: ${DESTDIR} will be expanded |
158 | .endif | | 158 | .endif |
159 | .endfor | | 159 | .endfor |
160 | | | 160 | |
161 | .if defined(RESCUEDIR) | | 161 | .if defined(RESCUEDIR) |
162 | CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" | | 162 | CPPFLAGS+= -DRESCUEDIR=\"${RESCUEDIR}\" |
163 | .endif | | 163 | .endif |
164 | | | 164 | |
165 | _PROGLDOPTS= | | 165 | _PROGLDOPTS= |
166 | .if ${SHLINKDIR} != "/usr/libexec" # XXX: change or remove if ld.so moves | | 166 | .if ${SHLINKDIR} != "/usr/libexec" # XXX: change or remove if ld.so moves |
167 | _PROGLDOPTS+= -Wl,-dynamic-linker=${_SHLINKER} | | 167 | _PROGLDOPTS+= -Wl,-dynamic-linker=${_SHLINKER} |
168 | .endif | | 168 | .endif |
169 | .if ${SHLIBDIR} != "/usr/lib" | | 169 | .if ${SHLIBDIR} != "/usr/lib" |
170 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBDIR} \ | | 170 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBDIR} \ |
171 | -Wl,-rpath,${SHLIBDIR} \ | | 171 | -Wl,-rpath,${SHLIBDIR} \ |
172 | -L${DESTDIR}${SHLIBDIR} | | 172 | -L${DESTDIR}${SHLIBDIR} |
173 | .elif ${SHLIBINSTALLDIR} != "/usr/lib" | | 173 | .elif ${SHLIBINSTALLDIR} != "/usr/lib" |
174 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ | | 174 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}${SHLIBINSTALLDIR} \ |
175 | -L${DESTDIR}${SHLIBINSTALLDIR} | | 175 | -L${DESTDIR}${SHLIBINSTALLDIR} |
176 | .endif | | 176 | .endif |
177 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}/usr/lib \ | | 177 | _PROGLDOPTS+= -Wl,-rpath-link,${DESTDIR}/usr/lib \ |
178 | -L${DESTDIR}/usr/lib | | 178 | -L${DESTDIR}/usr/lib |
179 | | | 179 | |
180 | __proginstall: .USE | | 180 | __proginstall: .USE |
181 | ${_MKTARGET_INSTALL} | | 181 | ${_MKTARGET_INSTALL} |
182 | ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ | | 182 | ${INSTALL_FILE} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \ |
183 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} | | 183 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} |
184 | | | 184 | |
185 | __progrumpinstall: .USE | | 185 | __progrumpinstall: .USE |
186 | ${_MKTARGET_INSTALL} | | 186 | ${_MKTARGET_INSTALL} |
187 | ${INSTALL_FILE} -o ${RUMPBINOWN} -g ${RUMPBINGRP} -m ${RUMPBINMODE} \ | | 187 | ${INSTALL_FILE} -o ${RUMPBINOWN} -g ${RUMPBINGRP} -m ${RUMPBINMODE} \ |
188 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} | | 188 | ${STRIPFLAG} ${.ALLSRC} ${.TARGET} |
189 | | | 189 | |
190 | __progdebuginstall: .USE | | 190 | __progdebuginstall: .USE |
191 | ${_MKTARGET_INSTALL} | | 191 | ${_MKTARGET_INSTALL} |
192 | ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ | | 192 | ${INSTALL_FILE} -o ${DEBUGOWN} -g ${DEBUGGRP} -m ${DEBUGMODE} \ |
193 | ${.ALLSRC} ${.TARGET} | | 193 | ${.ALLSRC} ${.TARGET} |
194 | | | 194 | |
195 | | | 195 | |
196 | | | 196 | |
197 | # | | 197 | # |
198 | # Backwards compatibility with Makefiles that assume that bsd.prog.mk | | 198 | # Backwards compatibility with Makefiles that assume that bsd.prog.mk |
199 | # can only build a single binary. | | 199 | # can only build a single binary. |
200 | # | | 200 | # |
201 | | | 201 | |
202 | _APPEND_MANS=yes | | 202 | _APPEND_MANS=yes |
203 | _APPEND_SRCS=yes | | 203 | _APPEND_SRCS=yes |
204 | | | 204 | |
205 | _CCLINKFLAGS= | | 205 | _CCLINKFLAGS= |
206 | .if defined(DESTDIR) | | 206 | .if defined(DESTDIR) |
207 | _CCLINKFLAGS+= -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ | | 207 | _CCLINKFLAGS+= -B${_GCC_CRTDIR}/ -B${DESTDIR}/usr/lib/ |
208 | .endif | | 208 | .endif |
209 | | | 209 | |
210 | .if defined(PROG_CXX) | | 210 | .if defined(PROG_CXX) |
211 | PROG= ${PROG_CXX} | | 211 | PROG= ${PROG_CXX} |
212 | _CCLINK= ${CXX} ${_CCLINKFLAGS} | | 212 | _CCLINK= ${CXX} ${_CCLINKFLAGS} |
213 | .endif | | 213 | .endif |
214 | | | 214 | |
215 | .if defined(RUMPPRG) | | 215 | .if defined(RUMPPRG) |
216 | PROG= ${RUMPPRG} | | 216 | PROG= ${RUMPPRG} |
217 | .ifndef CRUNCHEDPROG | | 217 | .ifndef CRUNCHEDPROG |
218 | PROGS= ${RUMPPRG} rump.${RUMPPRG} | | 218 | PROGS= ${RUMPPRG} rump.${RUMPPRG} |
219 | . if defined(SRCS) | | 219 | . if defined(SRCS) |
220 | SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS} | | 220 | SRCS.rump.${PROG}:= ${SRCS} ${PROG}_rumpops.c ${RUMPSRCS} |
221 | SRCS+= ${PROG}_hostops.c | | 221 | SRCS+= ${PROG}_hostops.c |
222 | . else | | 222 | . else |
223 | SRCS= ${PROG}.c ${PROG}_hostops.c | | 223 | SRCS= ${PROG}.c ${PROG}_hostops.c |
224 | SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS} | | 224 | SRCS.rump.${PROG}= ${PROG}.c ${PROG}_rumpops.c ${RUMPSRCS} |
225 | . endif | | 225 | . endif |
226 | DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS} | | 226 | DPSRCS+= ${PROG}_rumpops.c ${RUMPSRCS} |
227 | LDADD.rump.${PROG}+= -lrumpclient | | 227 | LDADD.rump.${PROG}+= -lrumpclient |
228 | DPADD.rump.${PROG}+= ${LIBRUMPCLIENT} | | 228 | DPADD.rump.${PROG}+= ${LIBRUMPCLIENT} |
229 | MAN.rump.${PROG}= # defined but feeling empty | | 229 | MAN.rump.${PROG}= # defined but feeling empty |
230 | _RUMPINSTALL.rump.${PROG}=# defined | | 230 | _RUMPINSTALL.rump.${PROG}=# defined |
231 | .else # CRUNCHEDPROG | | 231 | .else # CRUNCHEDPROG |
232 | PROGS= ${PROG} | | 232 | PROGS= ${PROG} |
233 | CPPFLAGS+= -DCRUNCHOPS | | 233 | CPPFLAGS+= -DCRUNCHOPS |
234 | .endif | | 234 | .endif |
235 | .endif | | 235 | .endif |
236 | | | 236 | |
237 | .if defined(PROG) | | 237 | .if defined(PROG) |
238 | _CCLINK?= ${CC} ${_CCLINKFLAGS} | | 238 | _CCLINK?= ${CC} ${_CCLINKFLAGS} |
239 | . if defined(MAN) | | 239 | . if defined(MAN) |
240 | MAN.${PROG}= ${MAN} | | 240 | MAN.${PROG}= ${MAN} |
241 | _APPEND_MANS= no | | 241 | _APPEND_MANS= no |
242 | . endif | | 242 | . endif |
243 | . if !defined(OBJS) | | 243 | . if !defined(OBJS) |
244 | OBJS= ${OBJS.${PROG}} | | 244 | OBJS= ${OBJS.${PROG}} |
245 | . endif | | 245 | . endif |
246 | . if defined(PROGNAME) | | 246 | . if defined(PROGNAME) |
247 | PROGNAME.${PROG}= ${PROGNAME} | | 247 | PROGNAME.${PROG}= ${PROGNAME} |
248 | . endif | | 248 | . endif |
249 | . if defined(SRCS) | | 249 | . if defined(SRCS) |
250 | SRCS.${PROG}= ${SRCS} | | 250 | SRCS.${PROG}= ${SRCS} |
251 | _APPEND_SRCS= no | | 251 | _APPEND_SRCS= no |
252 | . endif | | 252 | . endif |
253 | .endif | | 253 | .endif |
254 | | | 254 | |
255 | # Turn the single-program PROG and PROG_CXX variables into their multi-word | | 255 | # Turn the single-program PROG and PROG_CXX variables into their multi-word |
256 | # counterparts, PROGS and PROGS_CXX. | | 256 | # counterparts, PROGS and PROGS_CXX. |
257 | .if !defined(RUMPPRG) | | 257 | .if !defined(RUMPPRG) |
258 | . if defined(PROG_CXX) && !defined(PROGS_CXX) | | 258 | . if defined(PROG_CXX) && !defined(PROGS_CXX) |
259 | PROGS_CXX= ${PROG_CXX} | | 259 | PROGS_CXX= ${PROG_CXX} |
260 | . elif defined(PROG) && !defined(PROGS) | | 260 | . elif defined(PROG) && !defined(PROGS) |
261 | PROGS= ${PROG} | | 261 | PROGS= ${PROG} |
262 | . endif | | 262 | . endif |
263 | .endif | | 263 | .endif |
264 | | | 264 | |
265 | # | | 265 | # |
266 | # Per-program definitions and targets. | | 266 | # Per-program definitions and targets. |
267 | # | | 267 | # |
268 | | | 268 | |
269 | # Definitions specific to C programs. | | 269 | # Definitions specific to C programs. |
270 | .for _P in ${PROGS} | | 270 | .for _P in ${PROGS} |
271 | SRCS.${_P}?= ${_P}.c | | 271 | SRCS.${_P}?= ${_P}.c |
272 | _CCLINK.${_P}= ${CC} ${_CCLINKFLAGS} | | 272 | _CCLINK.${_P}= ${CC} ${_CCLINKFLAGS} |
273 | .endfor | | 273 | .endfor |
274 | | | 274 | |
275 | # Definitions specific to C++ programs. | | 275 | # Definitions specific to C++ programs. |
276 | .for _P in ${PROGS_CXX} | | 276 | .for _P in ${PROGS_CXX} |
277 | SRCS.${_P}?= ${_P}.cc | | 277 | SRCS.${_P}?= ${_P}.cc |
278 | _CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS} | | 278 | _CCLINK.${_P}= ${CXX} ${_CCLINKFLAGS} |
279 | .endfor | | 279 | .endfor |
280 | | | 280 | |
281 | # Language-independent definitions. | | 281 | # Language-independent definitions. |
282 | .for _P in ${PROGS} ${PROGS_CXX} # { | | 282 | .for _P in ${PROGS} ${PROGS_CXX} # { |
283 | | | 283 | |
284 | BINDIR.${_P}?= ${BINDIR} | | 284 | BINDIR.${_P}?= ${BINDIR} |
285 | PROGNAME.${_P}?= ${_P} | | 285 | PROGNAME.${_P}?= ${_P} |
286 | | | 286 | |
287 | .if ${MKDEBUG} != "no" && !commands(${_P}) | | 287 | .if ${MKDEBUG} != "no" && !commands(${_P}) |
288 | _PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug | | 288 | _PROGDEBUG.${_P}:= ${PROGNAME.${_P}}.debug |
289 | .endif | | 289 | .endif |
290 | | | 290 | |
291 | .if defined(PAXCTL_FLAGS) | | 291 | .if defined(PAXCTL_FLAGS) |
292 | PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS} | | 292 | PAXCTL_FLAGS.${_P}?= ${PAXCTL_FLAGS} |
293 | .endif | | 293 | .endif |
294 | | | 294 | |
295 | ##### PROG specific flags. | | 295 | ##### PROG specific flags. |
296 | | | 296 | |
297 | _LDADD.${_P}= ${LDADD} ${LDADD.${_P}} | | 297 | _LDADD.${_P}= ${LDADD} ${LDADD.${_P}} |
298 | _LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}} | | 298 | _LDFLAGS.${_P}= ${LDFLAGS} ${LDFLAGS.${_P}} |
299 | _LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}} | | 299 | _LDSTATIC.${_P}= ${LDSTATIC} ${LDSTATIC.${_P}} |
300 | | | 300 | |
301 | ##### Build and install rules | | 301 | ##### Build and install rules |
302 | .if !empty(_APPEND_SRCS:M[Yy][Ee][Ss]) | | 302 | .if !empty(_APPEND_SRCS:M[Yy][Ee][Ss]) |
303 | SRCS+= ${SRCS.${_P}} # For bsd.dep.mk | | 303 | SRCS+= ${SRCS.${_P}} # For bsd.dep.mk |
304 | .endif | | 304 | .endif |
305 | | | 305 | |
306 | _YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}} | | 306 | _YPSRCS.${_P}= ${SRCS.${_P}:M*.[ly]:C/\..$/.c/} ${YHEADER:D${SRCS.${_P}:M*.y:.y=.h}} |
307 | | | 307 | |
308 | DPSRCS+= ${_YPSRCS.${_P}} | | 308 | DPSRCS+= ${_YPSRCS.${_P}} |
309 | CLEANFILES+= ${_YPSRCS.${_P}} | | 309 | CLEANFILES+= ${_YPSRCS.${_P}} |
310 | | | 310 | |
311 | .if !empty(SRCS.${_P}:N*.h:N*.sh:N*.fth) | | 311 | .if !empty(SRCS.${_P}:N*.h:N*.sh:N*.fth) |
312 | OBJS.${_P}+= ${SRCS.${_P}:N*.h:N*.sh:N*.fth:R:S/$/.o/g} | | 312 | OBJS.${_P}+= ${SRCS.${_P}:N*.h:N*.sh:N*.fth:R:S/$/.o/g} |
313 | LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_P}:M*.c:.c=.ln} | | 313 | LOBJS.${_P}+= ${LSRCS:.c=.ln} ${SRCS.${_P}:M*.c:.c=.ln} |
314 | .endif | | 314 | .endif |
315 | | | 315 | |
316 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # { | | 316 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) # { |
317 | .NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}} | | 317 | .NOPATH: ${OBJS.${_P}} ${_P} ${_YPSRCS.${_P}} |
318 | | | 318 | |
319 | ${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} | | 319 | ${OBJS.${_P}} ${LOBJS.${_P}}: ${DPSRCS} |
320 | | | 320 | |
321 | ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} | | 321 | ${_P}: .gdbinit ${LIBCRT0} ${OBJS.${_P}} ${LIBC} ${LIBCRTBEGIN} ${LIBCRTEND} ${DPADD} |
322 | .if !commands(${_P}) | | 322 | .if !commands(${_P}) |
323 | ${_MKTARGET_LINK} | | 323 | ${_MKTARGET_LINK} |
324 | ${_CCLINK.${_P}} \ | | 324 | ${_CCLINK.${_P}} \ |
325 | ${DESTDIR:D-Wl,-nostdlib} \ | | 325 | ${DESTDIR:D-Wl,-nostdlib} \ |
326 | ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ | | 326 | ${_LDFLAGS.${_P}} ${_LDSTATIC.${_P}} -o ${.TARGET} \ |
327 | ${OBJS.${_P}} ${_LDADD.${_P}} \ | | 327 | ${OBJS.${_P}} ${_LDADD.${_P}} \ |
328 | ${DESTDIR:D-L${_GCC_LIBGCCDIR}} \ | | 328 | ${DESTDIR:D-L${_GCC_LIBGCCDIR}} \ |
329 | ${_PROGLDOPTS} | | 329 | ${_PROGLDOPTS} |
330 | .if defined(CTFMERGE) | | 330 | .if defined(CTFMERGE) |
331 | ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} | | 331 | ${CTFMERGE} ${CTFMFLAGS} -o ${.TARGET} ${OBJS.${_P}} |
332 | .endif | | 332 | .endif |
333 | .if defined(PAXCTL_FLAGS.${_P}) | | 333 | .if defined(PAXCTL_FLAGS.${_P}) |
334 | ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} | | 334 | ${PAXCTL} ${PAXCTL_FLAGS.${_P}} ${.TARGET} |
335 | .endif | | 335 | .endif |
336 | .if ${MKSTRIPIDENT} != "no" | | 336 | .if ${MKSTRIPIDENT} != "no" |
337 | ${OBJCOPY} -R .ident ${.TARGET} | | 337 | ${OBJCOPY} -R .ident ${.TARGET} |
338 | .endif | | 338 | .endif |
339 | .endif # !commands(${_P}) | | 339 | .endif # !commands(${_P}) |
340 | | | 340 | |
341 | ${_P}.ro: ${OBJS.${_P}} ${DPADD} | | 341 | ${_P}.ro: ${OBJS.${_P}} ${DPADD} |
342 | ${_MKTARGET_LINK} | | 342 | ${_MKTARGET_LINK} |
343 | ${CC} ${LDFLAGS} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}} | | 343 | ${CC} ${LDFLAGS} -nostdlib -r -Wl,-dc -o ${.TARGET} ${OBJS.${_P}} |
344 | | | 344 | |
345 | .if defined(_PROGDEBUG.${_P}) | | 345 | .if defined(_PROGDEBUG.${_P}) |
346 | ${_PROGDEBUG.${_P}}: ${_P} | | 346 | ${_PROGDEBUG.${_P}}: ${_P} |
347 | ${_MKTARGET_CREATE} | | 347 | ${_MKTARGET_CREATE} |
348 | ( ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \ | | 348 | ( ${OBJCOPY} --only-keep-debug ${_P} ${_PROGDEBUG.${_P}} \ |
349 | && ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ | | 349 | && ${OBJCOPY} --strip-debug -p -R .gnu_debuglink \ |
350 | --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \ | | 350 | --add-gnu-debuglink=${_PROGDEBUG.${_P}} ${_P} \ |
351 | ) || (rm -f ${_PROGDEBUG.${_P}}; false) | | 351 | ) || (rm -f ${_PROGDEBUG.${_P}}; false) |
352 | .endif | | 352 | .endif |
353 | | | 353 | |
354 | .endif # defined(OBJS.${_P}) && !empty(OBJS.${_P}) # } | | 354 | .endif # defined(OBJS.${_P}) && !empty(OBJS.${_P}) # } |
355 | | | 355 | |
356 | .if !defined(MAN.${_P}) | | 356 | .if !defined(MAN.${_P}) |
357 | MAN.${_P}= ${_P}.1 | | 357 | MAN.${_P}= ${_P}.1 |
358 | .endif # !defined(MAN.${_P}) | | 358 | .endif # !defined(MAN.${_P}) |
359 | .if !empty(_APPEND_MANS:M[Yy][Ee][Ss]) | | 359 | .if !empty(_APPEND_MANS:M[Yy][Ee][Ss]) |
360 | MAN+= ${MAN.${_P}} | | 360 | MAN+= ${MAN.${_P}} |
361 | .endif | | 361 | .endif |
362 | | | 362 | |
363 | realall: ${_P} ${_PROGDEBUG.${_P}} | | 363 | realall: ${_P} ${_PROGDEBUG.${_P}} |
364 | | | 364 | |
365 | cleanprog: cleanprog-${_P} | | 365 | cleanprog: cleanprog-${_P} |
366 | cleanprog-${_P}: | | 366 | cleanprog-${_P}: |
367 | rm -f ${_P} ${_PROGDEBUG.${_P}} | | 367 | rm -f ${_P} ${_PROGDEBUG.${_P}} |
368 | | | 368 | |
369 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) | | 369 | .if defined(OBJS.${_P}) && !empty(OBJS.${_P}) |
370 | cleanobjs: cleanobjs-${_P} | | 370 | cleanobjs: cleanobjs-${_P} |
371 | cleanobjs-${_P}: | | 371 | cleanobjs-${_P}: |
372 | rm -f ${OBJS.${_P}} ${LOBJS.${_P}} | | 372 | rm -f ${OBJS.${_P}} ${LOBJS.${_P}} |
373 | .endif | | 373 | .endif |
374 | | | 374 | |
375 | _PROG_INSTALL+= proginstall-${_P} | | 375 | _PROG_INSTALL+= proginstall-${_P} |
376 | | | 376 | |
377 | .if !target(proginstall-${_P}) # { | | 377 | .if !target(proginstall-${_P}) # { |
378 | proginstall-${_P}:: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ | | 378 | proginstall-${_P}:: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ |
379 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} | | 379 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} |
380 | .PRECIOUS: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ | | 380 | .PRECIOUS: ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}} \ |
381 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} | | 381 | ${_PROGDEBUG.${_P}:D${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}} |
382 | | | 382 | |
383 | .if ${MKUPDATE} == "no" | | 383 | .if ${MKUPDATE} == "no" |
384 | .if defined(_RUMPINSTALL.${_P}) | | 384 | .if defined(_RUMPINSTALL.${_P}) |
385 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __progrumpinstall | | 385 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __progrumpinstall |
386 | .else | | 386 | .else |
387 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __proginstall | | 387 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! ${_P} __proginstall |
388 | .endif | | 388 | .endif |
389 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 389 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
390 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! .MADE | | 390 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}! .MADE |
391 | .endif | | 391 | .endif |
392 | .if defined(_PROGDEBUG.${_P}) | | 392 | .if defined(_PROGDEBUG.${_P}) |
393 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! ${_PROGDEBUG.${_P}} __progdebuginstall | | 393 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! ${_PROGDEBUG.${_P}} __progdebuginstall |
394 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 394 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
395 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! .MADE | | 395 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}! .MADE |
396 | .endif | | 396 | .endif |
397 | .endif # define(_PROGDEBUG.${_P}) | | 397 | .endif # define(_PROGDEBUG.${_P}) |
398 | .else # MKUPDATE != no | | 398 | .else # MKUPDATE != no |
399 | .if defined(_RUMPINSTALL.${_P}) | | 399 | .if defined(_RUMPINSTALL.${_P}) |
400 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __progrumpinstall | | 400 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __progrumpinstall |
401 | .else | | 401 | .else |
402 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __proginstall | | 402 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: ${_P} __proginstall |
403 | .endif | | 403 | .endif |
404 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 404 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
405 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: .MADE | | 405 | ${DESTDIR}${BINDIR.${_P}}/${PROGNAME.${_P}}: .MADE |
406 | .endif | | 406 | .endif |
407 | .if defined(_PROGDEBUG.${_P}) | | 407 | .if defined(_PROGDEBUG.${_P}) |
408 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: ${_PROGDEBUG.${_P}} __progdebuginstall | | 408 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: ${_PROGDEBUG.${_P}} __progdebuginstall |
409 | .if !defined(BUILD) && !make(all) && !make(${_P}) | | 409 | .if !defined(BUILD) && !make(all) && !make(${_P}) |
410 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: .MADE | | 410 | ${DESTDIR}${DEBUGDIR}${BINDIR.${_P}}/${_PROGDEBUG.${_P}}: .MADE |
411 | .endif | | 411 | .endif |
412 | .endif # defined(_PROGDEBUG.${_P}) | | 412 | .endif # defined(_PROGDEBUG.${_P}) |
413 | .endif # MKUPDATE != no | | 413 | .endif # MKUPDATE != no |
414 | | | 414 | |
415 | .endif # !target(proginstall-${_P}) # } | | 415 | .endif # !target(proginstall-${_P}) # } |
416 | | | 416 | |
417 | lint: lint-${_P} | | 417 | lint: lint-${_P} |
418 | lint-${_P}: ${LOBJS.${_P}} | | 418 | lint-${_P}: ${LOBJS.${_P}} |
419 | .if defined(LOBJS.${_P}) && !empty(LOBJS.${_P}) | | 419 | .if defined(LOBJS.${_P}) && !empty(LOBJS.${_P}) |
420 | ${LINT} ${LINTFLAGS} ${_LDFLAGS.${_P}:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS.${_P}} ${_LDADD.${_P}} | | 420 | ${LINT} ${LINTFLAGS} ${_LDFLAGS.${_P}:C/-L[ ]*/-L/Wg:M-L*} ${LOBJS.${_P}} ${_LDADD.${_P}} |
421 | .endif | | 421 | .endif |
422 | | | 422 | |
423 | .endfor # _P in ${PROGS} ${PROGS_CXX} # } | | 423 | .endfor # _P in ${PROGS} ${PROGS_CXX} # } |
424 | | | 424 | |
425 | .if defined(OBJS) && !empty(OBJS) && \ | | 425 | .if defined(OBJS) && !empty(OBJS) && \ |
426 | (empty(PROGS) && empty(PROGS_CXX)) | | 426 | (empty(PROGS) && empty(PROGS_CXX)) |
427 | cleanobjs: cleanobjs-plain | | 427 | cleanobjs: cleanobjs-plain |
428 | cleanobjs-plain: | | 428 | cleanobjs-plain: |
429 | rm -f ${OBJS} ${LOBJS} | | 429 | rm -f ${OBJS} ${LOBJS} |
430 | .endif | | 430 | .endif |
431 | | | 431 | |
432 | .if !target(proginstall) | | 432 | .if !target(proginstall) |
433 | proginstall:: ${_PROG_INSTALL} | | 433 | proginstall:: ${_PROG_INSTALL} |
434 | .endif | | 434 | .endif |
435 | .PHONY: proginstall | | 435 | .PHONY: proginstall |
436 | | | 436 | |
437 | | | 437 | |
438 | | | 438 | |
439 | realall: ${SCRIPTS} | | 439 | realall: ${SCRIPTS} |
440 | .if defined(SCRIPTS) && !target(scriptsinstall) # { | | 440 | .if defined(SCRIPTS) && !target(scriptsinstall) # { |
441 | SCRIPTSDIR?=${BINDIR} | | 441 | SCRIPTSDIR?=${BINDIR} |
442 | SCRIPTSOWN?=${BINOWN} | | 442 | SCRIPTSOWN?=${BINOWN} |
443 | SCRIPTSGRP?=${BINGRP} | | 443 | SCRIPTSGRP?=${BINGRP} |
444 | SCRIPTSMODE?=${BINMODE} | | 444 | SCRIPTSMODE?=${BINMODE} |
445 | | | 445 | |
446 | scriptsinstall:: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} | | 446 | scriptsinstall:: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} |
447 | .PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} | | 447 | .PRECIOUS: ${SCRIPTS:@S@${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}@} |
448 | | | 448 | |
449 | __scriptinstall: .USE | | 449 | __scriptinstall: .USE |
450 | ${_MKTARGET_INSTALL} | | 450 | ${_MKTARGET_INSTALL} |
451 | ${INSTALL_FILE} \ | | 451 | ${INSTALL_FILE} \ |
452 | -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \ | | 452 | -o ${SCRIPTSOWN_${.ALLSRC:T}:U${SCRIPTSOWN}} \ |
453 | -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \ | | 453 | -g ${SCRIPTSGRP_${.ALLSRC:T}:U${SCRIPTSGRP}} \ |
454 | -m ${SCRIPTSMODE_${.ALLSRC:T}:U${SCRIPTSMODE}} \ | | 454 | -m ${SCRIPTSMODE_${.ALLSRC:T}:U${SCRIPTSMODE}} \ |
455 | ${.ALLSRC} ${.TARGET} | | 455 | ${.ALLSRC} ${.TARGET} |
456 | | | 456 | |
457 | .for S in ${SCRIPTS:O:u} | | 457 | .for S in ${SCRIPTS:O:u} |
458 | .if ${MKUPDATE} == "no" | | 458 | .if ${MKUPDATE} == "no" |
459 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! ${S} __scriptinstall | | 459 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! ${S} __scriptinstall |
460 | .if !defined(BUILD) && !make(all) && !make(${S}) | | 460 | .if !defined(BUILD) && !make(all) && !make(${S}) |
461 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! .MADE | | 461 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}! .MADE |
462 | .endif | | 462 | .endif |
463 | .else | | 463 | .else |
464 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: ${S} __scriptinstall | | 464 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: ${S} __scriptinstall |
465 | .if !defined(BUILD) && !make(all) && !make(${S}) | | 465 | .if !defined(BUILD) && !make(all) && !make(${S}) |
466 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: .MADE | | 466 | ${DESTDIR}${SCRIPTSDIR_${S}:U${SCRIPTSDIR}}/${SCRIPTSNAME_${S}:U${SCRIPTSNAME:U${S:T:R}}}: .MADE |
467 | .endif | | 467 | .endif |
468 | .endif | | 468 | .endif |
469 | .endfor | | 469 | .endfor |
470 | .endif # } | | 470 | .endif # } |
471 | | | 471 | |
472 | .if !target(scriptsinstall) | | 472 | .if !target(scriptsinstall) |
473 | scriptsinstall:: | | 473 | scriptsinstall:: |
474 | .endif | | 474 | .endif |
475 | .PHONY: scriptsinstall | | 475 | .PHONY: scriptsinstall |
476 | | | 476 | |
477 | ##### Pull in related .mk logic | | 477 | ##### Pull in related .mk logic |
478 | LINKSOWN?= ${BINOWN} | | 478 | LINKSOWN?= ${BINOWN} |
479 | LINKSGRP?= ${BINGRP} | | 479 | LINKSGRP?= ${BINGRP} |
480 | LINKSMODE?= ${BINMODE} | | 480 | LINKSMODE?= ${BINMODE} |
481 | .include <bsd.man.mk> | | 481 | .include <bsd.man.mk> |
482 | .include <bsd.nls.mk> | | 482 | .include <bsd.nls.mk> |
483 | .include <bsd.files.mk> | | 483 | .include <bsd.files.mk> |
484 | .include <bsd.inc.mk> | | 484 | .include <bsd.inc.mk> |
485 | .include <bsd.links.mk> | | 485 | .include <bsd.links.mk> |
486 | .include <bsd.sys.mk> | | 486 | .include <bsd.sys.mk> |
487 | .include <bsd.dep.mk> | | 487 | .include <bsd.dep.mk> |
488 | | | 488 | |
489 | cleanextra: .PHONY | | 489 | cleanextra: .PHONY |
490 | .if defined(CLEANFILES) && !empty(CLEANFILES) | | 490 | .if defined(CLEANFILES) && !empty(CLEANFILES) |
491 | rm -f ${CLEANFILES} | | 491 | rm -f ${CLEANFILES} |
492 | .endif | | 492 | .endif |
493 | | | 493 | |
494 | ${TARGETS}: # ensure existence | | 494 | ${TARGETS}: # ensure existence |
495 | | | 495 | |
496 | .endif # HOSTPROG | | 496 | .endif # HOSTPROG |