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