Annotation of src/share/mk/bsd.prog.mk, Revision 1.36
1.36 ! deraadt 1: # $OpenBSD: bsd.prog.mk,v 1.35 2003/07/08 13:59:13 espie Exp $
1.3 deraadt 2: # $NetBSD: bsd.prog.mk,v 1.55 1996/04/08 21:19:26 jtc Exp $
1.1 deraadt 3: # @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91
4:
5: .if exists(${.CURDIR}/../Makefile.inc)
6: .include "${.CURDIR}/../Makefile.inc"
7: .endif
8:
9: .include <bsd.own.mk>
10:
1.14 deraadt 11: .SUFFIXES: .out .o .c .cc .C .cxx .y .l .s .8 .7 .6 .5 .4 .3 .2 .1 .0
1.1 deraadt 12:
1.24 espie 13: .if ${WARNINGS:L} == "yes"
14: CFLAGS+= ${CDIAGFLAGS}
15: CXXFLAGS+= ${CXXDIAGFLAGS}
16: .endif
1.18 millert 17: CFLAGS+= ${COPTS}
1.24 espie 18: CXXFLAGS+= ${CXXOPTS}
1.1 deraadt 19:
1.35 espie 20: .if (${ELF_TOOLCHAIN:L} == "yes")
1.8 niklas 21: CRTBEGIN?= ${DESTDIR}/usr/lib/crtbegin.o
22: CRTEND?= ${DESTDIR}/usr/lib/crtend.o
23: .endif
24:
1.1 deraadt 25: LIBCRT0?= ${DESTDIR}/usr/lib/crt0.o
1.31 espie 26: LIB45?= ${DESTDIR}/usr/lib/lib45.a
27: LIBACL?= ${DESTDIR}/usr/lib/libacl.a
28: LIBASN1?= ${DESTDIR}/usr/lib/libasn1.a
1.1 deraadt 29: LIBC?= ${DESTDIR}/usr/lib/libc.a
30: LIBCOMPAT?= ${DESTDIR}/usr/lib/libcompat.a
1.31 espie 31: LIBCRYPTO?= ${DESTDIR}/usr/lib/libcrypto.a
1.1 deraadt 32: LIBCURSES?= ${DESTDIR}/usr/lib/libcurses.a
33: LIBDES?= ${DESTDIR}/usr/lib/libdes.a
34: LIBEDIT?= ${DESTDIR}/usr/lib/libedit.a
1.32 millert 35: LIBEVENT?= ${DESTDIR}/usr/lib/libevent.a
1.1 deraadt 36: LIBGCC?= ${DESTDIR}/usr/lib/libgcc.a
1.31 espie 37: LIBHDB?= ${DESTDIR}/usr/lib/libhdb.a
38: LIBKADM?= ${DESTDIR}/usr/lib/libkadm.a
39: LIBKADM5CLNT?= ${DESTDIR}/usr/lib/libkadm5clnt.a
40: LIBKADM5SRV?= ${DESTDIR}/usr/lib/libkadm5srv.a
41: LIBKAFS?= ${DESTDIR}/usr/lib/libkafs.a
1.1 deraadt 42: LIBKDB?= ${DESTDIR}/usr/lib/libkdb.a
1.21 ho 43: LIBKEYNOTE?= ${DESTDIR}/usr/lib/libkeynote.a
1.1 deraadt 44: LIBKRB?= ${DESTDIR}/usr/lib/libkrb.a
1.31 espie 45: LIBKRB5?= ${DESTDIR}/usr/lib/libkrb5.a
1.1 deraadt 46: LIBKVM?= ${DESTDIR}/usr/lib/libkvm.a
1.3 deraadt 47: LIBL?= ${DESTDIR}/usr/lib/libl.a
1.1 deraadt 48: LIBM?= ${DESTDIR}/usr/lib/libm.a
1.4 tholo 49: LIBOLDCURSES?= ${DESTDIR}/usr/lib/libocurses.a
1.31 espie 50: LIBPCAP?= ${DESTDIR}/usr/lib/libpcap.a
1.20 millert 51: LIBPERL?= ${DESTDIR}/usr/lib/libperl.a
1.1 deraadt 52: LIBRPCSVC?= ${DESTDIR}/usr/lib/librpcsvc.a
1.31 espie 53: LIBSECTOK?= ${DESTDIR}/usr/lib/libsectok.a
1.1 deraadt 54: LIBSKEY?= ${DESTDIR}/usr/lib/libskey.a
1.19 beck 55: LIBSSL?= ${DESTDIR}/usr/lib/libssl.a
1.12 deraadt 56: LIBTELNET?= ${DESTDIR}/usr/lib/libtelnet.a
1.1 deraadt 57: LIBTERMCAP?= ${DESTDIR}/usr/lib/libtermcap.a
1.4 tholo 58: LIBTERMLIB?= ${DESTDIR}/usr/lib/libtermlib.a
1.31 espie 59: LIBUSB?= ${DESTDIR}/usr/lib/libusbhid.a
1.1 deraadt 60: LIBUTIL?= ${DESTDIR}/usr/lib/libutil.a
1.11 downsj 61: LIBWRAP?= ${DESTDIR}/usr/lib/libwrap.a
1.3 deraadt 62: LIBY?= ${DESTDIR}/usr/lib/liby.a
1.9 mickey 63: LIBZ?= ${DESTDIR}/usr/lib/libz.a
1.31 espie 64:
65: .if ${MACHINE_ARCH} == "i386"
66: LIBARCH?= ${DESTDIR}/usr/lib/libi386.a
67: .else
68: LIBARCH?=
69: .endif
70:
71: # old stuff
72: LIBDBM?= ${DESTDIR}/usr/lib/libdbm.a
73: LIBMP?= ${DESTDIR}/usr/lib/libmp.a
74: LIBPC?= ${DESTDIR}/usr/lib/libpc.a
75: LIBPLOT?= ${DESTDIR}/usr/lib/libplot.a
76: LIBRESOLV?= ${DESTDIR}/usr/lib/libresolv.a
1.1 deraadt 77:
78: .if defined(SHAREDSTRINGS)
79: CLEANFILES+=strings
80: .c.o:
81: ${CC} -E ${CFLAGS} ${.IMPSRC} | xstr -c -
82: @${CC} ${CFLAGS} -c x.c -o ${.TARGET}
83: @rm -f x.c
84:
85: .cc.o:
86: ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
87: @mv -f x.c x.cc
88: @${CXX} ${CXXFLAGS} -c x.cc -o ${.TARGET}
89: @rm -f x.cc
90:
91: .C.o:
92: ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
93: @mv -f x.c x.C
94: @${CXX} ${CXXFLAGS} -c x.C -o ${.TARGET}
95: @rm -f x.C
1.14 deraadt 96:
97: .cxx.o:
98: ${CXX} -E ${CXXFLAGS} ${.IMPSRC} | xstr -c -
99: @mv -f x.c x.cxx
100: @${CXX} ${CXXFLAGS} -c x.cxx -o ${.TARGET}
101: @rm -f x.cxx
1.1 deraadt 102: .endif
103:
104:
105: .if defined(PROG)
106: SRCS?= ${PROG}.c
107: .if !empty(SRCS:N*.h:N*.sh)
108: OBJS+= ${SRCS:N*.h:N*.sh:R:S/$/.o/g}
109: LOBJS+= ${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
110: .endif
111:
112: .if defined(OBJS) && !empty(OBJS)
113: .if defined(DESTDIR)
114:
1.8 niklas 115: ${PROG}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD}
116: ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} -nostdlib -L${DESTDIR}/usr/lib ${LIBCRT0} ${CRTBEGIN} ${OBJS} ${LDADD} -lgcc -lc -lgcc ${CRTEND}
1.1 deraadt 117:
118: .else
119:
1.8 niklas 120: ${PROG}: ${LIBCRT0} ${OBJS} ${LIBC} ${CRTBEGIN} ${CRTEND} ${DPADD}
1.1 deraadt 121: ${CC} ${LDFLAGS} ${LDSTATIC} -o ${.TARGET} ${OBJS} ${LDADD}
122:
123: .endif # defined(DESTDIR)
124: .endif # defined(OBJS) && !empty(OBJS)
125:
126: .if !defined(MAN)
127: MAN= ${PROG}.1
128: .endif # !defined(MAN)
129: .endif # defined(PROG)
130:
131: .MAIN: all
132: all: ${PROG} _SUBDIRUSE
133:
134: .if !target(clean)
135: clean: _SUBDIRUSE
136: rm -f a.out [Ee]rrs mklog core *.core \
137: ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
138: .endif
139:
140: cleandir: _SUBDIRUSE clean
141:
142: .if !target(install)
143: .if !target(beforeinstall)
144: beforeinstall:
145: .endif
146: .if !target(afterinstall)
147: afterinstall:
148: .endif
149:
150: .if !target(realinstall)
151: realinstall:
152: .if defined(PROG)
1.13 millert 153: ${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -o ${BINOWN} -g ${BINGRP} \
154: -m ${BINMODE} ${PROG} ${DESTDIR}${BINDIR}
1.1 deraadt 155: .endif
156: .if defined(HIDEGAME)
157: (cd ${DESTDIR}/usr/games; rm -f ${PROG}; ln -s dm ${PROG})
158: .endif
159: .endif
160:
161: install: maninstall _SUBDIRUSE
162: .if defined(LINKS) && !empty(LINKS)
1.28 espie 163: . for lnk file in ${LINKS}
164: @l=${DESTDIR}${lnk}; \
165: t=${DESTDIR}${file}; \
166: echo $$t -\> $$l; \
167: rm -f $$t; ln $$l $$t
168: . endfor
1.1 deraadt 169: .endif
170:
171: maninstall: afterinstall
172: afterinstall: realinstall
173: realinstall: beforeinstall
174: .endif
175:
176: .if !target(lint)
177: lint: ${LOBJS}
178: .if defined(LOBJS) && !empty(LOBJS)
179: @${LINT} ${LINTFLAGS} ${LDFLAGS:M-L*} ${LOBJS} ${LDADD}
180: .endif
181: .endif
182:
183: .if !defined(NOMAN)
184: .include <bsd.man.mk>
185: .endif
186:
187: .if !defined(NONLS)
188: .include <bsd.nls.mk>
189: .endif
190:
191: .include <bsd.obj.mk>
192: .include <bsd.dep.mk>
193: .include <bsd.subdir.mk>
1.3 deraadt 194: .include <bsd.sys.mk>