Annotation of src/Makefile.cross, Revision 1.45
1.45 ! kettenis 1: # $OpenBSD: Makefile.cross,v 1.44 2011/07/07 19:27:15 deraadt 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.30 drahn 10: ${TARGET} == "gumstix" || ${TARGET} == "palm" || \
11: ${TARGET} == "zaurus")
1.11 miod 12: TARGET_ARCH= arm
13: .elif (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \
14: ${TARGET} == "mvme68k")
15: TARGET_ARCH= m68k
1.17 miod 16: .elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \
17: ${TARGET} == "mvme88k")
1.11 miod 18: TARGET_ARCH= m88k
1.37 syuu 19: .elif (${TARGET} == "sgi" || ${TARGET} == "octeon")
1.11 miod 20: TARGET_ARCH= mips64
1.29 miod 21: .elif (${TARGET} == "loongson")
22: TARGET_ARCH= mips64el
23: TARGET_CPU= mips64
1.22 deraadt 24: .elif (${TARGET} == "solbourne")
25: TARGET_ARCH= sparc
1.44 deraadt 26: .elif (${TARGET} == "macppc" || ${TARGET} == "socppc")
1.11 miod 27: TARGET_ARCH= powerpc
1.21 miod 28: .elif (${TARGET} == "landisk")
29: TARGET_ARCH= sh
1.11 miod 30: .else
31: TARGET_ARCH= ${TARGET}
32: .endif
1.29 miod 33: TARGET_CPU?= ${TARGET_ARCH}
1.11 miod 34:
1.26 drahn 35: #CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include
36: #CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static
37: CROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}
1.1 espie 38: CROSSCXXFLAGS?= ${CROSSCPPFLAGS}
1.26 drahn 39: #LDSTATIC?= -static
40:
41: # XXX
42: BINMODE?=555
43: BINOWN?=root
1.42 mpi 44: BINGRP?=bin
1.1 espie 45:
46: CROSSDIR= ${DESTDIR}/usr/cross/${TARGET}
1.26 drahn 47: CROSSENV= 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= \
1.1 espie 57: HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \
1.11 miod 58: HOSTLDFLAGS=\"${LDFLAGS}\" \
1.1 espie 59: CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \
60: CXXFLAGS=\"${CROSSCXXFLAGS}\" \
61: LDFLAGS=\"${CROSSLDFLAGS}\"
1.26 drahn 62: CROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin
63: CROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH}
1.1 espie 64: CROSSLANGS?= c c++
65:
1.2 espie 66: TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON`
67:
1.1 espie 68: CROSSDIRS= ${CROSSDIR}/.dirs_done
1.26 drahn 69: CROSSOBJ= ${CROSSDIR}/.obj_done
70: CROSSINCLUDES= ${CROSSDIR}/.includes_done
71: CROSSBINUTILS= ${CROSSDIR}/.binutils_done
72: CROSSGCC= ${CROSSDIR}/.gcc_done
1.41 djm 73: #NO_CROSS= isakmpd keynote ssh
1.1 espie 74:
1.43 drahn 75: GCC2_ARCH=m68k m88k sparc vax
76: GCC4_ARCH=amd64 hppa i386 mips64* powerpc sparc64
1.45 ! kettenis 77: BINUTILS217_ARCH=ia64 hppa64
1.43 drahn 78: OLD_BINUTILS_ARCH=m68k m88k vax
79:
80: .for _arch in ${TARGET_ARCH}
81: .if !empty(GCC2_ARCH:M${_arch})
82: USE_GCC3?=no
1.31 drahn 83: TARGET_USE_GCC3=No
1.43 drahn 84: COMPILER_VERSION?=gcc2
85: .elif !empty(GCC4_ARCH:M${_arch})
1.31 drahn 86: TARGET_USE_GCC4=Yes
1.43 drahn 87: COMPILER_VERSION?=gcc4
1.31 drahn 88: .else
89: TARGET_USE_GCC3=Yes
1.43 drahn 90: COMPILER_VERSION?=gcc3
1.31 drahn 91: .endif
92:
1.43 drahn 93: .if !empty(BINUTILS217_ARCH:M${_arch})
94: BINUTILS_VERSION=binutils-2.17
95: .else
96: BINUTILS_VERSION=binutils
97: .endif
98:
99: .if !empty(OLD_BINUTILS_ARCH:M${_arch})
100: NEW_BINUTILS?= No
101: BINUTILS= ar as ld nm ranlib objcopy objdump strings strip
102: .else
103: NEW_BINUTILS?= Yes
104: BINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \
105: strings strip
106: .endif
107: BINUTILS_DIR=gnu/usr.bin/${BINUTILS_VERSION}
108: .endfor
109:
1.2 espie 110: # no libcrypto.... these won't build
1.26 drahn 111: #NO_CROSS+= dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet \
112: # ftp gzsig sasyncd vnconfig
113:
1.2 espie 114: # need host setup for ydr
115: NO_CROSS+=afs
116: # explicit cross-compile
117: NO_CROSS+=bind
1.26 drahn 118: NO_CROSS+=httpd
119: NO_CROSS+=microcode
1.43 drahn 120: NO_CROSS+=groff lynx binutils binutils-2.17 perl texinfo gcc cvs
1.36 drahn 121: NO_CROSS+=nsd
1.2 espie 122:
1.1 espie 123: cross-dirs: ${CROSSDIRS}
124: cross-obj: ${CROSSOBJ}
125: cross-includes: ${CROSSINCLUDES}
126: cross-binutils: ${CROSSBINUTILS}
127: cross-gcc: ${CROSSGCC}
128:
129: cross-env:
130: @echo ${CROSSENV} MACHINE=${TARGET} \
1.23 mickey 131: MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
1.29 miod 132: MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \
1.23 mickey 133: BSDOBJDIR=${CROSSDIR}/usr/obj \
134: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET}
1.1 espie 135:
136: ${CROSSDIRS}:
137: @-mkdir -p ${CROSSDIR}
1.11 miod 138: @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH
1.1 espie 139: @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH`
1.29 miod 140: @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU
141: @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU`
1.1 espie 142: @eval `grep '^osr=' sys/conf/newvers.sh`; \
1.29 miod 143: echo ${TARGET_ARCH}-unknown-openbsd$$osr > \
1.1 espie 144: ${CROSSDIR}/TARGET_CANON
145: @-mkdir -p ${CROSSDIR}
1.2 espie 146: @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}
1.1 espie 147: @ln -sf ${CROSSDIR}/usr/include \
1.2 espie 148: ${CROSSDIR}/usr/${TARGET_CANON}/include
1.1 espie 149: @ln -sf ${CROSSDIR}/usr/lib \
1.2 espie 150: ${CROSSDIR}/usr/${TARGET_CANON}/lib
151: @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin
1.1 espie 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 \
1.31 drahn 159: COMPILER_VERSION=${COMPILER_VERSION} \
1.1 espie 160: MACHINE=${TARGET} \
1.29 miod 161: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
1.1 espie 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 && \
1.31 drahn 169: COMPILER_VERSION=${COMPILER_VERSION} \
1.29 miod 170: MACHINE=${TARGET} \
171: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
1.1 espie 172: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 173: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 174: ${MAKE} prereq && \
1.31 drahn 175: COMPILER_VERSION=${COMPILER_VERSION} \
1.29 miod 176: MACHINE=${TARGET} \
177: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
1.1 espie 178: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 179: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 180: ${MAKE} DESTDIR=${CROSSDIR} includes)
181: @touch ${CROSSINCLUDES}
182:
183: ${CROSSBINUTILS}: ${CROSSINCLUDES}
1.43 drahn 184: (cd ${.CURDIR}/${BINUTILS_DIR}; \
1.1 espie 185: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.16 miod 186: USING_NEW_BINUTILS=${NEW_BINUTILS} \
1.29 miod 187: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
188: PATH=${CROSSPATH} \
1.1 espie 189: ${MAKE} -f Makefile.bsd-wrapper depend && \
190: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.16 miod 191: USING_NEW_BINUTILS=${NEW_BINUTILS} \
1.29 miod 192: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 193: ${MAKE} -f Makefile.bsd-wrapper all && \
194: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.31 drahn 195: COMPILER_VERSION=${COMPILER_VERSION} \
1.16 miod 196: USING_NEW_BINUTILS=${NEW_BINUTILS} \
1.29 miod 197: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
198: USING_NEW_BINUTILS=${NEW_BINUTILS} \
199: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
1.1 espie 200: ${MAKE} -f Makefile.bsd-wrapper install)
1.16 miod 201: .if ${NEW_BINUTILS:L} != "yes"
1.1 espie 202: (cd ${.CURDIR}/gnu/usr.bin/gas; \
1.2 espie 203: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 204: MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \
1.2 espie 205: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 206: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
207: ${MAKE} NOMAN= install)
208: ln -sf ${CROSSDIR}/usr/bin/as \
1.10 miod 209: ${CROSSDIR}/usr/${TARGET_CANON}/bin/as
1.1 espie 210: (cd ${.CURDIR}/gnu/usr.bin/ld; \
1.2 espie 211: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 212: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
213: ${MAKE} NOPIC= NOMAN= depend all; \
1.2 espie 214: TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 215: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
216: ${MAKE} NOPIC= NOMAN= install)
217: ln -sf ${CROSSDIR}/usr/bin/ld \
1.2 espie 218: ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld
1.1 espie 219: (cd ${.CURDIR}/usr.bin/ar; \
1.15 miod 220: ELF_TOOLCHAIN=no \
1.1 espie 221: MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \
1.15 miod 222: ELF_TOOLCHAIN=no \
1.1 espie 223: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
224: ${MAKE} NOMAN= install)
225: ln -sf ${CROSSDIR}/usr/bin/ar \
1.2 espie 226: ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar
1.31 drahn 227: @(cd ${.CURDIR}/usr.bin/ranlib; \
1.15 miod 228: ELF_TOOLCHAIN=no \
1.1 espie 229: MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \
1.15 miod 230: ELF_TOOLCHAIN=no \
1.1 espie 231: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
232: ${MAKE} NOMAN= install)
233: ln -sf ${CROSSDIR}/usr/bin/ranlib \
1.2 espie 234: ${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib
1.1 espie 235: (cd ${.CURDIR}/usr.bin/strip; \
236: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.2 espie 237: ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 238: NOMAN= depend all; \
239: DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.2 espie 240: ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \
1.1 espie 241: NOMAN= install)
242: ln -sf ${CROSSDIR}/usr/bin/strip \
1.2 espie 243: ${CROSSDIR}/usr/${TARGET_CANON}/bin/strip
1.1 espie 244: .endif
245: @for cmd in ${BINUTILS}; do \
1.26 drahn 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 ;\
1.1 espie 261: fi ;\
262: done
263: @touch ${CROSSBINUTILS}
264:
265:
266: ${CROSSGCC}: ${CROSSBINUTILS}
1.31 drahn 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)
1.40 drahn 285: cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++
1.31 drahn 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
1.40 drahn 288: cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc
1.31 drahn 289: ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc
1.40 drahn 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
1.31 drahn 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#' \
1.32 drahn 296: -e 's/@GNUC@//' \
1.31 drahn 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"
1.1 espie 304: (cd ${.CURDIR}/gnu/usr.bin/gcc; \
305: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 306: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
307: CROSSDIR=${CROSSDIR} \
1.26 drahn 308: PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \
1.1 espie 309: MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.29 miod 310: TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
311: CROSSDIR=${CROSSDIR} \
1.1 espie 312: ${MAKE} -f Makefile.bsd-wrapper all && \
1.26 drahn 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#' \
1.32 drahn 323: -e 's/@GNUC@/-D__GNUC__/' \
1.26 drahn 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
1.1 espie 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 \
1.2 espie 334: --target ${TARGET_CANON} \
1.1 espie 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)
1.26 drahn 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#' \
1.32 drahn 350: -e 's/@GNUC@/-D__GNUC__/' \
1.1 espie 351: -e 's#/usr/include#${CROSSDIR}/usr/include#' \
1.26 drahn 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++
1.1 espie 363: .endif
364: @touch ${CROSSGCC}
365:
366: # XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later
367: cross-lib: ${CROSSGCC}
1.29 miod 368: MACHINE=${TARGET} \
369: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
370: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.1 espie 371: (cd ${.CURDIR}/lib; \
372: for lib in csu libc; do \
373: (cd $$lib; \
374: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
1.26 drahn 375: ${MAKE} WANTLINT=no depend all ;\
376: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
377: ${MAKE} WANTLINT=no install); \
1.1 espie 378: done; \
379: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
380: SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \
1.26 drahn 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)
1.1 espie 385:
386: cross-bin: ${CROSSOBJ}
1.29 miod 387: MACHINE=${TARGET} \
388: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
389: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.1 espie 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}\" \
1.26 drahn 394: ${MAKE} depend all ; \
395: eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
396: SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \
397: ${MAKE} install); \
398: done
399:
400: cross-gnu: ${CROSSOBJ}
1.29 miod 401: MACHINE=${TARGET} \
402: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
403: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.26 drahn 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:
414: cross-share: ${CROSSOBJ}
1.29 miod 415: MACHINE=${TARGET} \
416: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
417: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.26 drahn 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:
425: cross-sys: ${CROSSOBJ}
1.29 miod 426: MACHINE=${TARGET} \
427: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
428: export MACHINE MACHINE_ARCH MACHINE_CPU; \
1.26 drahn 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); \
1.1 espie 434: done
435:
436: cross-etc-root-var: ${CROSSOBJ}
437: (cd ${.CURDIR}/etc && \
1.29 miod 438: MACHINE=${TARGET} \
439: MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
440: DESTDIR=${CROSSDIR} \
441: ${MAKE} distribution-etc-root-var)
1.1 espie 442:
443: cross-depend:
444: @(cd ${.CURDIR} && \
445: BSDOBJDIR=${CROSSDIR}/usr/obj \
446: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
447: SKIPDIR="${NO_CROSS}" \
448: ${MAKE} depend)
449:
450: cross-clean:
451: @(cd ${.CURDIR} && \
452: BSDOBJDIR=${CROSSDIR}/usr/obj \
453: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
454: SKIPDIR="${NO_CROSS}" \
455: ${MAKE} clean)
456:
457: cross-cleandir:
458: @(cd ${.CURDIR} && \
459: BSDOBJDIR=${CROSSDIR}/usr/obj \
460: BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
461: SKIPDIR="${NO_CROSS}" \
462: ${MAKE} cleandir)