Makefile.cross revision 1.40
1# $OpenBSD: Makefile.cross,v 1.40 2010/09/25 17:45:13 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} == "armish" || ${TARGET} == "beagle" || \ 10 ${TARGET} == "gumstix" || ${TARGET} == "palm" || \ 11 ${TARGET} == "zaurus") 12TARGET_ARCH= arm 13.elif (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \ 14 ${TARGET} == "mvme68k") 15TARGET_ARCH= m68k 16.elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \ 17 ${TARGET} == "mvme88k") 18TARGET_ARCH= m88k 19.elif (${TARGET} == "sgi" || ${TARGET} == "octeon") 20TARGET_ARCH= mips64 21.elif (${TARGET} == "loongson") 22TARGET_ARCH= mips64el 23TARGET_CPU= mips64 24.elif (${TARGET} == "solbourne") 25TARGET_ARCH= sparc 26.elif (${TARGET} == "macppc" || ${TARGET} == "mvmeppc" || \ 27 ${TARGET} == "socppc") 28TARGET_ARCH= powerpc 29.elif (${TARGET} == "landisk") 30TARGET_ARCH= sh 31.else 32TARGET_ARCH= ${TARGET} 33.endif 34TARGET_CPU?= ${TARGET_ARCH} 35 36#CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include 37#CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static 38CROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG} 39CROSSCXXFLAGS?= ${CROSSCPPFLAGS} 40#LDSTATIC?= -static 41 42# XXX 43BINMODE?=555 44BINOWN?=root 45BINOWN?=bin 46 47CROSSDIR= ${DESTDIR}/usr/cross/${TARGET} 48CROSSENV= AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \ 49 AS=${CROSSDIR}/usr/${TARGET_CANON}/bin/as \ 50 CC=${CROSSDIR}/usr/${TARGET_CANON}/bin/cc \ 51 CPP=${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp \ 52 CXX=${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ \ 53 LD=${CROSSDIR}/usr/${TARGET_CANON}/bin/ld \ 54 OBJCOPY=${CROSSDIR}/usr/${TARGET_CANON}/bin/objcopy \ 55 LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib \ 56 STRIP=${CROSSDIR}/usr/${TARGET_CANON}/bin/strip \ 57 HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= \ 58 HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \ 59 HOSTLDFLAGS=\"${LDFLAGS}\" \ 60 CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \ 61 CXXFLAGS=\"${CROSSCXXFLAGS}\" \ 62 LDFLAGS=\"${CROSSLDFLAGS}\" 63CROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin 64CROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH} 65CROSSLANGS?= c c++ 66 67TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` 68 69CROSSDIRS= ${CROSSDIR}/.dirs_done 70CROSSOBJ= ${CROSSDIR}/.obj_done 71CROSSINCLUDES= ${CROSSDIR}/.includes_done 72CROSSBINUTILS= ${CROSSDIR}/.binutils_done 73CROSSGCC= ${CROSSDIR}/.gcc_done 74#NO_CROSS= isakmpd keynote sectok ssh 75 76# bsd.own.mk can't do it for us 77.if ${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \ 78 ${TARGET_ARCH} == "sparc" || ${TARGET_ARCH} == "vax" 79TARGET_USE_GCC3=No 80COMPILER_VERSION=gcc2 81.elif ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "hppa" || \ 82 ${TARGET_ARCH} == "i386" || ${TARGET_ARCH:Mmips64*} || \ 83 ${TARGET_ARCH} == "powerpc" || ${TARGET_ARCH} == "sparc64" 84TARGET_USE_GCC4=Yes 85COMPILER_VERSION=gcc4 86.else 87TARGET_USE_GCC3=Yes 88COMPILER_VERSION=gcc3 89.endif 90 91# no libcrypto.... these won't build 92#NO_CROSS+= dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet \ 93# ftp gzsig sasyncd vnconfig 94 95# need host setup for ydr 96NO_CROSS+=afs 97# explicit cross-compile 98NO_CROSS+=bind 99NO_CROSS+=httpd 100NO_CROSS+=microcode 101NO_CROSS+=groff lynx binutils perl texinfo gcc cvs 102NO_CROSS+=nsd 103 104cross-dirs: ${CROSSDIRS} 105cross-obj: ${CROSSOBJ} 106cross-includes: ${CROSSINCLUDES} 107cross-binutils: ${CROSSBINUTILS} 108cross-gcc: ${CROSSGCC} 109 110cross-env: 111 @echo ${CROSSENV} MACHINE=${TARGET} \ 112 MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 113 MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \ 114 BSDOBJDIR=${CROSSDIR}/usr/obj \ 115 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} 116 117${CROSSDIRS}: 118 @-mkdir -p ${CROSSDIR} 119 @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH 120 @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` 121 @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU 122 @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU` 123 @eval `grep '^osr=' sys/conf/newvers.sh`; \ 124 echo ${TARGET_ARCH}-unknown-openbsd$$osr > \ 125 ${CROSSDIR}/TARGET_CANON 126 @-mkdir -p ${CROSSDIR} 127 @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON} 128 @ln -sf ${CROSSDIR}/usr/include \ 129 ${CROSSDIR}/usr/${TARGET_CANON}/include 130 @ln -sf ${CROSSDIR}/usr/lib \ 131 ${CROSSDIR}/usr/${TARGET_CANON}/lib 132 @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin 133 @(cd ${.CURDIR}/etc && DESTDIR=${CROSSDIR} ${MAKE} distrib-dirs) 134 @touch ${CROSSDIRS} 135 136${CROSSOBJ}: ${CROSSDIRS} 137 @-mkdir -p ${CROSSDIR}/usr/obj 138 @(cd ${.CURDIR} && \ 139 BSDOBJDIR=${CROSSDIR}/usr/obj \ 140 COMPILER_VERSION=${COMPILER_VERSION} \ 141 MACHINE=${TARGET} \ 142 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 143 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 144 ${MAKE} obj) 145 @touch ${CROSSOBJ} 146 147${CROSSINCLUDES}: ${CROSSOBJ} 148 @-mkdir -p ${CROSSDIR}/usr/include 149 @(cd ${.CURDIR}/include && \ 150 COMPILER_VERSION=${COMPILER_VERSION} \ 151 MACHINE=${TARGET} \ 152 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 153 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 154 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 155 ${MAKE} prereq && \ 156 COMPILER_VERSION=${COMPILER_VERSION} \ 157 MACHINE=${TARGET} \ 158 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 159 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 160 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 161 ${MAKE} DESTDIR=${CROSSDIR} includes) 162 @touch ${CROSSINCLUDES} 163 164.if (${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \ 165 ${TARGET_ARCH} == "vax") 166BINUTILS= ar as ld nm ranlib objcopy objdump strings strip 167NEW_BINUTILS?= No 168.else 169BINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \ 170 strings strip 171NEW_BINUTILS?= Yes 172.endif 173 174${CROSSBINUTILS}: ${CROSSINCLUDES} 175 (cd ${.CURDIR}/gnu/usr.bin/binutils; \ 176 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 177 USING_NEW_BINUTILS=${NEW_BINUTILS} \ 178 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 179 PATH=${CROSSPATH} \ 180 ${MAKE} -f Makefile.bsd-wrapper depend && \ 181 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 182 USING_NEW_BINUTILS=${NEW_BINUTILS} \ 183 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 184 ${MAKE} -f Makefile.bsd-wrapper all && \ 185 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 186 COMPILER_VERSION=${COMPILER_VERSION} \ 187 USING_NEW_BINUTILS=${NEW_BINUTILS} \ 188 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 189 USING_NEW_BINUTILS=${NEW_BINUTILS} \ 190 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 191 ${MAKE} -f Makefile.bsd-wrapper install) 192.if ${NEW_BINUTILS:L} != "yes" 193 (cd ${.CURDIR}/gnu/usr.bin/gas; \ 194 TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 195 MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \ 196 TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 197 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 198 ${MAKE} NOMAN= install) 199 ln -sf ${CROSSDIR}/usr/bin/as \ 200 ${CROSSDIR}/usr/${TARGET_CANON}/bin/as 201 (cd ${.CURDIR}/gnu/usr.bin/ld; \ 202 TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 203 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 204 ${MAKE} NOPIC= NOMAN= depend all; \ 205 TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 206 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 207 ${MAKE} NOPIC= NOMAN= install) 208 ln -sf ${CROSSDIR}/usr/bin/ld \ 209 ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld 210 (cd ${.CURDIR}/usr.bin/ar; \ 211 ELF_TOOLCHAIN=no \ 212 MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ 213 ELF_TOOLCHAIN=no \ 214 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 215 ${MAKE} NOMAN= install) 216 ln -sf ${CROSSDIR}/usr/bin/ar \ 217 ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar 218 @(cd ${.CURDIR}/usr.bin/ranlib; \ 219 ELF_TOOLCHAIN=no \ 220 MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ 221 ELF_TOOLCHAIN=no \ 222 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 223 ${MAKE} NOMAN= install) 224 ln -sf ${CROSSDIR}/usr/bin/ranlib \ 225 ${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib 226 (cd ${.CURDIR}/usr.bin/strip; \ 227 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 228 ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 229 NOMAN= depend all; \ 230 DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 231 ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 232 NOMAN= install) 233 ln -sf ${CROSSDIR}/usr/bin/strip \ 234 ${CROSSDIR}/usr/${TARGET_CANON}/bin/strip 235.endif 236 @for cmd in ${BINUTILS}; do \ 237 if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \ 238 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \ 239 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 240 ln -sf ${TARGET_CANON}-$$cmd \ 241 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 242 if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 243 rm -f ${CROSSDIR}/usr/bin/$$cmd ;\ 244 fi ;\ 245 elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 246 cp -f ${CROSSDIR}/usr/bin/$$cmd \ 247 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 248 ln -sf ${TARGET_CANON}-$$cmd \ 249 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 250 mv ${CROSSDIR}/usr/bin/$$cmd \ 251 ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\ 252 fi ;\ 253 done 254 @touch ${CROSSBINUTILS} 255 256 257${CROSSGCC}: ${CROSSBINUTILS} 258.if ${COMPILER_VERSION:L} == "gcc4" 259 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 260 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 261 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 262 CROSSDIR=${CROSSDIR} \ 263 MACHINE=${TARGET} \ 264 PATH=${CROSSPATH} ${MAKE} depend ) 265 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 266 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 267 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 268 CROSSDIR=${CROSSDIR} \ 269 MACHINE=${TARGET} \ 270 ${MAKE} all ) 271 (cd ${.CURDIR}/gnu/usr.bin/cc; \ 272 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 273 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 274 MACHINE=${TARGET} \ 275 PATH=${CROSSPATH} ${MAKE} install) 276 cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ 277 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 278 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 279 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 280 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 281 282 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 283 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 284 # fix links 285 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 286 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 287 -e 's/@GNUC@//' \ 288 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 289 -e 's/@dollaropt@//' \ 290 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 291 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 292 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 293 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 294.elif ${COMPILER_VERSION:L} == "gcc3" 295 (cd ${.CURDIR}/gnu/usr.bin/gcc; \ 296 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 297 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 298 CROSSDIR=${CROSSDIR} \ 299 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ 300 MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 301 TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 302 CROSSDIR=${CROSSDIR} \ 303 ${MAKE} -f Makefile.bsd-wrapper all && \ 304 env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 305 PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) 306 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 307 cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 308 cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 309 rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 310 ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 311 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 312 rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 313 sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 314 -e 's/@GNUC@/-D__GNUC__/' \ 315 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 316 -e 's/@dollaropt@//' \ 317 ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 318 chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 319 chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 320 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 321.else 322 (cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \ 323 /bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \ 324 --with-gnu-as --with-gnu-ld --prefix ${CROSSDIR}/usr \ 325 --target ${TARGET_CANON} \ 326 --enable-languages="c,c++" --enable-cpp --disable-nls \ 327 --with-gxx-include-dir=${CROSSDIR}/usr/include/g++ && \ 328 PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" \ 329 CFLAGS="${CFLAGS} -I${.CURDIR}/gnu/lib/libiberty/include" \ 330 LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ 331 DEMANGLER_PROG= DEMANGLE_H= LDFLAGS="${LDSTATIC}" build_infodir=. \ 332 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ 333 ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" LDFLAGS="${LDSTATIC}" \ 334 GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ 335 CFLAGS="${CFLAGS} -I${.CURDIR}/gnu/lib/libiberty/include" \ 336 LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ 337 build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) 338 mv -f ${CROSSDIR}/usr/bin/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 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@/-D__GNUC__/' \ 342 -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 343 -e 's/@dollaropt@/-$$/' ${.CURDIR}/usr.bin/cpp/cpp.sh > \ 344 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 345 chmod ${BINMODE} \ 346 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 347 chown ${BINOWN}:${BINGRP}\ 348 ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 349 ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 350 ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 351 ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 352 cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 353 ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 354.endif 355 @touch ${CROSSGCC} 356 357# XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later 358cross-lib: ${CROSSGCC} 359 MACHINE=${TARGET} \ 360 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 361 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 362 (cd ${.CURDIR}/lib; \ 363 for lib in csu libc; do \ 364 (cd $$lib; \ 365 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 366 ${MAKE} WANTLINT=no depend all ;\ 367 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 368 ${MAKE} WANTLINT=no install); \ 369 done; \ 370 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 371 SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \ 372 ${MAKE} WANTLINT=no depend all ; \ 373 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 374 SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \ 375 ${MAKE} WANTLINT=no install) 376 377cross-bin: ${CROSSOBJ} 378 MACHINE=${TARGET} \ 379 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 380 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 381 for i in libexec bin sbin usr.bin usr.sbin; do \ 382 (cd ${.CURDIR}/$$i; \ 383 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 384 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 385 ${MAKE} depend all ; \ 386 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 387 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 388 ${MAKE} install); \ 389 done 390 391cross-gnu: ${CROSSOBJ} 392 MACHINE=${TARGET} \ 393 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 394 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 395 for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \ 396 (cd ${.CURDIR}/$$i; \ 397 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 398 SKIPDIR=\"${NO_CROSS}\" \ 399 ${MAKE} depend all ; \ 400 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 401 SKIPDIR=\"${NO_CROSS}\" \ 402 ${MAKE} install); \ 403 done 404 405cross-share: ${CROSSOBJ} 406 MACHINE=${TARGET} \ 407 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 408 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 409 for i in share; do \ 410 (cd ${.CURDIR}/$$i; \ 411 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 412 SKIPDIR=\"${NO_CROSS}\" \ 413 ${MAKE} depend all install); \ 414 done 415 416cross-sys: ${CROSSOBJ} 417 MACHINE=${TARGET} \ 418 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 419 export MACHINE MACHINE_ARCH MACHINE_CPU; \ 420 for i in sys; do \ 421 (cd ${.CURDIR}/$$i; \ 422 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 423 SKIPDIR=\"${NO_CROSS}\" \ 424 ${MAKE} depend all install); \ 425 done 426 427cross-etc-root-var: ${CROSSOBJ} 428 (cd ${.CURDIR}/etc && \ 429 MACHINE=${TARGET} \ 430 MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 431 DESTDIR=${CROSSDIR} \ 432 ${MAKE} distribution-etc-root-var) 433 434cross-depend: 435 @(cd ${.CURDIR} && \ 436 BSDOBJDIR=${CROSSDIR}/usr/obj \ 437 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 438 SKIPDIR="${NO_CROSS}" \ 439 ${MAKE} depend) 440 441cross-clean: 442 @(cd ${.CURDIR} && \ 443 BSDOBJDIR=${CROSSDIR}/usr/obj \ 444 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 445 SKIPDIR="${NO_CROSS}" \ 446 ${MAKE} clean) 447 448cross-cleandir: 449 @(cd ${.CURDIR} && \ 450 BSDOBJDIR=${CROSSDIR}/usr/obj \ 451 BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 452 SKIPDIR="${NO_CROSS}" \ 453 ${MAKE} cleandir) 454