Makefile revision 1.29
1# $OpenBSD: Makefile,v 1.29 1998/05/11 07:43:12 niklas 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 cross-strip cross-size \ 130 cross-ranlib cross-nm 131 132cross-gas: 133 -mkdir -p ${CROSSDIR}/usr/obj 134 -mkdir -p ${CROSSDIR}/usr/bin 135 -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin 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; \ 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 151cross-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 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-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 196cross-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 212cross-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 227cross-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) 234 (cd usr.bin/nm; MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=) 235 (cd usr.bin/nm; \ 236 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 237 ${MAKE} NOMAN= install) 238 ln -sf ${CROSSDIR}/usr/bin/nm \ 239 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/nm 240 241cross-gcc: 242 -mkdir -p ${CROSSDIR}/usr/obj 243 (cd gnu/usr.bin/gcc; \ 244 BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \ 245 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 246 ${MAKE} -f Makefile.bsd-wrapper obj) 247 (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \ 248 /bin/sh ${.CURDIR}/gnu/usr.bin/gcc/configure \ 249 --prefix ${CROSSDIR}/usr \ 250 --target `cat ${CROSSDIR}/TARGET_CANON` && \ 251 ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ 252 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ 253 ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ 254 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" install) 255.endif 256 257.include <bsd.subdir.mk> 258