Makefile.cross revision 1.89
1# $OpenBSD: Makefile.cross,v 1.89 2016/12/18 17:03:08 patrick Exp $ 2 3cross-tools: cross-includes cross-binutils cross-gcc cross-lib 4cross-distrib: cross-tools cross-bin cross-share cross-sys cross-etc-root-var 5# cross-gnu \ 6 7# Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving 8# this variable to work. 9.if (${TARGET} == "arm64") 10TARGET_ARCH= aarch64 11.elif (${TARGET} == "armv7") 12TARGET_ARCH= arm 13.elif (${TARGET} == "luna88k") 14TARGET_ARCH= m88k 15.elif (${TARGET} == "sgi" || ${TARGET} == "octeon") 16TARGET_ARCH= mips64 17.elif (${TARGET} == "loongson") 18TARGET_ARCH= mips64el 19TARGET_CPU= mips64 20.elif (${TARGET} == "macppc" || ${TARGET} == "socppc") 21TARGET_ARCH= powerpc 22.elif (${TARGET} == "landisk") 23TARGET_ARCH= sh 24.else 25TARGET_ARCH= ${TARGET} 26.endif 27TARGET_CPU?= ${TARGET_ARCH} 28 29# List of LP64 archs 30# XXX move to bsd.*.mk? 31LP64_ARCH = aarch64 amd64 alpha mips64 sparc64 32 33TARGET_IS_LP64 = 34MACHINE_IS_LP64 = 35.for _ in ${LP64_ARCH} 36. if !empty(TARGET_ARCH:M$_) 37 TARGET_IS_LP64 = yes 38. endif 39. if !empty(MACHINE_ARCH:M$_) 40 MACHINE_IS_LP64 = yes 41. endif 42.endfor 43 44#CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include 45#CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static 46CROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG} 47CROSSCXXFLAGS?= ${CROSSCPPFLAGS} 48#LDSTATIC?= -static 49 50CROSSDIR= ${DESTDIR}/usr/cross/${TARGET} 51CROSSENV= AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \ 52 AS=${CROSSDIR}/usr/${TARGET_CANON}/bin/as \ 53 CC=${CROSSDIR}/usr/${TARGET_CANON}/bin/cc \ 54 CPP=${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp \ 55 CXX=${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ \ 56 LD=${CROSSDIR}/usr/${TARGET_CANON}/bin/ld \ 57 OBJCOPY=${CROSSDIR}/usr/${TARGET_CANON}/bin/objcopy \ 58 LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib \ 59 STRIP=${CROSSDIR}/usr/${TARGET_CANON}/bin/strip \ 60 HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= \ 61 HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \ 62 HOSTLDFLAGS=\"${LDFLAGS}\" \ 63 CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \ 64 CXXFLAGS=\"${CROSSCXXFLAGS}\" \ 65 LDFLAGS=\"${CROSSLDFLAGS}\" 66CROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin 67CROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH} 68CROSSLANGS?= c c++ 69 70TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` 71 72CROSSDIRS= ${CROSSDIR}/.dirs_done 73CROSSOBJ= ${CROSSDIR}/.obj_done 74CROSSINCLUDES= ${CROSSDIR}/.includes_done 75CROSSBINUTILS= ${CROSSDIR}/.binutils_done 76CROSSGCC= ${CROSSDIR}/.gcc_done 77#NO_CROSS= isakmpd keynote ssh 78 79.include <bsd.own.mk> 80 81.for _arch in ${TARGET_ARCH} 82.if !empty(CLANG_ARCH:M${_arch}) 83COMPILER_VERSION=clang 84.elif !empty(GCC3_ARCH:M${_arch}) 85COMPILER_VERSION=gcc3 86.else 87COMPILER_VERSION=gcc4 88.endif 89 90.if !empty(PIE_ARCH:M${_arch}) 91NOPIE_FLAGS=-fno-pie 92NOPIE_LDFLAGS=-nopie 93PIE_DEFAULT=${DEFAULT_PIE_DEF} 94.else 95NOPIE_FLAGS= 96PIE_DEFAULT= 97.endif 98 99BINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \ 100 strings strip 101BINUTILS_DIR=gnu/usr.bin/binutils-2.17 102.endfor 103 104# no libcrypto.... these won't build 105#NO_CROSS+= dc passwd ppp tcpdump telnet ftp sasyncd vnconfig 106 107# explicit cross-compile 108NO_CROSS+=microcode 109NO_CROSS+=groff binutils binutils-2.17 perl texinfo gcc cvs 110NO_CROSS+=nsd 111NO_CROSS+=bind 112NO_CROSS+=unbound 113 114cross-dirs: ${CROSSDIRS} 115cross-obj: ${CROSSOBJ} 116cross-includes: ${CROSSINCLUDES} 117cross-binutils: ${CROSSBINUTILS} 118cross-gcc: ${CROSSGCC} 119 120cross-env: 121 @echo ${CROSSENV} MACHINE=${TARGET} \ 122 MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 123 MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \ 124 BSDOBJDIR=${CROSSDIR}/usr/obj \ 125 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} 126 127${CROSSDIRS}: 128.if ${TARGET_ARCH} == "arm" && ${MACHINE_IS_LP64} == "yes" 129 # this config is allowed 130.elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64} 131 @echo "host and target have different size longs" 132 @echo "cross compiler generates bad code; aborting"; exit 1 133.endif 134 @-mkdir -p ${CROSSDIR} 135 @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH 136 @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` 137 @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU 138 @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU` 139 @eval `grep '^osr=' sys/conf/newvers.sh`; \ 140 echo ${TARGET_ARCH}-unknown-openbsd$$osr > \ 141 ${CROSSDIR}/TARGET_CANON 142 @-mkdir -p ${CROSSDIR} 143 @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON} 144 @ln -sf ${CROSSDIR}/usr/include \ 145 ${CROSSDIR}/usr/${TARGET_CANON}/include 146 @ln -sf ${CROSSDIR}/usr/lib \ 147 ${CROSSDIR}/usr/${TARGET_CANON}/lib 148 @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin 149 @(cd ${.CURDIR}/etc && DESTDIR=${CROSSDIR} ${MAKE} distrib-dirs) 150 @touch ${CROSSDIRS} 151 152${CROSSOBJ}: ${CROSSDIRS} 153 @-mkdir -p ${CROSSDIR}/usr/obj 154 @(cd ${.CURDIR} && \ 155 BSDOBJDIR=${CROSSDIR}/usr/obj \ 156 COMPILER_VERSION=${COMPILER_VERSION} \ 157 MACHINE=${TARGET} \ 158 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 159 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 160 ${MAKE} obj) 161 @touch ${CROSSOBJ} 162 163${CROSSINCLUDES}: ${CROSSOBJ} 164 @-mkdir -p ${CROSSDIR}/usr/include 165 @(cd ${.CURDIR}/include && \ 166 COMPILER_VERSION=${COMPILER_VERSION} \ 167 MACHINE=${TARGET} \ 168 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 169 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 170 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 171 ${MAKE} prereq && \ 172 COMPILER_VERSION=${COMPILER_VERSION} \ 173 MACHINE=${TARGET} \ 174 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 175 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 176 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 177 ${MAKE} DESTDIR=${CROSSDIR} includes) 178 @touch ${CROSSINCLUDES} 179 180${CROSSBINUTILS}: ${CROSSINCLUDES} 181.if ${TARGET_ARCH} != "aarch64" 182 (cd ${.CURDIR}/${BINUTILS_DIR}; \ 183 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 184 PIE_DEFAULT=${PIE_DEFAULT} \ 185 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 186 PATH=${CROSSPATH} \ 187 ${MAKE} -f Makefile.bsd-wrapper depend && \ 188 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 189 PIE_DEFAULT=${PIE_DEFAULT} \ 190 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 191 ${MAKE} -f Makefile.bsd-wrapper all && \ 192 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 193 COMPILER_VERSION=${COMPILER_VERSION} \ 194 PIE_DEFAULT=${PIE_DEFAULT} \ 195 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 196 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 197 ${MAKE} -f Makefile.bsd-wrapper install) 198 @for cmd in ${BINUTILS}; do \ 199 if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \ 200 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \ 201 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 202 ln -sf ${TARGET_CANON}-$$cmd \ 203 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 204 if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 205 rm -f ${CROSSDIR}/usr/bin/$$cmd ;\ 206 fi ;\ 207 elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 208 cp -f ${CROSSDIR}/usr/bin/$$cmd \ 209 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 210 ln -sf ${TARGET_CANON}-$$cmd \ 211 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 212 mv ${CROSSDIR}/usr/bin/$$cmd \ 213 ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\ 214 fi ;\ 215 done 216.endif 217 @touch ${CROSSBINUTILS} 218 219 220${CROSSGCC}: ${CROSSBINUTILS} 221.if ${COMPILER_VERSION:L} == "clang" 222 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 223 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 224 MACHINE_ARCH=${TARGET_ARCH} \ 225 ${MAKE} obj) 226 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 227 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 228 MACHINE_ARCH=${TARGET_ARCH} \ 229 ${MAKE} depend) 230 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 231 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 232 MACHINE_ARCH=${TARGET_ARCH} \ 233 ${MAKE} all) 234 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 235 DESTDIR=${CROSSDIR} \ 236 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 237 MACHINE_ARCH=${TARGET_ARCH} \ 238 ${MAKE} install) 239 mv ${CROSSDIR}/usr/bin/clang ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang 240 mv ${CROSSDIR}/usr/bin/clang++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang++ 241 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 242 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 243 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 244 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 245.elif ${COMPILER_VERSION:L} == "gcc3" 246 (cd ${.CURDIR}/gnu/usr.bin/gcc; \ 247 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 248 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 249 CROSSDIR=${CROSSDIR} \ 250 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ 251 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 252 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 253 CROSSDIR=${CROSSDIR} \ 254 ${MAKE} -f Makefile.bsd-wrapper all && \ 255 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 256 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) 257 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 258 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 259 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 260 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 261 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 262 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 263 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 264 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 265 -e 's/@GNUC@/-D__GNUC__/' \ 266 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 267 -e 's/@dollaropt@//' \ 268 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 269 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 270 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 271 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 272.else 273 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 274 PIE_DEFAULT=${PIE_DEFAULT} \ 275 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 276 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 277 CROSSDIR=${CROSSDIR} \ 278 MACHINE=${TARGET} \ 279 PATH=${CROSSPATH} ${MAKE} depend ) 280 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 281 PIE_DEFAULT=${PIE_DEFAULT} \ 282 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 283 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 284 CROSSDIR=${CROSSDIR} \ 285 MACHINE=${TARGET} \ 286 ${MAKE} all ) 287 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 288 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} \ 289 PIE_DEFAULT=${PIE_DEFAULT} \ 290 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 291 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 292 MACHINE=${TARGET} \ 293 PATH=${CROSSPATH} ${MAKE} install) 294 cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ 295 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 296 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 297 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 298 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 299 300 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 301 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 302 # fix links 303 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 304 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 305 -e 's/@GNUC@//' \ 306 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 307 -e 's/@dollaropt@//' \ 308 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 309 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 310 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 311 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 312.endif 313 @touch ${CROSSGCC} 314 315# XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later 316cross-lib: ${CROSSGCC} 317 MACHINE=${TARGET} \ 318 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 319 BSDOBJDIR=${CROSSDIR}/usr/obj; \ 320 export MACHINE MACHINE_ARCH MACHINE_CPU BSDOBJDIR; \ 321 (cd ${.CURDIR}/lib; \ 322 for lib in csu libc; do \ 323 (cd $$lib; \ 324 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 325 ${MAKE} depend all ;\ 326 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 327 ${MAKE} install); \ 328 done; \ 329 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 330 SKIPDIR=\"${NO_CROSS}\" \ 331 ${MAKE} depend all ; \ 332 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 333 SKIPDIR=\"${NO_CROSS}\" \ 334 ${MAKE} install) 335 336cross-bin: ${CROSSOBJ} 337 MACHINE=${TARGET} \ 338 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 339 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 340 for i in libexec bin sbin usr.bin usr.sbin; do \ 341 (cd ${.CURDIR}/$$i; \ 342 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 343 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 344 ${MAKE} depend all ; \ 345 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 346 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 347 ${MAKE} install); \ 348 done 349 350cross-gnu: ${CROSSOBJ} 351 MACHINE=${TARGET} \ 352 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 353 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 354 for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \ 355 (cd ${.CURDIR}/$$i; \ 356 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 357 SKIPDIR=\"${NO_CROSS}\" \ 358 ${MAKE} depend all ; \ 359 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 360 SKIPDIR=\"${NO_CROSS}\" \ 361 ${MAKE} install); \ 362 done 363 364cross-share: ${CROSSOBJ} 365 MACHINE=${TARGET} \ 366 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 367 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 368 for i in share; do \ 369 (cd ${.CURDIR}/$$i; \ 370 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 371 SKIPDIR=\"${NO_CROSS}\" \ 372 DESTDIR=${CROSSDIR} \ 373 ${MAKE} depend all install); \ 374 done 375 376cross-sys: ${CROSSOBJ} 377 MACHINE=${TARGET} \ 378 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 379 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 380 for i in sys; do \ 381 (cd ${.CURDIR}/$$i; \ 382 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 383 SKIPDIR=\"${NO_CROSS}\" \ 384 DESTDIR=${CROSSDIR} \ 385 ${MAKE} depend all install); \ 386 done 387 388cross-etc-root-var: ${CROSSOBJ} 389 (cd ${.CURDIR}/etc && \ 390 MACHINE=${TARGET} \ 391 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 392 DESTDIR=${CROSSDIR} \ 393 ${MAKE} distribution-etc-root-var) 394 395cross-depend: 396 @(cd ${.CURDIR} && \ 397 BSDOBJDIR=${CROSSDIR}/usr/obj \ 398 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 399 SKIPDIR="${NO_CROSS}" \ 400 ${MAKE} depend) 401 402cross-clean: 403 @(cd ${.CURDIR} && \ 404 BSDOBJDIR=${CROSSDIR}/usr/obj \ 405 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 406 SKIPDIR="${NO_CROSS}" \ 407 ${MAKE} clean) 408 409cross-cleandir: 410 @(cd ${.CURDIR} && \ 411 BSDOBJDIR=${CROSSDIR}/usr/obj \ 412 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 413 SKIPDIR="${NO_CROSS}" \ 414 ${MAKE} cleandir) 415