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