Annotation of src/Makefile, Revision 1.30
1.30 ! niklas 1: # $OpenBSD: Makefile,v 1.29 1998/05/11 07:43:12 niklas Exp $
1.1 deraadt 2:
1.16 deraadt 3: #
4: # For more information on building in tricky environments, please see
5: # the list of possible environment variables described in
6: # /usr/share/mk/bsd.README.
7: #
8: # Building recommendations:
9: #
10: # 1) If at all possible, put this source tree in /usr/src. If /usr/src
11: # must be a symbolic link, setenv BSDSRCDIR to point to the real location.
12: #
13: # 2) It is also recommended that you compile with objects outside the
14: # source tree. To do this, ensure /usr/obj exists or points to some
15: # area of disk of sufficient size. Then do "cd /usr/src; make obj".
16: # This will make a symbolic link called "obj" in each directory, as
17: # well as populate the /usr/obj properly with directories for the
18: # objects.
19: #
20: # 3) If you are reasonably sure that things will compile OK, use the
21: # "make build" target supplied here. Good luck.
22:
1.6 mickey 23: .include <bsd.own.mk> # for NOMAN, if it's there.
1.1 deraadt 24:
25: SUBDIR+= lib include bin libexec sbin usr.bin usr.sbin share games
26: SUBDIR+= gnu
27:
1.5 tholo 28: SUBDIR+= sys lkm
1.1 deraadt 29:
1.17 millert 30: .if (${KERBEROS} == "yes")
1.2 tholo 31: SUBDIR+= kerberosIV
1.21 deraadt 32: .endif
33:
34: .if make(clean) || make(cleandir) || make(obj)
35: SUBDIR+= distrib
1.4 tholo 36: .endif
1.2 tholo 37:
1.1 deraadt 38: .if exists(regress)
39: .ifmake !(install)
40: SUBDIR+= regress
41: .endif
42:
43: regression-tests:
44: @echo Running regression tests...
45: @(cd ${.CURDIR}/regress && ${MAKE} regress)
46: .endif
1.10 deraadt 47:
48: includes:
49: (cd ${.CURDIR}/include; ${MAKE} includes)
1.1 deraadt 50:
1.7 deraadt 51: beforeinstall:
52: .ifndef DESTDIR
53: (cd ${.CURDIR}/etc && ${MAKE} DESTDIR=/ distrib-dirs)
54: .else
55: (cd ${.CURDIR}/etc && ${MAKE} distrib-dirs)
56: .endif
1.9 deraadt 57: (cd ${.CURDIR}/include; ${MAKE} includes)
1.1 deraadt 58:
59: afterinstall:
60: .ifndef NOMAN
61: (cd ${.CURDIR}/share/man && ${MAKE} makedb)
62: .endif
63:
64: build:
1.19 kstailey 65: .ifdef GLOBAL_AUTOCONF_CACHE
1.20 kstailey 66: rm -f ${GLOBAL_AUTOCONF_CACHE}
1.18 kstailey 67: .endif
1.6 mickey 68: (cd ${.CURDIR}/share/mk && ${MAKE} install)
1.8 deraadt 69: (cd ${.CURDIR}/include; ${MAKE} includes)
1.1 deraadt 70: ${MAKE} cleandir
71: (cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
72: (cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
1.13 deraadt 73: .if (${MACHINE_ARCH} == "mips")
1.14 briggs 74: ldconfig
1.13 deraadt 75: .endif
1.17 millert 76: .if (${KERBEROS} == "yes")
1.2 tholo 77: (cd ${.CURDIR}/kerberosIV && ${MAKE} build)
1.23 niklas 78: .endif
79: .if (${MACHINE_ARCH} == "mips")
80: ldconfig
1.4 tholo 81: .endif
1.1 deraadt 82: ${MAKE} depend && ${MAKE} && ${MAKE} install
1.15 niklas 83:
84: .if !defined(TARGET)
85: cross-tools:
86: echo "TARGET must be set"; exit 1
87: .else
88: cross-tools: cross-helpers cross-includes cross-binutils cross-gcc
89:
90: CROSSDIR= ${DESTDIR}/usr/cross/${TARGET}
91:
92: cross-helpers:
93: -mkdir -p ${CROSSDIR}/usr/include
94: echo _MACHINE_ARCH | \
95: cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \
1.25 mickey 96: ${CPP} -E -I${.CURDIR}/sys/arch | \
97: sed -n '$$p' >${CROSSDIR}/TARGET_ARCH
1.15 niklas 98: eval `grep '^osr=' sys/conf/newvers.sh`; \
99: sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \
100: ${CROSSDIR}/TARGET_CANON
101:
102: cross-includes:
103: ${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
104: DESTDIR=${CROSSDIR} includes
105:
1.27 niklas 106: .if ${TARGET} == "powerpc" || ${TARGET} == "alpha" || ${TARGET} == "arc" || \
1.28 mickey 107: ${TARGET} == "pmax" || ${TARGET} == "wgrisc" || ${TARGET} == "hppa"
1.27 niklas 108: cross-binutils: cross-binutils-new
109: .else
110: cross-binutils: cross-binutils-old
111: .endif
112:
113: cross-binutils-new:
1.15 niklas 114: -mkdir -p ${CROSSDIR}/usr/obj
115: export BSDSRCDIR=`pwd`; \
116: (cd ${.CURDIR}/gnu/usr.bin/binutils; \
117: BSDOBJDIR=${CROSSDIR}/usr/obj \
118: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
119: ${MAKE} -f Makefile.bsd-wrapper obj); \
120: (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \
1.25 mickey 121: /bin/sh ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \
1.15 niklas 122: --prefix ${CROSSDIR}/usr \
123: --target `cat ${CROSSDIR}/TARGET_CANON` && \
124: ${MAKE} && ${MAKE} install)
125: ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \
126: ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \
127: ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder
1.24 niklas 128:
1.29 niklas 129: cross-binutils-old: cross-gas cross-ar cross-ld cross-strip cross-size \
130: cross-ranlib cross-nm
1.27 niklas 131:
1.24 niklas 132: cross-gas:
133: -mkdir -p ${CROSSDIR}/usr/obj
134: -mkdir -p ${CROSSDIR}/usr/bin
1.27 niklas 135: -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin
1.24 niklas 136: (cd gnu/usr.bin/gas; \
137: BSDOBJDIR=${CROSSDIR}/usr/obj \
138: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
139: ${MAKE} obj)
140: (cd gnu/usr.bin/gas; \
141: TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
142: ${MAKE})
143: (cd gnu/usr.bin/gas; \
1.27 niklas 144: TARGET_MACHINE_ARCH=${TARGET} \
145: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
146: ${MAKE} NOMAN= install)
147: ln -sf ${CROSSDIR}/usr/bin/as \
148: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/as
149:
150: # Not yet functional
151: cross-ld:
152: -mkdir -p ${CROSSDIR}/usr/obj
153: -mkdir -p ${CROSSDIR}/usr/bin
154: (cd gnu/usr.bin/ld; \
155: BSDOBJDIR=${CROSSDIR}/usr/obj \
156: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
157: ${MAKE} obj)
158: (cd gnu/usr.bin/ld; \
159: TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
160: ${MAKE} NOMAN=)
161: (cd gnu/usr.bin/ld; \
162: TARGET_MACHINE_ARCH=${TARGET} \
163: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
164: ${MAKE} NOMAN= install)
165: ln -sf ${CROSSDIR}/usr/bin/ld \
166: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ld
167:
168: cross-ar:
169: -mkdir -p ${CROSSDIR}/usr/obj
170: -mkdir -p ${CROSSDIR}/usr/bin
171: (cd usr.bin/ar; \
172: BSDOBJDIR=${CROSSDIR}/usr/obj \
173: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
174: ${MAKE} obj)
175: (cd usr.bin/ar; MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=)
176: (cd usr.bin/ar; \
1.24 niklas 177: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
178: ${MAKE} NOMAN= install)
1.27 niklas 179: ln -sf ${CROSSDIR}/usr/bin/ar \
180: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ar
1.29 niklas 181:
182: cross-ranlib:
183: -mkdir -p ${CROSSDIR}/usr/obj
184: -mkdir -p ${CROSSDIR}/usr/bin
185: (cd usr.bin/ranlib; \
186: BSDOBJDIR=${CROSSDIR}/usr/obj \
187: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
188: ${MAKE} obj)
189: (cd usr.bin/ranlib; MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=)
190: (cd usr.bin/ranlib; \
191: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
192: ${MAKE} NOMAN= install)
193: ln -sf ${CROSSDIR}/usr/bin/ranlib \
194: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ranlib
195:
196: cross-strip:
197: -mkdir -p ${CROSSDIR}/usr/obj
198: -mkdir -p ${CROSSDIR}/usr/bin
199: (cd usr.bin/strip; \
200: BSDOBJDIR=${CROSSDIR}/usr/obj \
201: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
202: ${MAKE} obj)
203: (cd usr.bin/strip; \
204: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
205: ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=)
206: (cd usr.bin/strip; \
207: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
208: ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= install)
209: ln -sf ${CROSSDIR}/usr/bin/strip \
210: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/strip
211:
212: cross-size:
213: -mkdir -p ${CROSSDIR}/usr/obj
214: -mkdir -p ${CROSSDIR}/usr/bin
215: (cd usr.bin/size; \
216: BSDOBJDIR=${CROSSDIR}/usr/obj \
217: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
218: ${MAKE} obj)
219: (cd usr.bin/size; MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
220: ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=)
221: (cd usr.bin/size; \
222: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
223: ${MAKE} NOMAN= install)
224: ln -sf ${CROSSDIR}/usr/bin/size \
225: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/size
226:
227: cross-nm:
228: -mkdir -p ${CROSSDIR}/usr/obj
229: -mkdir -p ${CROSSDIR}/usr/bin
230: (cd usr.bin/nm; \
231: BSDOBJDIR=${CROSSDIR}/usr/obj \
232: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
233: ${MAKE} obj)
1.30 ! niklas 234: (cd usr.bin/nm; MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
! 235: ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=)
1.29 niklas 236: (cd usr.bin/nm; \
237: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
238: ${MAKE} NOMAN= install)
239: ln -sf ${CROSSDIR}/usr/bin/nm \
240: ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/nm
1.15 niklas 241:
242: cross-gcc:
243: -mkdir -p ${CROSSDIR}/usr/obj
244: (cd gnu/usr.bin/gcc; \
245: BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \
246: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
247: ${MAKE} -f Makefile.bsd-wrapper obj)
248: (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \
1.25 mickey 249: /bin/sh ${.CURDIR}/gnu/usr.bin/gcc/configure \
1.15 niklas 250: --prefix ${CROSSDIR}/usr \
251: --target `cat ${CROSSDIR}/TARGET_CANON` && \
1.26 mickey 252: ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \
1.15 niklas 253: GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \
1.26 mickey 254: ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \
255: GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" install)
1.15 niklas 256: .endif
1.1 deraadt 257:
258: .include <bsd.subdir.mk>