Makefile.cross revision 1.106
1# $OpenBSD: Makefile.cross,v 1.106 2019/10/18 02:57:25 visa 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") 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 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}\" \ 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 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 204 PIE_DEFAULT=${PIE_DEFAULT} \ 205 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 206 PATH=${CROSSPATH} \ 207 ${MAKE} -f Makefile.bsd-wrapper depend && \ 208 env CROSSDIR=${CROSSDIR} \ 209 CC=${CC} CXX=${CXX} \ 210 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 211 PIE_DEFAULT=${PIE_DEFAULT} \ 212 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 213 ${MAKE} -f Makefile.bsd-wrapper all && \ 214 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} \ 215 COMPILER_VERSION=${COMPILER_VERSION} \ 216 LINKER_VERSION=${LINKER_VERSION} \ 217 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 218 PIE_DEFAULT=${PIE_DEFAULT} \ 219 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 220 ${MAKE} -f Makefile.bsd-wrapper install) 221 @for cmd in ${BINUTILS}; do \ 222 if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \ 223 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \ 224 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 225 ln -sf ${TARGET_CANON}-$$cmd \ 226 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 227 if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 228 rm -f ${CROSSDIR}/usr/bin/$$cmd ;\ 229 fi ;\ 230 elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 231 cp -f ${CROSSDIR}/usr/bin/$$cmd \ 232 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 233 ln -sf ${TARGET_CANON}-$$cmd \ 234 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 235 mv ${CROSSDIR}/usr/bin/$$cmd \ 236 ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\ 237 fi ;\ 238 done 239 @touch ${CROSSBINUTILS} 240 241 242${CROSSGCC}: ${CROSSBINUTILS} 243.if ${COMPILER_VERSION:L} == "clang" 244 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 245 CC=${CC} CXX=${CXX} \ 246 BSDOBJDIR=${CROSSDIR}/usr/obj \ 247 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 248 MACHINE_ARCH=${TARGET_ARCH} \ 249 ${MAKE} all) 250 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 251 DESTDIR=${CROSSDIR} \ 252 BSDOBJDIR=${CROSSDIR}/usr/obj \ 253 LINKER_VERSION=${LINKER_VERSION} \ 254 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 255 MACHINE_ARCH=${TARGET_ARCH} \ 256 ${MAKE} install) 257 (cd ${.CURDIR}/gnu/usr.bin/clang; \ 258 BSDOBJDIR=${CROSSDIR}/usr/obj \ 259 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 260 MACHINE_ARCH=${TARGET_ARCH} \ 261 ${MAKE} clean) 262 mv ${CROSSDIR}/usr/bin/clang ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang 263 mv ${CROSSDIR}/usr/bin/clang++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang++ 264 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-clang ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-clang 265 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 266 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 267 @if [ -e ${CROSSDIR}/usr/bin/ld ]; then \ 268 mv ${CROSSDIR}/usr/bin/ld ${CROSSDIR}/usr/bin/${TARGET_CANON}-ld ;\ 269 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-ld \ 270 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-ld ;\ 271 ln -sf ${TARGET_CANON}-ld ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld ;\ 272 fi 273 echo "#!/bin/sh\n${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-clang --sysroot ${CROSSDIR} \"$$""@\"" > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc; \ 274 chmod +x ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc; 275 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++; \ 276 chmod +x ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++; 277.elif ${COMPILER_VERSION:L} == "gcc3" 278 (cd ${.CURDIR}/gnu/usr.bin/gcc; \ 279 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 280 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 281 CROSSDIR=${CROSSDIR} \ 282 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ 283 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 284 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 285 CROSSDIR=${CROSSDIR} \ 286 CC=${CC} CXX=${CXX} \ 287 ${MAKE} -f Makefile.bsd-wrapper all && \ 288 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 289 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) 290 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 291 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 292 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 293 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 294 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 295 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 296 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 297 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 298 -e 's/@GNUC@/-D__GNUC__/' \ 299 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 300 -e 's/@dollaropt@//' \ 301 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 302 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 303 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 304 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 305.else 306 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 307 env CROSSDIR=${CROSSDIR} \ 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} depend) 313 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 314 env CROSSDIR=${CROSSDIR} \ 315 COMPILER_VERSION=${COMPILER_VERSION} \ 316 CC=${CC} CXX=${CXX} \ 317 PIE_DEFAULT=${PIE_DEFAULT} \ 318 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 319 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 320 MACHINE=${TARGET} \ 321 ${MAKE} all) 322 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 323 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} \ 324 COMPILER_VERSION=${COMPILER_VERSION} \ 325 PIE_DEFAULT=${PIE_DEFAULT} \ 326 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 327 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 328 MACHINE=${TARGET} \ 329 PATH=${CROSSPATH} ${MAKE} install) 330 cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ 331 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 332 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 333 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 334 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 335 336 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 337 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 338 # fix links 339 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 340 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 341 -e 's/@GNUC@//' \ 342 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 343 -e 's/@dollaropt@//' \ 344 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 345 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 346 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 347 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 348.endif 349 @touch ${CROSSGCC} 350 351# XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later 352cross-lib: ${CROSSGCC} 353 MACHINE=${TARGET} \ 354 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 355 BSDOBJDIR=${CROSSDIR}/usr/obj \ 356 BUILD_CLANG=${BUILD_CLANG}; \ 357 export MACHINE MACHINE_ARCH MACHINE_CPU BSDOBJDIR BUILD_CLANG; \ 358 (cd ${.CURDIR}/lib; \ 359 for lib in csu libcompiler_rt libc; do \ 360 (cd $$lib; \ 361 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 362 ${MAKE} depend all ;\ 363 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 364 ${MAKE} install); \ 365 done; \ 366 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 367 SKIPDIR=\"${NO_CROSS}\" \ 368 ${MAKE} depend all ; \ 369 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 370 SKIPDIR=\"${NO_CROSS}\" \ 371 ${MAKE} install) 372 373cross-bin: ${CROSSOBJ} 374 MACHINE=${TARGET} \ 375 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 376 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 377 for i in libexec bin sbin usr.bin usr.sbin; do \ 378 (cd ${.CURDIR}/$$i; \ 379 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 380 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 381 ${MAKE} depend all ; \ 382 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 383 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 384 ${MAKE} install); \ 385 done 386 387cross-gnu: ${CROSSOBJ} 388 MACHINE=${TARGET} \ 389 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 390 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 391 for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \ 392 (cd ${.CURDIR}/$$i; \ 393 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 394 SKIPDIR=\"${NO_CROSS}\" \ 395 ${MAKE} depend all ; \ 396 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 397 SKIPDIR=\"${NO_CROSS}\" \ 398 ${MAKE} install); \ 399 done 400 401cross-share: ${CROSSOBJ} 402 MACHINE=${TARGET} \ 403 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 404 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 405 for i in share; do \ 406 (cd ${.CURDIR}/$$i; \ 407 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 408 SKIPDIR=\"${NO_CROSS}\" \ 409 DESTDIR=${CROSSDIR} \ 410 ${MAKE} depend all install); \ 411 done 412 413cross-sys: ${CROSSOBJ} 414 MACHINE=${TARGET} \ 415 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 416 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 417 for i in sys; do \ 418 (cd ${.CURDIR}/$$i; \ 419 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 420 SKIPDIR=\"${NO_CROSS}\" \ 421 ${MAKE} depend all); \ 422 (cd ${.CURDIR}/$$i; \ 423 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 424 SKIPDIR=\"${NO_CROSS}\" \ 425 DESTDIR=${CROSSDIR} \ 426 ${MAKE} install); \ 427 done 428 429cross-etc-root-var: ${CROSSOBJ} 430 (cd ${.CURDIR}/etc && \ 431 MACHINE=${TARGET} \ 432 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 433 DESTDIR=${CROSSDIR} \ 434 ${MAKE} distribution-etc-root-var) 435 436cross-depend: 437 @(cd ${.CURDIR} && \ 438 BSDOBJDIR=${CROSSDIR}/usr/obj \ 439 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 440 SKIPDIR="${NO_CROSS}" \ 441 ${MAKE} depend) 442 443cross-clean: 444 @(cd ${.CURDIR} && \ 445 BSDOBJDIR=${CROSSDIR}/usr/obj \ 446 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 447 SKIPDIR="${NO_CROSS}" \ 448 ${MAKE} clean) 449 450cross-cleandir: 451 @(cd ${.CURDIR} && \ 452 BSDOBJDIR=${CROSSDIR}/usr/obj \ 453 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 454 SKIPDIR="${NO_CROSS}" \ 455 ${MAKE} cleandir) 456