xref: /openbsd/Makefile (revision 71e87bb9)
1*71e87bb9Skstailey#	$OpenBSD: Makefile,v 1.19 1997/07/29 03:37:03 kstailey Exp $
2df930be7Sderaadt#	$NetBSD: Makefile,v 1.25 1995/10/09 02:11:28 thorpej Exp $
3df930be7Sderaadt
45034ab0fSderaadt#
55034ab0fSderaadt# For more information on building in tricky environments, please see
65034ab0fSderaadt# the list of possible environment variables described in
75034ab0fSderaadt# /usr/share/mk/bsd.README.
85034ab0fSderaadt#
95034ab0fSderaadt# Building recommendations:
105034ab0fSderaadt#
115034ab0fSderaadt# 1) If at all possible, put this source tree in /usr/src.  If /usr/src
125034ab0fSderaadt# must be a symbolic link, setenv BSDSRCDIR to point to the real location.
135034ab0fSderaadt#
145034ab0fSderaadt# 2) It is also recommended that you compile with objects outside the
155034ab0fSderaadt# source tree. To do this, ensure /usr/obj exists or points to some
165034ab0fSderaadt# area of disk of sufficient size.  Then do "cd /usr/src; make obj".
175034ab0fSderaadt# This will make a symbolic link called "obj" in each directory, as
185034ab0fSderaadt# well as populate the /usr/obj properly with directories for the
195034ab0fSderaadt# objects.
205034ab0fSderaadt#
215034ab0fSderaadt# 3) If you are reasonably sure that things will compile OK, use the
225034ab0fSderaadt# "make build" target supplied here. Good luck.
23094eb183Smickey
245034ab0fSderaadt.include <bsd.own.mk>	# for NOMAN, if it's there.
25df930be7Sderaadt
26df930be7SderaadtSUBDIR+= lib include bin libexec sbin usr.bin usr.sbin share games
27df930be7SderaadtSUBDIR+= gnu
28df930be7Sderaadt
29900e3302StholoSUBDIR+= sys lkm
30df930be7Sderaadt
3111ee01d8Smillert.if (${KERBEROS} == "yes")
32b1b0ccd8StholoSUBDIR+= kerberosIV
3396eaadcaStholo.endif
34b1b0ccd8Stholo
35df930be7Sderaadt.if exists(regress)
36df930be7Sderaadt.ifmake !(install)
37df930be7SderaadtSUBDIR+= regress
38df930be7Sderaadt.endif
39df930be7Sderaadt
40df930be7Sderaadtregression-tests:
41df930be7Sderaadt	@echo Running regression tests...
42df930be7Sderaadt	@(cd ${.CURDIR}/regress && ${MAKE} regress)
43df930be7Sderaadt.endif
44df930be7Sderaadt
454ae007f5Sderaadtincludes:
464ae007f5Sderaadt	(cd ${.CURDIR}/include; ${MAKE} includes)
474ae007f5Sderaadt
480d5e6725Sderaadtbeforeinstall:
490d5e6725Sderaadt.ifndef DESTDIR
500d5e6725Sderaadt	(cd ${.CURDIR}/etc && ${MAKE} DESTDIR=/ distrib-dirs)
510d5e6725Sderaadt.else
520d5e6725Sderaadt	(cd ${.CURDIR}/etc && ${MAKE} distrib-dirs)
530d5e6725Sderaadt.endif
546cae596cSderaadt	(cd ${.CURDIR}/include; ${MAKE} includes)
55df930be7Sderaadt
56df930be7Sderaadtafterinstall:
57df930be7Sderaadt.ifndef NOMAN
58df930be7Sderaadt	(cd ${.CURDIR}/share/man && ${MAKE} makedb)
59df930be7Sderaadt.endif
60df930be7Sderaadt
61df930be7Sderaadtbuild:
62*71e87bb9Skstailey.ifdef GLOBAL_AUTOCONF_CACHE
63*71e87bb9Skstailey	rm -f $GLOBAL_AUTOCONF_CACHE
649a76bd19Skstailey.endif
65094eb183Smickey	(cd ${.CURDIR}/share/mk && ${MAKE} install)
66dd9d2c6eSderaadt	(cd ${.CURDIR}/include; ${MAKE} includes)
67df930be7Sderaadt	${MAKE} cleandir
68df930be7Sderaadt	(cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
69df930be7Sderaadt	(cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
70a60dba07Sderaadt.if (${MACHINE_ARCH} == "mips")
7162085dbcSbriggs	ldconfig
72a60dba07Sderaadt.endif
7311ee01d8Smillert.if (${KERBEROS} == "yes")
74b1b0ccd8Stholo	(cd ${.CURDIR}/kerberosIV && ${MAKE} build)
7596eaadcaStholo.endif
76df930be7Sderaadt	${MAKE} depend && ${MAKE} && ${MAKE} install
77df930be7Sderaadt
789c3ce19dSniklas.if !defined(TARGET)
799c3ce19dSniklascross-tools:
809c3ce19dSniklas	echo "TARGET must be set"; exit 1
819c3ce19dSniklas.else
829c3ce19dSniklascross-tools:	cross-helpers cross-includes cross-binutils cross-gcc
839c3ce19dSniklas
849c3ce19dSniklasCROSSDIR=	${DESTDIR}/usr/cross/${TARGET}
859c3ce19dSniklas
869c3ce19dSniklascross-helpers:
879c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/include
889c3ce19dSniklas	echo _MACHINE_ARCH | \
899c3ce19dSniklas	    cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \
909c3ce19dSniklas	    ${CPP} -E |sed -n '$$p' >${CROSSDIR}/TARGET_ARCH
919c3ce19dSniklas	eval `grep '^osr=' sys/conf/newvers.sh`; \
929c3ce19dSniklas	   sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \
939c3ce19dSniklas	   ${CROSSDIR}/TARGET_CANON
949c3ce19dSniklas
959c3ce19dSniklascross-includes:
969c3ce19dSniklas	${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
979c3ce19dSniklas	    DESTDIR=${CROSSDIR} includes
989c3ce19dSniklas
999c3ce19dSniklascross-binutils:
1009c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/obj
1019c3ce19dSniklas	export BSDSRCDIR=`pwd`; \
1029c3ce19dSniklas	    (cd ${.CURDIR}/gnu/usr.bin/binutils; \
1039c3ce19dSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
1049c3ce19dSniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1059c3ce19dSniklas	    ${MAKE} -f Makefile.bsd-wrapper obj); \
1069c3ce19dSniklas	    (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \
1079c3ce19dSniklas	    ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \
1089c3ce19dSniklas	    --prefix ${CROSSDIR}/usr \
1099c3ce19dSniklas	    --target `cat ${CROSSDIR}/TARGET_CANON` && \
1109c3ce19dSniklas	    ${MAKE} && ${MAKE} install)
1119c3ce19dSniklas	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \
1129c3ce19dSniklas	    ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \
1139c3ce19dSniklas	    ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder
1149c3ce19dSniklas
1159c3ce19dSniklascross-gcc:
1169c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/obj
1179c3ce19dSniklas	(cd gnu/usr.bin/gcc; \
1189c3ce19dSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \
1199c3ce19dSniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1209c3ce19dSniklas	    ${MAKE} -f Makefile.bsd-wrapper obj)
1219c3ce19dSniklas	(cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \
1229c3ce19dSniklas	    ${.CURDIR}/gnu/usr.bin/gcc/configure \
1239c3ce19dSniklas	    --prefix ${CROSSDIR}/usr \
1249c3ce19dSniklas	    --target `cat ${CROSSDIR}/TARGET_CANON` && \
1259c3ce19dSniklas	    ${MAKE} BISON=yacc LANGUAGES=c \
1269c3ce19dSniklas	    GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \
1279c3ce19dSniklas	    ${MAKE} LANGUAGES=c install)
1289c3ce19dSniklas.endif
1299c3ce19dSniklas
130df930be7Sderaadt.include <bsd.subdir.mk>
131