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