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