Makefile revision 1.28
1# $OpenBSD: Makefile,v 1.28 1998/05/04 21:28:18 mickey Exp $ 2 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 23.include <bsd.own.mk> # for NOMAN, if it's there. 24 25SUBDIR+= lib include bin libexec sbin usr.bin usr.sbin share games 26SUBDIR+= gnu 27 28SUBDIR+= sys lkm 29 30.if (${KERBEROS} == "yes") 31SUBDIR+= kerberosIV 32.endif 33 34.if make(clean) || make(cleandir) || make(obj) 35SUBDIR+= distrib 36.endif 37 38.if exists(regress) 39.ifmake !(install) 40SUBDIR+= regress 41.endif 42 43regression-tests: 44 @echo Running regression tests... 45 @(cd ${.CURDIR}/regress && ${MAKE} regress) 46.endif 47 48includes: 49 (cd ${.CURDIR}/include; ${MAKE} includes) 50 51beforeinstall: 52.ifndef DESTDIR 53 (cd ${.CURDIR}/etc && ${MAKE} DESTDIR=/ distrib-dirs) 54.else 55 (cd ${.CURDIR}/etc && ${MAKE} distrib-dirs) 56.endif 57 (cd ${.CURDIR}/include; ${MAKE} includes) 58 59afterinstall: 60.ifndef NOMAN 61 (cd ${.CURDIR}/share/man && ${MAKE} makedb) 62.endif 63 64build: 65.ifdef GLOBAL_AUTOCONF_CACHE 66 rm -f ${GLOBAL_AUTOCONF_CACHE} 67.endif 68 (cd ${.CURDIR}/share/mk && ${MAKE} install) 69 (cd ${.CURDIR}/include; ${MAKE} includes) 70 ${MAKE} cleandir 71 (cd ${.CURDIR}/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install) 72 (cd ${.CURDIR}/gnu/lib && ${MAKE} depend && ${MAKE} && ${MAKE} install) 73.if (${MACHINE_ARCH} == "mips") 74 ldconfig 75.endif 76.if (${KERBEROS} == "yes") 77 (cd ${.CURDIR}/kerberosIV && ${MAKE} build) 78.endif 79.if (${MACHINE_ARCH} == "mips") 80 ldconfig 81.endif 82 ${MAKE} depend && ${MAKE} && ${MAKE} install 83 84.if !defined(TARGET) 85cross-tools: 86 echo "TARGET must be set"; exit 1 87.else 88cross-tools: cross-helpers cross-includes cross-binutils cross-gcc 89 90CROSSDIR= ${DESTDIR}/usr/cross/${TARGET} 91 92cross-helpers: 93 -mkdir -p ${CROSSDIR}/usr/include 94 echo _MACHINE_ARCH | \ 95 cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \ 96 ${CPP} -E -I${.CURDIR}/sys/arch | \ 97 sed -n '$$p' >${CROSSDIR}/TARGET_ARCH 98 eval `grep '^osr=' sys/conf/newvers.sh`; \ 99 sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \ 100 ${CROSSDIR}/TARGET_CANON 101 102cross-includes: 103 ${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 104 DESTDIR=${CROSSDIR} includes 105 106.if ${TARGET} == "powerpc" || ${TARGET} == "alpha" || ${TARGET} == "arc" || \ 107 ${TARGET} == "pmax" || ${TARGET} == "wgrisc" || ${TARGET} == "hppa" 108cross-binutils: cross-binutils-new 109.else 110cross-binutils: cross-binutils-old 111.endif 112 113cross-binutils-new: 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; \ 121 /bin/sh ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \ 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 128 129cross-binutils-old: cross-gas cross-ar cross-ld 130 131cross-gas: 132 -mkdir -p ${CROSSDIR}/usr/obj 133 -mkdir -p ${CROSSDIR}/usr/bin 134 -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin 135 (cd gnu/usr.bin/gas; \ 136 BSDOBJDIR=${CROSSDIR}/usr/obj \ 137 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 138 ${MAKE} obj) 139 (cd gnu/usr.bin/gas; \ 140 TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 141 ${MAKE}) 142 (cd gnu/usr.bin/gas; \ 143 TARGET_MACHINE_ARCH=${TARGET} \ 144 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 145 ${MAKE} NOMAN= install) 146 ln -sf ${CROSSDIR}/usr/bin/as \ 147 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/as 148 149# Not yet functional 150cross-ld: 151 -mkdir -p ${CROSSDIR}/usr/obj 152 -mkdir -p ${CROSSDIR}/usr/bin 153 (cd gnu/usr.bin/ld; \ 154 BSDOBJDIR=${CROSSDIR}/usr/obj \ 155 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 156 ${MAKE} obj) 157 (cd gnu/usr.bin/ld; \ 158 TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 159 ${MAKE} NOMAN=) 160 (cd gnu/usr.bin/ld; \ 161 TARGET_MACHINE_ARCH=${TARGET} \ 162 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 163 ${MAKE} NOMAN= install) 164 ln -sf ${CROSSDIR}/usr/bin/ld \ 165 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ld 166 167# Not yet tested for compatibility with any target 168cross-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; \ 177 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 178 ${MAKE} NOMAN= install) 179 ln -sf ${CROSSDIR}/usr/bin/ar \ 180 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ar 181 182cross-gcc: 183 -mkdir -p ${CROSSDIR}/usr/obj 184 (cd gnu/usr.bin/gcc; \ 185 BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \ 186 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 187 ${MAKE} -f Makefile.bsd-wrapper obj) 188 (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \ 189 /bin/sh ${.CURDIR}/gnu/usr.bin/gcc/configure \ 190 --prefix ${CROSSDIR}/usr \ 191 --target `cat ${CROSSDIR}/TARGET_CANON` && \ 192 ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ 193 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ 194 ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ 195 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" install) 196.endif 197 198.include <bsd.subdir.mk> 199