Annotation of src/Makefile.cross, Revision 1.62
1.62 ! deraadt 1: # $OpenBSD: Makefile.cross,v 1.61 2013/03/10 08:50:42 miod Exp $
1.1 espie 2:
3: cross-tools: cross-includes cross-binutils cross-gcc cross-lib
1.26 drahn 4: cross-distrib: cross-tools cross-bin cross-share cross-sys cross-etc-root-var
5: # cross-gnu \
1.1 espie 6:
1.11 miod 7: # Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving
8: # this variable to work.
1.28 matthieu 9: .if (${TARGET} == "armish" || ${TARGET} == "beagle" || \
1.62 ! deraadt 10: ${TARGET} == "gumstix" || ${TARGET} == "zaurus")
1.11 miod 11: TARGET_ARCH= arm
1.52 matthew 12: .elif (${TARGET} == "hp300" || ${TARGET} == "mvme68k")
1.11 miod 13: TARGET_ARCH= m68k
1.17 miod 14: .elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \
15: ${TARGET} == "mvme88k")
1.11 miod 16: TARGET_ARCH= m88k
1.37 syuu 17: .elif (${TARGET} == "sgi" || ${TARGET} == "octeon")
1.11 miod 18: TARGET_ARCH= mips64
1.29 miod 19: .elif (${TARGET} == "loongson")
20: TARGET_ARCH= mips64el
21: TARGET_CPU= mips64
1.22 deraadt 22: .elif (${TARGET} == "solbourne")
23: TARGET_ARCH= sparc
1.44 deraadt 24: .elif (${TARGET} == "macppc" || ${TARGET} == "socppc")
1.11 miod 25: TARGET_ARCH= powerpc
1.21 miod 26: .elif (${TARGET} == "landisk")
27: TARGET_ARCH= sh
1.11 miod 28: .else
29: TARGET_ARCH= ${TARGET}
30: .endif
1.29 miod 31: TARGET_CPU?= ${TARGET_ARCH}
1.11 miod 32:
1.48 guenther 33: # List of LP64 archs
34: # XXX move to bsd.*.mk?
35: LP64_ARCH = amd64 alpha hppa64 ia64 mips64 sparc64 vax64
36:
37: TARGET_IS_LP64 =
38: MACHINE_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:
1.26 drahn 48: #CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include
49: #CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static
50: CROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}
1.1 espie 51: CROSSCXXFLAGS?= ${CROSSCPPFLAGS}
1.26 drahn 52: #LDSTATIC?= -static
53:
54: # XXX
55: BINMODE?=555
56: BINOWN?=root
1.42 mpi 57: BINGRP?=bin
1.1 espie 58:
59: CROSSDIR= ${DESTDIR}/usr/cross/${TARGET}
1.26 drahn 60: CROSSENV= 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= \
1.1 espie 70: HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \
1.11 miod 71: HOSTLDFLAGS=\"${LDFLAGS}\" \
1.1 espie 72: CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \
73: CXXFLAGS=\"${CROSSCXXFLAGS}\" \
74: LDFLAGS=\"${CROSSLDFLAGS}\"
1.26 drahn 75: CROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin
76: CROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH}
1.1 espie 77: CROSSLANGS?= c c++
78:
1.2 espie 79: TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON`
80:
1.1 espie 81: CROSSDIRS= ${CROSSDIR}/.dirs_done
1.26 drahn 82: CROSSOBJ= ${CROSSDIR}/.obj_done
83: CROSSINCLUDES= ${CROSSDIR}/.includes_done
84: CROSSBINUTILS= ${CROSSDIR}/.binutils_done
85: CROSSGCC= ${CROSSDIR}/.gcc_done
1.41 djm 86: #NO_CROSS= isakmpd keynote ssh
1.1 espie 87:
1.49 drahn 88: .include <bsd.own.mk>
89:
1.60 miod 90: OLD_BINUTILS_ARCH=vax
1.43 drahn 91:
92: .for _arch in ${TARGET_ARCH}
93: .if !empty(GCC2_ARCH:M${_arch})
1.57 miod 94: COMPILER_VERSION=gcc2
1.43 drahn 95: .elif !empty(GCC4_ARCH:M${_arch})
1.57 miod 96: COMPILER_VERSION=gcc4
1.31 drahn 97: .else
1.57 miod 98: COMPILER_VERSION=gcc3
1.31 drahn 99: .endif
100:
1.43 drahn 101: .if !empty(BINUTILS217_ARCH:M${_arch})
102: BINUTILS_VERSION=binutils-2.17
103: .else
104: BINUTILS_VERSION=binutils
105: .endif
106:
1.61 miod 107: .if !empty(PIE_ARCH:M${_arch})
108: NOPIE_FLAGS=-fno-pie
109: NOPIE_LDFLAGS=-nopie
110: PIE_DEFAULT=${DEFAULT_PIE_DEF}
111: .else
112: NOPIE_FLAGS=
113: PIE_DEFAULT=
114: .endif
115:
1.43 drahn 116: .if !empty(OLD_BINUTILS_ARCH:M${_arch})
117: NEW_BINUTILS?= No
118: BINUTILS= ar as ld nm ranlib objcopy objdump strings strip
119: .else
120: NEW_BINUTILS?= Yes
121: BINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \
122: strings strip
123: .endif
124: BINUTILS_DIR=gnu/usr.bin/${BINUTILS_VERSION}
125: .endfor
126:
1.2 espie 127: # no libcrypto.... these won't build
1.26 drahn 128: #NO_CROSS+= dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet \
129: # ftp gzsig sasyncd vnconfig
130:
1.2 espie 131: # explicit cross-compile
132: NO_CROSS+=bind
1.26 drahn 133: NO_CROSS+=httpd
134: NO_CROSS+=microcode
1.43 drahn 135: NO_CROSS+=groff lynx binutils binutils-2.17 perl texinfo gcc cvs
1.36 drahn 136: NO_CROSS+=nsd
1.51 jsing 137: NO_CROSS+=nginx
1.53 jsing 138: NO_CROSS+=sqlite3
1.2 espie 139:
1.1 espie 140: cross-dirs: ${CROSSDIRS}
141: cross-obj: ${CROSSOBJ}
142: cross-includes: ${CROSSINCLUDES}
143: cross-binutils: ${CROSSBINUTILS}
144: cross-gcc: ${CROSSGCC}
145:
146: cross-env:
147: @echo ${CROSSENV} MACHINE=${TARGET} \
1.23 mickey 148: MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
1.29 miod 149: MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \
1.23 mickey 150: BSDOBJDIR=${CROSSDIR}/usr/obj \
151: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET}
1.1 espie 152:
153: ${CROSSDIRS}:
1.49 drahn 154: .if ${TARGET_ARCH} == "arm" && ${MACHINE_IS_LP64} == "yes"
155: # this config is allowed
156: .elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64}
1.48 guenther 157: @echo "host and target have different size longs"
158: @echo "cross compiler generates bad code; aborting"; exit 1
159: .endif
1.1 espie 160: @-mkdir -p ${CROSSDIR}
1.11 miod 161: @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH
1.1 espie 162: @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH`
1.29 miod 163: @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU
164: @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU`
1.1 espie 165: @eval `grep '^osr=' sys/conf/newvers.sh`; \
1.29 miod 166: echo ${TARGET_ARCH}-unknown-openbsd$$osr > \
1.1 espie 167: ${CROSSDIR}/TARGET_CANON
168: @-mkdir -p ${CROSSDIR}
1.2 espie 169: @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}
1.1 espie 170: @ln -sf ${CROSSDIR}/usr/include \
1.2 espie 171: ${CROSSDIR}/usr/${TARGET_CANON}/include
1.1 espie 172: @ln -sf ${CROSSDIR}/usr/lib \
1.2 espie 173: ${CROSSDIR}/usr/${TARGET_CANON}/lib
174: @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin
1.1 espie 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 \
1.31 drahn 182: COMPILER_VERSION=${COMPILER_VERSION} \
1.1 espie 183: MACHINE=${TARGET} \
1.29 miod 184: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
1.1 espie 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 && \
1.31 drahn 192: COMPILER_VERSION=${COMPILER_VERSION} \
1.29 miod 193: MACHINE=${TARGET} \
194: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
1.1 espie 195: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 196: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 197: ${MAKE} prereq && \
1.31 drahn 198: COMPILER_VERSION=${COMPILER_VERSION} \
1.29 miod 199: MACHINE=${TARGET} \
200: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
1.1 espie 201: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 202: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 203: ${MAKE} DESTDIR=${CROSSDIR} includes)
204: @touch ${CROSSINCLUDES}
205:
206: ${CROSSBINUTILS}: ${CROSSINCLUDES}
1.43 drahn 207: (cd ${.CURDIR}/${BINUTILS_DIR}; \
1.1 espie 208: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.61 miod 209: USING_NEW_BINUTILS=${NEW_BINUTILS} PIE_DEFAULT=${PIE_DEFAULT} \
1.29 miod 210: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
211: PATH=${CROSSPATH} \
1.1 espie 212: ${MAKE} -f Makefile.bsd-wrapper depend && \
213: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.61 miod 214: USING_NEW_BINUTILS=${NEW_BINUTILS} PIE_DEFAULT=${PIE_DEFAULT} \
1.29 miod 215: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 216: ${MAKE} -f Makefile.bsd-wrapper all && \
217: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.31 drahn 218: COMPILER_VERSION=${COMPILER_VERSION} \
1.61 miod 219: USING_NEW_BINUTILS=${NEW_BINUTILS} PIE_DEFAULT=${PIE_DEFAULT} \
1.29 miod 220: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
221: USING_NEW_BINUTILS=${NEW_BINUTILS} \
222: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 223: ${MAKE} -f Makefile.bsd-wrapper install)
1.16 miod 224: .if ${NEW_BINUTILS:L} != "yes"
1.1 espie 225: (cd ${.CURDIR}/gnu/usr.bin/gas; \
1.2 espie 226: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 227: MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \
1.2 espie 228: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 229: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
230: ${MAKE} NOMAN= install)
231: ln -sf ${CROSSDIR}/usr/bin/as \
1.10 miod 232: ${CROSSDIR}/usr/${TARGET_CANON}/bin/as
1.1 espie 233: (cd ${.CURDIR}/gnu/usr.bin/ld; \
1.2 espie 234: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 235: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
236: ${MAKE} NOPIC= NOMAN= depend all; \
1.2 espie 237: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 238: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
239: ${MAKE} NOPIC= NOMAN= install)
240: ln -sf ${CROSSDIR}/usr/bin/ld \
1.2 espie 241: ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld
1.1 espie 242: (cd ${.CURDIR}/usr.bin/ar; \
1.15 miod 243: ELF_TOOLCHAIN=no \
1.1 espie 244: MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \
1.15 miod 245: ELF_TOOLCHAIN=no \
1.1 espie 246: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
247: ${MAKE} NOMAN= install)
248: ln -sf ${CROSSDIR}/usr/bin/ar \
1.2 espie 249: ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar
1.31 drahn 250: @(cd ${.CURDIR}/usr.bin/ranlib; \
1.15 miod 251: ELF_TOOLCHAIN=no \
1.1 espie 252: MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \
1.15 miod 253: ELF_TOOLCHAIN=no \
1.1 espie 254: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
255: ${MAKE} NOMAN= install)
256: ln -sf ${CROSSDIR}/usr/bin/ranlib \
1.2 espie 257: ${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib
1.1 espie 258: (cd ${.CURDIR}/usr.bin/strip; \
259: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.2 espie 260: ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 261: NOMAN= depend all; \
262: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.2 espie 263: ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 264: NOMAN= install)
265: ln -sf ${CROSSDIR}/usr/bin/strip \
1.2 espie 266: ${CROSSDIR}/usr/${TARGET_CANON}/bin/strip
1.1 espie 267: .endif
268: @for cmd in ${BINUTILS}; do \
1.26 drahn 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 ;\
1.1 espie 284: fi ;\
285: done
286: @touch ${CROSSBINUTILS}
287:
288:
289: ${CROSSGCC}: ${CROSSBINUTILS}
1.31 drahn 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)
1.40 drahn 308: cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++
1.31 drahn 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
1.40 drahn 311: cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc
1.31 drahn 312: ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc
1.40 drahn 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
1.31 drahn 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#' \
1.32 drahn 319: -e 's/@GNUC@//' \
1.31 drahn 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"
1.1 espie 327: (cd ${.CURDIR}/gnu/usr.bin/gcc; \
328: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 329: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
330: CROSSDIR=${CROSSDIR} \
1.26 drahn 331: PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \
1.1 espie 332: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 333: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
334: CROSSDIR=${CROSSDIR} \
1.1 espie 335: ${MAKE} -f Makefile.bsd-wrapper all && \
1.26 drahn 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#' \
1.32 drahn 346: -e 's/@GNUC@/-D__GNUC__/' \
1.26 drahn 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
1.1 espie 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 \
1.2 espie 357: --target ${TARGET_CANON} \
1.1 espie 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}" \
1.58 miod 361: CFLAGS="${CFLAGS} -DOPENBSD_CROSS -I${.CURDIR}/gnu/lib/libiberty/include" \
1.1 espie 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" \
1.58 miod 367: CFLAGS="${CFLAGS} -DOPENBSD_CROSS -I${.CURDIR}/gnu/lib/libiberty/include" \
1.1 espie 368: LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \
369: build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install)
1.26 drahn 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#' \
1.32 drahn 373: -e 's/@GNUC@/-D__GNUC__/' \
1.1 espie 374: -e 's#/usr/include#${CROSSDIR}/usr/include#' \
1.26 drahn 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++
1.1 espie 386: .endif
387: @touch ${CROSSGCC}
388:
389: # XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later
390: cross-lib: ${CROSSGCC}
1.29 miod 391: MACHINE=${TARGET} \
392: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
393: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.1 espie 394: (cd ${.CURDIR}/lib; \
395: for lib in csu libc; do \
396: (cd $$lib; \
397: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.54 okan 398: ${MAKE} depend all ;\
1.26 drahn 399: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
1.54 okan 400: ${MAKE} install); \
1.1 espie 401: done; \
402: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
403: SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \
1.54 okan 404: ${MAKE} depend all ; \
1.26 drahn 405: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
406: SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \
1.54 okan 407: ${MAKE} install)
1.1 espie 408:
409: cross-bin: ${CROSSOBJ}
1.29 miod 410: MACHINE=${TARGET} \
411: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
412: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.1 espie 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}\" \
1.26 drahn 417: ${MAKE} depend all ; \
418: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
419: SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \
420: ${MAKE} install); \
421: done
422:
423: cross-gnu: ${CROSSOBJ}
1.29 miod 424: MACHINE=${TARGET} \
425: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
426: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.26 drahn 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:
437: cross-share: ${CROSSOBJ}
1.29 miod 438: MACHINE=${TARGET} \
439: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
440: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.26 drahn 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:
448: cross-sys: ${CROSSOBJ}
1.29 miod 449: MACHINE=${TARGET} \
450: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
451: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.26 drahn 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); \
1.1 espie 457: done
458:
459: cross-etc-root-var: ${CROSSOBJ}
460: (cd ${.CURDIR}/etc && \
1.29 miod 461: MACHINE=${TARGET} \
462: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
463: DESTDIR=${CROSSDIR} \
464: ${MAKE} distribution-etc-root-var)
1.1 espie 465:
466: cross-depend:
467: @(cd ${.CURDIR} && \
468: BSDOBJDIR=${CROSSDIR}/usr/obj \
469: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
470: SKIPDIR="${NO_CROSS}" \
471: ${MAKE} depend)
472:
473: cross-clean:
474: @(cd ${.CURDIR} && \
475: BSDOBJDIR=${CROSSDIR}/usr/obj \
476: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
477: SKIPDIR="${NO_CROSS}" \
478: ${MAKE} clean)
479:
480: cross-cleandir:
481: @(cd ${.CURDIR} && \
482: BSDOBJDIR=${CROSSDIR}/usr/obj \
483: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
484: SKIPDIR="${NO_CROSS}" \
485: ${MAKE} cleandir)