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