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