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