1# $OpenBSD: Makefile.cross,v 1.111 2021/05/03 00:04:31 drahn 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} == "octeon") 16TARGET_ARCH= mips64 17.elif (${TARGET} == "loongson") 18TARGET_ARCH= mips64el 19TARGET_CPU= mips64 20.elif (${TARGET} == "macppc") 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 mips64el riscv64 sparc64 powerpc64 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}\" \ 66 CROSSDIR=\"${CROSSDIR}\" 67CROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin 68CROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH} 69CROSSLANGS?= c c++ 70 71TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` 72 73CROSSDIRS= ${CROSSDIR}/.dirs_done 74CROSSOBJ= ${CROSSDIR}/.obj_done 75CROSSINCLUDES= ${CROSSDIR}/.includes_done 76CROSSBINUTILS= ${CROSSDIR}/.binutils_done 77CROSSGCC= ${CROSSDIR}/.gcc_done 78#NO_CROSS= isakmpd keynote ssh 79 80.include <bsd.own.mk> 81 82.for _arch in ${TARGET_ARCH} 83.if !empty(GCC3_ARCH:M${_arch}) 84COMPILER_VERSION=gcc3 85BUILD_CLANG=no 86CC=gcc 87CXX=g++ 88.elif !empty(GCC4_ARCH:M${_arch}) 89COMPILER_VERSION=gcc4 90BUILD_CLANG=no 91CC=gcc 92CXX=g++ 93.elif !empty(CLANG_ARCH:M${_arch}) 94COMPILER_VERSION=clang 95BUILD_CLANG=yes 96CC=clang 97CXX=clang++ 98.endif 99 100.if !empty(LLD_ARCH:M${_arch}) 101LINKER_VERSION=lld 102.else 103LINKER_VERSION=bfd 104.endif 105 106.if !empty(PIE_ARCH:M${_arch}) 107NOPIE_FLAGS=-fno-pie 108NOPIE_LDFLAGS=-nopie 109PIE_DEFAULT=${DEFAULT_PIE_DEF} 110.else 111NOPIE_FLAGS= 112PIE_DEFAULT= 113.endif 114 115BINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \ 116 strings strip 117BINUTILS_DIR=gnu/usr.bin/binutils-2.17 118.endfor 119 120# no libcrypto.... these won't build 121#NO_CROSS+= dc passwd ppp tcpdump telnet ftp sasyncd vnconfig 122 123# explicit cross-compile 124NO_CROSS+=microcode 125NO_CROSS+=groff binutils binutils-2.17 perl texinfo gcc cvs 126NO_CROSS+=nsd 127NO_CROSS+=bind 128NO_CROSS+=unbound 129 130cross-dirs: ${CROSSDIRS} 131cross-obj: ${CROSSOBJ} 132cross-includes: ${CROSSINCLUDES} 133cross-binutils: ${CROSSBINUTILS} 134cross-gcc: ${CROSSGCC} 135 136cross-env: 137 @echo ${CROSSENV} MACHINE=${TARGET} \ 138 MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 139 MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \ 140 BSDOBJDIR=${CROSSDIR}/usr/obj \ 141 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} 142 143${CROSSDIRS}: 144.if ${TARGET_ARCH} == "arm" && ${MACHINE_IS_LP64} == "yes" 145 # this config is allowed 146.elif ${TARGET_ARCH} == "powerpc" && ${MACHINE_IS_LP64} == "yes" 147 # this config is allowed 148.elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64} 149 @echo "host and target have different size longs" 150 @echo "cross compiler generates bad code; aborting"; exit 1 151.endif 152 @-mkdir -p ${CROSSDIR} 153 @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH 154 @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` 155 @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU 156 @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU` 157 @eval `grep '^osr=' sys/conf/newvers.sh`; \ 158 echo ${TARGET_ARCH}-unknown-openbsd$$osr > \ 159 ${CROSSDIR}/TARGET_CANON 160 @-mkdir -p ${CROSSDIR} 161 @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON} 162 @ln -sf ${CROSSDIR}/usr/include \ 163 ${CROSSDIR}/usr/${TARGET_CANON}/include 164 @ln -sf ${CROSSDIR}/usr/lib \ 165 ${CROSSDIR}/usr/${TARGET_CANON}/lib 166 @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin 167 @(cd ${.CURDIR}/etc && DESTDIR=${CROSSDIR} ${MAKE} distrib-dirs) 168 @touch ${CROSSDIRS} 169 170${CROSSOBJ}: ${CROSSDIRS} 171 @-mkdir -p ${CROSSDIR}/usr/obj 172 @-chgrp ${WOBJGROUP} ${CROSSDIR}/usr/obj 173 @-chmod g+w ${CROSSDIR}/usr/obj 174 @(cd ${.CURDIR} && \ 175 BSDOBJDIR=${CROSSDIR}/usr/obj \ 176 COMPILER_VERSION=${COMPILER_VERSION} \ 177 MACHINE=${TARGET} \ 178 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 179 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 180 ${MAKE} obj) 181 @touch ${CROSSOBJ} 182 183${CROSSINCLUDES}: ${CROSSOBJ} 184 @-mkdir -p ${CROSSDIR}/usr/include 185 @(cd ${.CURDIR}/include && \ 186 COMPILER_VERSION=${COMPILER_VERSION} \ 187 MACHINE=${TARGET} \ 188 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 189 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 190 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 191 ${MAKE} prereq && \ 192 COMPILER_VERSION=${COMPILER_VERSION} \ 193 MACHINE=${TARGET} \ 194 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 195 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 196 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 197 ${MAKE} DESTDIR=${CROSSDIR} includes) 198 @touch ${CROSSINCLUDES} 199 200${CROSSBINUTILS}: ${CROSSINCLUDES} 201 (cd ${.CURDIR}/${BINUTILS_DIR}; \ 202 env CROSSDIR=${CROSSDIR} \ 203 CC=${CC} CXX=${CXX} \ 204 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 205 PIE_DEFAULT=${PIE_DEFAULT} \ 206 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 207 ${MAKE} -f Makefile.bsd-wrapper all && \ 208 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} \ 209 COMPILER_VERSION=${COMPILER_VERSION} \ 210 LINKER_VERSION=${LINKER_VERSION} \ 211 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 212 PIE_DEFAULT=${PIE_DEFAULT} \ 213 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 214 ${MAKE} -f Makefile.bsd-wrapper install) 215 @for cmd in ${BINUTILS}; do \ 216 if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \ 217 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \ 218 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 219 ln -sf ${TARGET_CANON}-$$cmd \ 220 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 221 if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 222 rm -f ${CROSSDIR}/usr/bin/$$cmd ;\ 223 fi ;\ 224 elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 225 cp -f ${CROSSDIR}/usr/bin/$$cmd \ 226 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 227 ln -sf ${TARGET_CANON}-$$cmd \ 228 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 229 mv ${CROSSDIR}/usr/bin/$$cmd \ 230 ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\ 231 fi ;\ 232 done 233 @touch ${CROSSBINUTILS} 234 235 236${CROSSGCC}: ${CROSSBINUTILS} 237.if ${COMPILER_VERSION:L} == "clang" 238 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 239 CC=${CC} CXX=${CXX} \ 240 BSDOBJDIR=${CROSSDIR}/usr/obj \ 241 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 242 MACHINE_ARCH=${TARGET_ARCH} \ 243 ${MAKE} all) 244 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 245 DESTDIR=${CROSSDIR} \ 246 BSDOBJDIR=${CROSSDIR}/usr/obj \ 247 LINKER_VERSION=${LINKER_VERSION} \ 248 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 249 MACHINE_ARCH=${TARGET_ARCH} \ 250 ${MAKE} install) 251 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 252 BSDOBJDIR=${CROSSDIR}/usr/obj \ 253 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 254 MACHINE_ARCH=${TARGET_ARCH} \ 255 ${MAKE} clean) 256 mv ${CROSSDIR}/usr/bin/clang ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang 257 mv ${CROSSDIR}/usr/bin/clang++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang++ 258 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-clang 259 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 260 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 261 @if [ -e ${CROSSDIR}/usr/bin/ld ]; then \ 262 mv ${CROSSDIR}/usr/bin/ld ${CROSSDIR}/usr/bin/${TARGET_CANON}-ld ;\ 263 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-ld \ 264 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-ld ;\ 265 ln -sf ${TARGET_CANON}-ld ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld ;\ 266 fi 267 echo "#!/bin/sh\n${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-clang --sysroot ${CROSSDIR} \"$$""@\"" > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc; \ 268 chmod +x ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc; 269 echo "#!/bin/sh\n${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-clang --driver-mode=g++ --sysroot ${CROSSDIR} \"$$""@\"" > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++; \ 270 chmod +x ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++; 271.elif ${COMPILER_VERSION:L} == "gcc3" 272 (cd ${.CURDIR}/gnu/usr.bin/gcc; \ 273 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 274 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 275 CROSSDIR=${CROSSDIR} \ 276 CC=${CC} CXX=${CXX} \ 277 ${MAKE} -f Makefile.bsd-wrapper all && \ 278 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 279 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) 280 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 281 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 282 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 283 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 284 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 285 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 286 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 287 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 288 -e 's/@GNUC@/-D__GNUC__/' \ 289 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 290 -e 's/@dollaropt@//' \ 291 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 292 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 293 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 294 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 295.else 296 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 297 env CROSSDIR=${CROSSDIR} \ 298 COMPILER_VERSION=${COMPILER_VERSION} \ 299 CC=${CC} CXX=${CXX} \ 300 PIE_DEFAULT=${PIE_DEFAULT} \ 301 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 302 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 303 MACHINE=${TARGET} \ 304 ${MAKE} all) 305 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 306 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} \ 307 COMPILER_VERSION=${COMPILER_VERSION} \ 308 PIE_DEFAULT=${PIE_DEFAULT} \ 309 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 310 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 311 MACHINE=${TARGET} \ 312 PATH=${CROSSPATH} ${MAKE} install) 313 cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ 314 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 315 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 316 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 317 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 318 319 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 320 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 321 # fix links 322 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 323 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 324 -e 's/@GNUC@//' \ 325 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 326 -e 's/@dollaropt@//' \ 327 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 328 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 329 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 330 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 331.endif 332 @touch ${CROSSGCC} 333 334# XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later 335cross-lib: ${CROSSGCC} 336 MACHINE=${TARGET} \ 337 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 338 BSDOBJDIR=${CROSSDIR}/usr/obj \ 339 BUILD_CLANG=${BUILD_CLANG}; \ 340 export MACHINE MACHINE_ARCH MACHINE_CPU BSDOBJDIR BUILD_CLANG; \ 341 (cd ${.CURDIR}/gnu/lib/libcompiler_rt; \ 342 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 343 ${MAKE} all ;\ 344 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 345 ${MAKE} install); \ 346 (cd ${.CURDIR}/lib; \ 347 for lib in csu libc; do \ 348 (cd $$lib; \ 349 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 350 ${MAKE} all ;\ 351 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 352 ${MAKE} install); \ 353 done; \ 354 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 355 SKIPDIR=\"${NO_CROSS}\" \ 356 ${MAKE} all ; \ 357 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 358 SKIPDIR=\"${NO_CROSS}\" \ 359 ${MAKE} install) 360 361cross-bin: ${CROSSOBJ} 362 MACHINE=${TARGET} \ 363 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 364 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 365 for i in libexec bin sbin usr.bin usr.sbin; do \ 366 (cd ${.CURDIR}/$$i; \ 367 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 368 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 369 ${MAKE} all ; \ 370 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 371 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 372 ${MAKE} install); \ 373 done 374 375cross-gnu: ${CROSSOBJ} 376 MACHINE=${TARGET} \ 377 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 378 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 379 for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \ 380 (cd ${.CURDIR}/$$i; \ 381 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 382 SKIPDIR=\"${NO_CROSS}\" \ 383 ${MAKE} all ; \ 384 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 385 SKIPDIR=\"${NO_CROSS}\" \ 386 ${MAKE} install); \ 387 done 388 389cross-share: ${CROSSOBJ} 390 MACHINE=${TARGET} \ 391 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 392 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 393 for i in share; do \ 394 (cd ${.CURDIR}/$$i; \ 395 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 396 SKIPDIR=\"${NO_CROSS}\" \ 397 DESTDIR=${CROSSDIR} \ 398 ${MAKE} all install); \ 399 done 400 401cross-sys: ${CROSSOBJ} 402 MACHINE=${TARGET} \ 403 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 404 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 405 for i in sys; do \ 406 (cd ${.CURDIR}/$$i; \ 407 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 408 SKIPDIR=\"${NO_CROSS}\" \ 409 ${MAKE} all); \ 410 (cd ${.CURDIR}/$$i; \ 411 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 412 SKIPDIR=\"${NO_CROSS}\" \ 413 DESTDIR=${CROSSDIR} \ 414 ${MAKE} install); \ 415 done 416 417cross-etc-root-var: ${CROSSOBJ} 418 (cd ${.CURDIR}/etc && \ 419 MACHINE=${TARGET} \ 420 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 421 DESTDIR=${CROSSDIR} \ 422 ${MAKE} distribution-etc-root-var) 423 424cross-clean: 425 @(cd ${.CURDIR} && \ 426 BSDOBJDIR=${CROSSDIR}/usr/obj \ 427 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 428 SKIPDIR="${NO_CROSS}" \ 429 ${MAKE} clean) 430 431cross-cleandir: 432 @(cd ${.CURDIR} && \ 433 BSDOBJDIR=${CROSSDIR}/usr/obj \ 434 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 435 SKIPDIR="${NO_CROSS}" \ 436 ${MAKE} cleandir) 437