Makefile revision 1.36
1# $OpenBSD: Makefile,v 1.36 1998/05/18 17:37:04 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 cross-lib 89 90CROSSDIR= ${DESTDIR}/usr/cross/${TARGET} 91CROSSENV= AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \ 92 CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \ 93 LD=${CROSSDIR}/usr/bin/ld NM=${CROSSDIR}/usr/bin/nm \ 94 RANLIB=${CROSSDIR}/usr/bin/ranlib \ 95 SIZE=${CROSSDIR}/usr/bin/size STRIP=${CROSSDIR}/usr/bin/strip \ 96 HOSTCC=cc 97 98cross-helpers: 99 -mkdir -p ${CROSSDIR}/usr/include 100 echo _MACHINE_ARCH | \ 101 cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \ 102 ${CPP} -E -I${.CURDIR}/sys/arch | \ 103 sed -n '$$p' >${CROSSDIR}/TARGET_ARCH 104 eval `grep '^osr=' sys/conf/newvers.sh`; \ 105 sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \ 106 ${CROSSDIR}/TARGET_CANON 107 108cross-includes: 109 -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include 110 ${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 111 DESTDIR=${CROSSDIR} includes 112 ln -sf ${CROSSDIR}/usr/include \ 113 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/include 114 115.if ${TARGET} == "powerpc" || ${TARGET} == "alpha" || ${TARGET} == "arc" || \ 116 ${TARGET} == "pmax" || ${TARGET} == "wgrisc" || ${TARGET} == "hppa" 117cross-binutils: cross-binutils-new 118.else 119cross-binutils: cross-binutils-old 120.endif 121 122cross-binutils-new: 123 -mkdir -p ${CROSSDIR}/usr/obj 124 -mkdir -p ${CROSSDIR}/usr/bin 125 export BSDSRCDIR=`pwd`; \ 126 (cd ${.CURDIR}/gnu/usr.bin/binutils; \ 127 BSDOBJDIR=${CROSSDIR}/usr/obj \ 128 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 129 ${MAKE} -f Makefile.bsd-wrapper obj); \ 130 (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \ 131 /bin/sh ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \ 132 --prefix ${CROSSDIR}/usr \ 133 --target `cat ${CROSSDIR}/TARGET_CANON` && \ 134 ${MAKE} && ${MAKE} install) 135 ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \ 136 ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \ 137 ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder 138 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-as \ 139 ${CROSSDIR}/usr/bin/as 140 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ar \ 141 ${CROSSDIR}/usr/bin/ar 142 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ld \ 143 ${CROSSDIR}/usr/bin/ld 144 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-strip \ 145 ${CROSSDIR}/usr/bin/strip 146 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-size \ 147 ${CROSSDIR}/usr/bin/size 148 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-ranlib \ 149 ${CROSSDIR}/usr/bin/ranlib 150 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-nm \ 151 ${CROSSDIR}/usr/bin/nm 152 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder \ 153 ${CROSSDIR}/usr/bin/lorder 154 155cross-binutils-old: cross-gas cross-ar cross-ld cross-strip cross-size \ 156 cross-ranlib cross-nm 157 158cross-gas: 159 -mkdir -p ${CROSSDIR}/usr/obj 160 -mkdir -p ${CROSSDIR}/usr/bin 161 -mkdir -p ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin 162 (cd ${.CURDIR}/gnu/usr.bin/gas; \ 163 BSDOBJDIR=${CROSSDIR}/usr/obj \ 164 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 165 ${MAKE} obj; \ 166 TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 167 ${MAKE}; \ 168 TARGET_MACHINE_ARCH=${TARGET} \ 169 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 170 ${MAKE} NOMAN= install) 171 ln -sf ${CROSSDIR}/usr/bin/as \ 172 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/as 173 174cross-ld: 175 -mkdir -p ${CROSSDIR}/usr/obj 176 -mkdir -p ${CROSSDIR}/usr/bin 177 (cd ${.CURDIR}/gnu/usr.bin/ld; \ 178 BSDOBJDIR=${CROSSDIR}/usr/obj \ 179 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 180 ${MAKE} obj; \ 181 TARGET_MACHINE_ARCH=${TARGET} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 182 ${MAKE} NOMAN=; \ 183 TARGET_MACHINE_ARCH=${TARGET} \ 184 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 185 ${MAKE} NOMAN= install) 186 ln -sf ${CROSSDIR}/usr/bin/ld \ 187 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ld 188 189cross-ar: 190 -mkdir -p ${CROSSDIR}/usr/obj 191 -mkdir -p ${CROSSDIR}/usr/bin 192 (cd ${.CURDIR}/usr.bin/ar; \ 193 BSDOBJDIR=${CROSSDIR}/usr/obj \ 194 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 195 ${MAKE} obj; \ 196 MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \ 197 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 198 ${MAKE} NOMAN= install) 199 ln -sf ${CROSSDIR}/usr/bin/ar \ 200 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ar 201 202cross-ranlib: 203 -mkdir -p ${CROSSDIR}/usr/obj 204 -mkdir -p ${CROSSDIR}/usr/bin 205 (cd ${.CURDIR}/usr.bin/ranlib; \ 206 BSDOBJDIR=${CROSSDIR}/usr/obj \ 207 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 208 ${MAKE} obj; \ 209 MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \ 210 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 211 ${MAKE} NOMAN= install) 212 ln -sf ${CROSSDIR}/usr/bin/ranlib \ 213 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/ranlib 214 215cross-strip: 216 -mkdir -p ${CROSSDIR}/usr/obj 217 -mkdir -p ${CROSSDIR}/usr/bin 218 (cd ${.CURDIR}/usr.bin/strip; \ 219 BSDOBJDIR=${CROSSDIR}/usr/obj \ 220 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 221 ${MAKE} obj; \ 222 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 223 ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \ 224 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 225 ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN= install) 226 ln -sf ${CROSSDIR}/usr/bin/strip \ 227 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/strip 228 229cross-size: 230 -mkdir -p ${CROSSDIR}/usr/obj 231 -mkdir -p ${CROSSDIR}/usr/bin 232 (cd ${.CURDIR}/usr.bin/size; \ 233 BSDOBJDIR=${CROSSDIR}/usr/obj \ 234 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 235 ${MAKE} obj; \ 236 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 237 ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \ 238 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 239 ${MAKE} NOMAN= install) 240 ln -sf ${CROSSDIR}/usr/bin/size \ 241 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/size 242 243cross-nm: 244 -mkdir -p ${CROSSDIR}/usr/obj 245 -mkdir -p ${CROSSDIR}/usr/bin 246 (cd ${.CURDIR}/usr.bin/nm; \ 247 BSDOBJDIR=${CROSSDIR}/usr/obj \ 248 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 249 ${MAKE} obj; \ 250 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 251 ${MAKE} TARGET_MACHINE_ARCH=${TARGET} NOMAN=; \ 252 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 253 ${MAKE} NOMAN= install) 254 ln -sf ${CROSSDIR}/usr/bin/nm \ 255 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/bin/nm 256 257cross-gcc: 258 -mkdir -p ${CROSSDIR}/usr/obj 259 -mkdir -p ${CROSSDIR}/usr/bin 260 cd ${.CURDIR}/gnu/usr.bin/gcc; \ 261 BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \ 262 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 263 ${MAKE} -f Makefile.bsd-wrapper obj 264 (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \ 265 /bin/sh ${.CURDIR}/gnu/usr.bin/gcc/configure \ 266 --prefix ${CROSSDIR}/usr \ 267 --target `cat ${CROSSDIR}/TARGET_CANON` && \ 268 ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ 269 build_infodir=. \ 270 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ 271 ${MAKE} BISON=yacc LANGUAGES=c LDFLAGS=${LDSTATIC} \ 272 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ 273 build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) 274 ln -sf ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-gcc \ 275 ${CROSSDIR}/usr/bin/cc 276 CPP=`${CROSSDIR}/usr/bin/cc -print-libgcc-file-name | \ 277 sed 's/libgcc\.a/cpp/'`; \ 278 sed -e 's#/usr/libexec/cpp#'$$CPP'#' \ 279 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 280 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/bin/cpp 281 chmod ${BINMODE} ${CROSSDIR}/usr/bin/cpp 282 chown ${BINOWN}.${BINGRP} ${CROSSDIR}/usr/bin/cpp 283 284cross-lib: 285 -mkdir -p ${CROSSDIR}/usr/obj 286 -mkdir -p ${CROSSDIR}/usr/lib 287 -mkdir -p ${CROSSDIR}/var/db 288 MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH`; \ 289 export MACHINE MACHINE_ARCH; \ 290 (cd ${.CURDIR}/lib; \ 291 BSDOBJDIR=${CROSSDIR}/usr/obj \ 292 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 293 ${MAKE} obj; \ 294 for lib in csu libc; do \ 295 (cd $$lib; \ 296 ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 297 ${MAKE} NOMAN=; \ 298 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 299 ${MAKE} NOMAN= install); \ 300 done; \ 301 ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN=; \ 302 MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 303 SKIPDIR=libocurses/PSD.doc ${MAKE} NOMAN= install) 304 ln -sf ${CROSSDIR}/usr/lib \ 305 ${CROSSDIR}/usr/`cat ${CROSSDIR}/TARGET_CANON`/lib 306 307.endif 308 309.include <bsd.subdir.mk> 310