xref: /openbsd/Makefile (revision b908e61c)
1*b908e61cSart#	$OpenBSD: Makefile,v 1.41 1998/09/30 13:27:28 art Exp $
2df930be7Sderaadt
35034ab0fSderaadt#
45034ab0fSderaadt# For more information on building in tricky environments, please see
55034ab0fSderaadt# the list of possible environment variables described in
65034ab0fSderaadt# /usr/share/mk/bsd.README.
75034ab0fSderaadt#
85034ab0fSderaadt# Building recommendations:
95034ab0fSderaadt#
105034ab0fSderaadt# 1) If at all possible, put this source tree in /usr/src.  If /usr/src
115034ab0fSderaadt# must be a symbolic link, setenv BSDSRCDIR to point to the real location.
125034ab0fSderaadt#
135034ab0fSderaadt# 2) It is also recommended that you compile with objects outside the
145034ab0fSderaadt# source tree. To do this, ensure /usr/obj exists or points to some
155034ab0fSderaadt# area of disk of sufficient size.  Then do "cd /usr/src; make obj".
165034ab0fSderaadt# This will make a symbolic link called "obj" in each directory, as
175034ab0fSderaadt# well as populate the /usr/obj properly with directories for the
185034ab0fSderaadt# objects.
195034ab0fSderaadt#
20*b908e61cSart# 3) It is strongly recommended that you build and install a new kernel
21*b908e61cSart# before rebuilding your system. Some of the new programs may use new
22*b908e61cSart# functionality or depend on API changes that your old kernel doesn't have.
23*b908e61cSart#
24*b908e61cSart# 4) If you are reasonably sure that things will compile OK, use the
255034ab0fSderaadt# "make build" target supplied here. Good luck.
26d05f021aSmickey#
27*b908e61cSart# 5) If you want to setup a cross-build environment, there is a "cross-tools"
28d05f021aSmickey# target available which upon completion of "make TARGET=<target> cross-tools"
29d05f021aSmickey# (where <target> is one of the names in the /sys/arch directory) will produce
30d05f021aSmickey# a set of compilation tools along with the includes in the /usr/cross/<target>
31d05f021aSmickey# directory.
32d05f021aSmickey#
33094eb183Smickey
345034ab0fSderaadt.include <bsd.own.mk>	# for NOMAN, if it's there.
35df930be7Sderaadt
36df930be7SderaadtSUBDIR+= lib include bin libexec sbin usr.bin usr.sbin share games
37df930be7SderaadtSUBDIR+= gnu
38df930be7Sderaadt
39900e3302StholoSUBDIR+= sys lkm
40df930be7Sderaadt
4111ee01d8Smillert.if (${KERBEROS} == "yes")
42b1b0ccd8StholoSUBDIR+= kerberosIV
4396eaadcaStholo.endif
44b1b0ccd8Stholo
454f7a1a57Sderaadt.if   make(clean) || make(cleandir) || make(obj)
464f7a1a57SderaadtSUBDIR+= distrib
474f7a1a57Sderaadt.endif
484f7a1a57Sderaadt
49df930be7Sderaadt.if exists(regress)
50df930be7Sderaadt.ifmake !(install)
51df930be7SderaadtSUBDIR+= regress
52df930be7Sderaadt.endif
53df930be7Sderaadt
54df930be7Sderaadtregression-tests:
55df930be7Sderaadt	@echo Running regression tests...
56df930be7Sderaadt	@(cd ${.CURDIR}/regress && ${MAKE} regress)
57df930be7Sderaadt.endif
58df930be7Sderaadt
594ae007f5Sderaadtincludes:
604ae007f5Sderaadt	(cd ${.CURDIR}/include; ${MAKE} includes)
614ae007f5Sderaadt
620d5e6725Sderaadtbeforeinstall:
630d5e6725Sderaadt.ifndef DESTDIR
640d5e6725Sderaadt	(cd ${.CURDIR}/etc && ${MAKE} DESTDIR=/ distrib-dirs)
650d5e6725Sderaadt.else
660d5e6725Sderaadt	(cd ${.CURDIR}/etc && ${MAKE} distrib-dirs)
670d5e6725Sderaadt.endif
686cae596cSderaadt	(cd ${.CURDIR}/include; ${MAKE} includes)
69df930be7Sderaadt
70df930be7Sderaadtafterinstall:
71df930be7Sderaadt.ifndef NOMAN
72df930be7Sderaadt	(cd ${.CURDIR}/share/man && ${MAKE} makedb)
73df930be7Sderaadt.endif
74df930be7Sderaadt
75df930be7Sderaadtbuild:
7671e87bb9Skstailey.ifdef GLOBAL_AUTOCONF_CACHE
7769c894c1Skstailey	rm -f ${GLOBAL_AUTOCONF_CACHE}
789a76bd19Skstailey.endif
798d9b254aSniklas	(cd ${.CURDIR}/share/mk && ${SUDO} ${MAKE} install)
808d9b254aSniklas	(cd ${.CURDIR}/include; ${SUDO} ${MAKE} includes)
81df930be7Sderaadt	${MAKE} cleandir
828d9b254aSniklas	(cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && \
838d9b254aSniklas	    ${SUDO} ${MAKE} install)
848d9b254aSniklas	(cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && \
858d9b254aSniklas	    ${SUDO} ${MAKE} install)
86a60dba07Sderaadt.if (${MACHINE_ARCH} == "mips")
8762085dbcSbriggs	ldconfig
88a60dba07Sderaadt.endif
8911ee01d8Smillert.if (${KERBEROS} == "yes")
90b1b0ccd8Stholo	(cd ${.CURDIR}/kerberosIV && ${MAKE} build)
9196eaadcaStholo.endif
92ae417a3eSniklas.if (${MACHINE_ARCH} == "mips")
93ae417a3eSniklas	ldconfig
94ae417a3eSniklas.endif
958d9b254aSniklas	${MAKE} depend && ${MAKE} && ${SUDO} ${MAKE} install
96df930be7Sderaadt
979c3ce19dSniklas.if !defined(TARGET)
989c3ce19dSniklascross-tools:
999c3ce19dSniklas	echo "TARGET must be set"; exit 1
1009c3ce19dSniklas.else
101f6e60134Sniklascross-tools:	cross-helpers cross-includes cross-binutils cross-gcc cross-lib
1029c3ce19dSniklas
1039c3ce19dSniklasCROSSDIR=	${DESTDIR}/usr/cross/${TARGET}
104f6e60134SniklasCROSSENV=	AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \
105f6e60134Sniklas		CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \
106f6e60134Sniklas		LD=${CROSSDIR}/usr/bin/ld NM=${CROSSDIR}/usr/bin/nm \
107f6e60134Sniklas		RANLIB=${CROSSDIR}/usr/bin/ranlib \
108f6e60134Sniklas		SIZE=${CROSSDIR}/usr/bin/size STRIP=${CROSSDIR}/usr/bin/strip \
109f4a9ae37Sniklas		HOSTCC=cc
1109c3ce19dSniklas
1119c3ce19dSniklascross-helpers:
1129c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/include
1139c3ce19dSniklas	echo _MACHINE_ARCH | \
1149c3ce19dSniklas	    cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \
11562156da0Smickey	    ${CPP} -E -I${.CURDIR}/sys/arch | \
11662156da0Smickey	    sed -n '$$p' >${CROSSDIR}/TARGET_ARCH
1179c3ce19dSniklas	eval `grep '^osr=' sys/conf/newvers.sh`; \
1189c3ce19dSniklas	   sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \
1199c3ce19dSniklas	   ${CROSSDIR}/TARGET_CANON
1209c3ce19dSniklas
1219c3ce19dSniklascross-includes:
122f6e60134Sniklas	-mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include
1239c3ce19dSniklas	${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
1249c3ce19dSniklas	    DESTDIR=${CROSSDIR} includes
125f6e60134Sniklas	ln -sf ${CROSSDIR}/usr/include \
126f6e60134Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include
1279c3ce19dSniklas
128e046c386Sniklas.if ${TARGET} == "powerpc" || ${TARGET} == "alpha" || ${TARGET} == "arc" || \
129e7297ab4Smickey    ${TARGET} == "pmax" || ${TARGET} == "wgrisc" || ${TARGET} == "hppa"
130e046c386Sniklascross-binutils: cross-binutils-new
131e046c386Sniklas.else
132e046c386Sniklascross-binutils: cross-binutils-old
133e046c386Sniklas.endif
134e046c386Sniklas
135e046c386Sniklascross-binutils-new:
1369c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/obj
137f6e60134Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
1389c3ce19dSniklas	export BSDSRCDIR=`pwd`; \
1399c3ce19dSniklas	    (cd ${.CURDIR}/gnu/usr.bin/binutils; \
1409c3ce19dSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
1419c3ce19dSniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1429c3ce19dSniklas	    ${MAKE} -f Makefile.bsd-wrapper obj); \
1439c3ce19dSniklas	    (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \
14462156da0Smickey	    /bin/sh ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \
1459c3ce19dSniklas	    --prefix ${CROSSDIR}/usr \
1469c3ce19dSniklas	    --target `cat ${CROSSDIR}/TARGET_CANON` && \
147883e2605Smickey	    ${MAKE} CFLAGS=${CFLAGS} && ${MAKE} DESTDIR=${CROSSDIR} install)
1489c3ce19dSniklas	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \
1499c3ce19dSniklas	    ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \
1509c3ce19dSniklas	    ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder
151c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-as \
152c948a602Smickey	    ${CROSSDIR}/usr/bin/as
153c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ar \
154c948a602Smickey	    ${CROSSDIR}/usr/bin/ar
155c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ld \
156c948a602Smickey	    ${CROSSDIR}/usr/bin/ld
157c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-strip \
158c948a602Smickey	    ${CROSSDIR}/usr/bin/strip
159c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-size \
160c948a602Smickey	    ${CROSSDIR}/usr/bin/size
161c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ranlib \
162c948a602Smickey	    ${CROSSDIR}/usr/bin/ranlib
163c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-nm \
164c948a602Smickey	    ${CROSSDIR}/usr/bin/nm
16572eeb022Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-strings \
16672eeb022Smickey	    ${CROSSDIR}/usr/bin/strings
167c948a602Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder \
168c948a602Smickey	    ${CROSSDIR}/usr/bin/lorder
16972eeb022Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-objcopy \
17072eeb022Smickey	    ${CROSSDIR}/usr/bin/objcopy
17172eeb022Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-objdump \
17272eeb022Smickey	    ${CROSSDIR}/usr/bin/objdump
17372eeb022Smickey	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gdb \
17472eeb022Smickey	    ${CROSSDIR}/usr/bin/gdb
1759c3ce19dSniklas
1768037d955Sniklascross-binutils-old: cross-gas cross-ar cross-ld cross-strip cross-size \
1778037d955Sniklas	cross-ranlib cross-nm
178e046c386Sniklas
17947c1ceabSniklascross-gas:
18047c1ceabSniklas	-mkdir -p ${CROSSDIR}/usr/obj
18147c1ceabSniklas	-mkdir -p ${CROSSDIR}/usr/bin
182e046c386Sniklas	-mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin
183917a796cSmickey	(cd ${.CURDIR}/gnu/usr.bin/gas; \
18447c1ceabSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
18547c1ceabSniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
186f6e60134Sniklas	    ${MAKE} obj; \
18747c1ceabSniklas	    TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
188f6e60134Sniklas	    ${MAKE}; \
189e046c386Sniklas	    TARGET_MACHINE_ARCH=${TARGET} \
19047c1ceabSniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
19147c1ceabSniklas	    ${MAKE} NOMAN= install)
192e046c386Sniklas	ln -sf ${CROSSDIR}/usr/bin/as \
193e046c386Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/as
194e046c386Sniklas
195e046c386Sniklascross-ld:
196e046c386Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
197e046c386Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
198917a796cSmickey	(cd ${.CURDIR}/gnu/usr.bin/ld; \
199e046c386Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
200e046c386Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
201f6e60134Sniklas	    ${MAKE} obj; \
202e046c386Sniklas	    TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
203f6e60134Sniklas	    ${MAKE} NOMAN=; \
204e046c386Sniklas	    TARGET_MACHINE_ARCH=${TARGET} \
205e046c386Sniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
206e046c386Sniklas	    ${MAKE} NOMAN= install)
207e046c386Sniklas	ln -sf ${CROSSDIR}/usr/bin/ld \
208e046c386Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ld
209e046c386Sniklas
210e046c386Sniklascross-ar:
211e046c386Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
212e046c386Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
213917a796cSmickey	(cd ${.CURDIR}/usr.bin/ar; \
214e046c386Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
215e046c386Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
216f6e60134Sniklas	    ${MAKE} obj; \
217f6e60134Sniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \
218e046c386Sniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
219e046c386Sniklas	    ${MAKE} NOMAN= install)
220e046c386Sniklas	ln -sf ${CROSSDIR}/usr/bin/ar \
221e046c386Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ar
22247c1ceabSniklas
2238037d955Sniklascross-ranlib:
2248037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
2258037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
226917a796cSmickey	(cd ${.CURDIR}/usr.bin/ranlib; \
2278037d955Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
2288037d955Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
229f6e60134Sniklas	    ${MAKE} obj; \
230f6e60134Sniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \
2318037d955Sniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
2328037d955Sniklas	    ${MAKE} NOMAN= install)
2338037d955Sniklas	ln -sf ${CROSSDIR}/usr/bin/ranlib \
2348037d955Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ranlib
2358037d955Sniklas
2368037d955Sniklascross-strip:
2378037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
2388037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
239917a796cSmickey	(cd ${.CURDIR}/usr.bin/strip; \
2408037d955Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
2418037d955Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
242f6e60134Sniklas	    ${MAKE} obj; \
2438037d955Sniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
244f6e60134Sniklas	    ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \
2458037d955Sniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
2468037d955Sniklas	    ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= install)
2478037d955Sniklas	ln -sf ${CROSSDIR}/usr/bin/strip \
2488037d955Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/strip
2498037d955Sniklas
2508037d955Sniklascross-size:
2518037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
2528037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
253917a796cSmickey	(cd ${.CURDIR}/usr.bin/size; \
2548037d955Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
2558037d955Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
256f6e60134Sniklas	    ${MAKE} obj; \
257f6e60134Sniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
258f6e60134Sniklas	    ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \
2598037d955Sniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
2608037d955Sniklas	    ${MAKE} NOMAN= install)
2618037d955Sniklas	ln -sf ${CROSSDIR}/usr/bin/size \
2628037d955Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/size
2638037d955Sniklas
2648037d955Sniklascross-nm:
2658037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
2668037d955Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
267917a796cSmickey	(cd ${.CURDIR}/usr.bin/nm; \
2688037d955Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
2698037d955Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
270f6e60134Sniklas	    ${MAKE} obj; \
271f6e60134Sniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
272f6e60134Sniklas	    ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \
2738037d955Sniklas	    DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
2748037d955Sniklas	    ${MAKE} NOMAN= install)
2758037d955Sniklas	ln -sf ${CROSSDIR}/usr/bin/nm \
2768037d955Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/nm
2778037d955Sniklas
2789c3ce19dSniklascross-gcc:
2799c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/obj
280f6e60134Sniklas	-mkdir -p ${CROSSDIR}/usr/bin
281917a796cSmickey	cd ${.CURDIR}/gnu/usr.bin/gcc; \
2829c3ce19dSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \
2839c3ce19dSniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
284f6e60134Sniklas	    ${MAKE} -f Makefile.bsd-wrapper obj
2859c3ce19dSniklas	(cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \
28662156da0Smickey	    /bin/sh ${.CURDIR}/gnu/usr.bin/gcc/configure \
2879c3ce19dSniklas	    --prefix ${CROSSDIR}/usr \
2889c3ce19dSniklas	    --target `cat ${CROSSDIR}/TARGET_CANON` && \
289ed738714Smickey	    ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \
290f6e60134Sniklas	    build_infodir=. \
2919c3ce19dSniklas	    GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \
292ed738714Smickey	    ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \
293f6e60134Sniklas	    GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \
294f6e60134Sniklas	    build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install)
29504ca17b0Sniklas	ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gcc \
29604ca17b0Sniklas	    ${CROSSDIR}/usr/bin/cc
29704ca17b0Sniklas	CPP=`${CROSSDIR}/usr/bin/cc -print-libgcc-file-name | \
29804ca17b0Sniklas	    sed 's/libgcc\.a/cpp/'`; \
29904ca17b0Sniklas	    sed -e 's#/usr/libexec/cpp#'$$CPP'#' \
300917a796cSmickey	    -e 's#/usr/include#${CROSSDIR}/usr/include#' \
301917a796cSmickey	    ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/bin/cpp
30204ca17b0Sniklas	chmod ${BINMODE} ${CROSSDIR}/usr/bin/cpp
30304ca17b0Sniklas	chown ${BINOWN}.${BINGRP} ${CROSSDIR}/usr/bin/cpp
30404ca17b0Sniklas
305f6e60134Sniklascross-lib:
306f6e60134Sniklas	-mkdir -p ${CROSSDIR}/usr/obj
307f6e60134Sniklas	-mkdir -p ${CROSSDIR}/usr/lib
308f6e60134Sniklas	-mkdir -p ${CROSSDIR}/var/db
309f6e60134Sniklas	MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH`; \
310f6e60134Sniklas	export MACHINE MACHINE_ARCH; \
311917a796cSmickey	(cd ${.CURDIR}/lib; \
312f6e60134Sniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
313f6e60134Sniklas	    BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
314f6e60134Sniklas	    ${MAKE} obj; \
315f6e60134Sniklas	    for lib in csu libc; do \
316f6e60134Sniklas		(cd $$lib; \
317f4a9ae37Sniklas		    ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
318f4a9ae37Sniklas		    ${MAKE} NOMAN=; \
319883e2605Smickey		    ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
320883e2605Smickey		    DESTDIR=${CROSSDIR} ${MAKE} NOMAN= install); \
321f6e60134Sniklas	    done; \
322f4a9ae37Sniklas	    ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \
323883e2605Smickey	    ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
324883e2605Smickey	    DESTDIR=${CROSSDIR} SKIPDIR=libocurses/PSD.doc \
325883e2605Smickey	    ${MAKE} NOMAN= install)
326f6e60134Sniklas	ln -sf ${CROSSDIR}/usr/lib \
327f6e60134Sniklas	    ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/lib
328f6e60134Sniklas
3299c3ce19dSniklas.endif
3309c3ce19dSniklas
331df930be7Sderaadt.include <bsd.subdir.mk>
332