xref: /openbsd/Makefile (revision 5034ab0f)
1*5034ab0fSderaadt#	$OpenBSD: Makefile,v 1.16 1997/04/18 06:47:08 deraadt Exp $
2df930be7Sderaadt#	$NetBSD: Makefile,v 1.25 1995/10/09 02:11:28 thorpej Exp $
3df930be7Sderaadt
4*5034ab0fSderaadt#
5*5034ab0fSderaadt# For more information on building in tricky environments, please see
6*5034ab0fSderaadt# the list of possible environment variables described in
7*5034ab0fSderaadt# /usr/share/mk/bsd.README.
8*5034ab0fSderaadt#
9*5034ab0fSderaadt# Building recommendations:
10*5034ab0fSderaadt#
11*5034ab0fSderaadt# 1) If at all possible, put this source tree in /usr/src.  If /usr/src
12*5034ab0fSderaadt# must be a symbolic link, setenv BSDSRCDIR to point to the real location.
13*5034ab0fSderaadt#
14*5034ab0fSderaadt# 2) It is also recommended that you compile with objects outside the
15*5034ab0fSderaadt# source tree. To do this, ensure /usr/obj exists or points to some
16*5034ab0fSderaadt# area of disk of sufficient size.  Then do "cd /usr/src; make obj".
17*5034ab0fSderaadt# This will make a symbolic link called "obj" in each directory, as
18*5034ab0fSderaadt# well as populate the /usr/obj properly with directories for the
19*5034ab0fSderaadt# objects.
20*5034ab0fSderaadt#
21*5034ab0fSderaadt# 3) If you are reasonably sure that things will compile OK, use the
22*5034ab0fSderaadt# "make build" target supplied here. Good luck.
23094eb183Smickey
24*5034ab0fSderaadt.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
3196eaadcaStholo.if defined(KERBEROS)
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:
62094eb183Smickey	(cd ${.CURDIR}/share/mk && ${MAKE} install)
63dd9d2c6eSderaadt	(cd ${.CURDIR}/include; ${MAKE} includes)
64df930be7Sderaadt	${MAKE} cleandir
65df930be7Sderaadt	(cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
66df930be7Sderaadt	(cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install)
67a60dba07Sderaadt.if (${MACHINE_ARCH} == "mips")
6862085dbcSbriggs	ldconfig
69a60dba07Sderaadt.endif
7096eaadcaStholo.if defined(KERBEROS)
71b1b0ccd8Stholo	(cd ${.CURDIR}/kerberosIV && ${MAKE} build)
7296eaadcaStholo.endif
73df930be7Sderaadt	${MAKE} depend && ${MAKE} && ${MAKE} install
74df930be7Sderaadt
759c3ce19dSniklas.if !defined(TARGET)
769c3ce19dSniklascross-tools:
779c3ce19dSniklas	echo "TARGET must be set"; exit 1
789c3ce19dSniklas.else
799c3ce19dSniklascross-tools:	cross-helpers cross-includes cross-binutils cross-gcc
809c3ce19dSniklas
819c3ce19dSniklasCROSSDIR=	${DESTDIR}/usr/cross/${TARGET}
829c3ce19dSniklas
839c3ce19dSniklascross-helpers:
849c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/include
859c3ce19dSniklas	echo _MACHINE_ARCH | \
869c3ce19dSniklas	    cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \
879c3ce19dSniklas	    ${CPP} -E |sed -n '$$p' >${CROSSDIR}/TARGET_ARCH
889c3ce19dSniklas	eval `grep '^osr=' sys/conf/newvers.sh`; \
899c3ce19dSniklas	   sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \
909c3ce19dSniklas	   ${CROSSDIR}/TARGET_CANON
919c3ce19dSniklas
929c3ce19dSniklascross-includes:
939c3ce19dSniklas	${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
949c3ce19dSniklas	    DESTDIR=${CROSSDIR} includes
959c3ce19dSniklas
969c3ce19dSniklascross-binutils:
979c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/obj
989c3ce19dSniklas	export BSDSRCDIR=`pwd`; \
999c3ce19dSniklas	    (cd ${.CURDIR}/gnu/usr.bin/binutils; \
1009c3ce19dSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj \
1019c3ce19dSniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1029c3ce19dSniklas	    ${MAKE} -f Makefile.bsd-wrapper obj); \
1039c3ce19dSniklas	    (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \
1049c3ce19dSniklas	    ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \
1059c3ce19dSniklas	    --prefix ${CROSSDIR}/usr \
1069c3ce19dSniklas	    --target `cat ${CROSSDIR}/TARGET_CANON` && \
1079c3ce19dSniklas	    ${MAKE} && ${MAKE} install)
1089c3ce19dSniklas	${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \
1099c3ce19dSniklas	    ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \
1109c3ce19dSniklas	    ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder
1119c3ce19dSniklas
1129c3ce19dSniklascross-gcc:
1139c3ce19dSniklas	-mkdir -p ${CROSSDIR}/usr/obj
1149c3ce19dSniklas	(cd gnu/usr.bin/gcc; \
1159c3ce19dSniklas	    BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \
1169c3ce19dSniklas	    MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1179c3ce19dSniklas	    ${MAKE} -f Makefile.bsd-wrapper obj)
1189c3ce19dSniklas	(cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \
1199c3ce19dSniklas	    ${.CURDIR}/gnu/usr.bin/gcc/configure \
1209c3ce19dSniklas	    --prefix ${CROSSDIR}/usr \
1219c3ce19dSniklas	    --target `cat ${CROSSDIR}/TARGET_CANON` && \
1229c3ce19dSniklas	    ${MAKE} BISON=yacc LANGUAGES=c \
1239c3ce19dSniklas	    GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \
1249c3ce19dSniklas	    ${MAKE} LANGUAGES=c install)
1259c3ce19dSniklas.endif
1269c3ce19dSniklas
127df930be7Sderaadt.include <bsd.subdir.mk>
128