Makefile revision 53173
1169691Skan# $FreeBSD: head/gnu/lib/libgcc/Makefile 53173 1999-11-15 04:16:19Z obrien $ 2169691Skan 3169691SkanGCCDIR= ${.CURDIR}/../../../contrib/gcc 4169691Skan 5169691Skan.PATH: ${GCCDIR}/cp ${GCCDIR} 6169691Skan 7169691Skan.if !defined(LIB) || ${LIB} != "gcc_r" 8169691SkanLIB= gcc 9169691Skan.endif 10169691Skan 11169691Skan# Install libgcc_pic.a, since ld.so uses it. 12169691SkanINSTALL_PIC_ARCHIVE= yes 13169691Skan 14169691Skan# 15169691Skan# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be 16169691Skan# compiled by the native compiler, and libgcc2.a is meant to be compiled 17169691Skan# by *this* version of gcc. 18169691Skan# 19169691Skan# Normally, this does not make any difference, since we only have gcc, but 20169691Skan# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2 21169691Skan# compiler for some of the libgcc2.c __attribute__ stuff. 22169691Skan# 23169691Skan# We now depend on a bootstrap pass (normally in `make world') to build 24169691Skan# and install the new version of gcc before we get here. This makes 25169691Skan# finding the new version (XCC) easy but may break finding the old version 26169691Skan# (CC). 27169691Skan# 28169691SkanXCC= ${CC} 29169691SkanXCXX= ${CXX} 30169691Skan 31169691Skan# Members of libgcc1.a. 32169691SkanLIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ 33169691Skan _lshrsi3 _ashrsi3 _ashlsi3 \ 34169691Skan _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \ 35169691Skan _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \ 36169691Skan _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \ 37169691Skan _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ 38169691Skan _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 39169691Skan 40169691Skan# Library members defined in libgcc2.c. 41169691SkanLIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ 42169691Skan _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \ 43169691Skan _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \ 44169691Skan _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ 45169691Skan _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \ 46169691Skan _fixtfdi _fixunstfdi _floatditf \ 47169691Skan __gcc_bcmp _varargs __dummy _eprintf \ 48169691Skan _bb _shtab _clear_cache _trampoline __main _exit _ctors \ 49169691Skan _eh _pure 50169691Skan 51169691Skan# Library members defined in new1.cc. 52169691SkanNEW1FUNCS= _op_new _op_newnt 53169691Skan 54169691Skan# Library members defined in new2.cc. 55169691SkanNEW2FUNCS= _op_vnew _op_vnewnt _op_delete _op_delnt _op_vdel _op_vdelnt 56169691Skan 57169691SkanSRCS= frame.c tinfo.cc tinfo2.cc new.cc exception.cc 58169691Skan 59169691SkanCFLAGS+= -I${GCCDIR}/config -I${GCCDIR} -I. 60169691SkanCFLAGS+= -fexceptions 61169691SkanCFLAGS+= -DIN_GCC 62169691SkanCXXFLAGS+= -I${GCCDIR}/cp/inc 63169691SkanCXXFLAGS+= -nostdinc++ 64169691Skan 65169691SkanCOMMONHDRS= config.h tconfig.h tm.h 66169691SkanCLEANFILES+= ${COMMONHDRS} 67169691SkanSRCS+= ${COMMONHDRS} 68169691Skan 69169691SkanLIB1OBJS= ${LIB1FUNCS:S/$/.o/} 70169691SkanLIB2OBJS= ${LIB2FUNCS:S/$/.o/} 71169691SkanLIB1SOBJS= ${LIB1FUNCS:S/$/.So/} 72169691SkanLIB2SOBJS= ${LIB2FUNCS:S/$/.So/} 73169691SkanLIB1POBJS= ${LIB1FUNCS:S/$/.po/} 74169691SkanLIB2POBJS= ${LIB2FUNCS:S/$/.po/} 75169691SkanNEW1OBJS= ${NEW1FUNCS:S/$/.o/} 76169691SkanNEW2OBJS= ${NEW2FUNCS:S/$/.o/} 77169691SkanNEW1SOBJS= ${NEW1FUNCS:S/$/.So/} 78169691SkanNEW2SOBJS= ${NEW2FUNCS:S/$/.So/} 79169691SkanNEW1POBJS= ${NEW1FUNCS:S/$/.po/} 80169691SkanNEW2POBJS= ${NEW2FUNCS:S/$/.po/} 81169691Skan 82169691SkanOBJS= ${LIB1OBJS} ${LIB2OBJS} ${NEW1OBJS} ${NEW2OBJS} 83169691Skan 84169691Skanconfig.h: 85169691Skan echo '#include <${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h>' > ${.TARGET} 86169691Skan echo '#include <xm-freebsd.h>' >> ${.TARGET} 87169691Skan 88169691Skantconfig.h: 89169691Skan echo '#include "gansidecl.h"' > ${.TARGET} 90169691Skan echo '#include "${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h"' >> ${.TARGET} 91169691Skan 92169691Skan# KEEP THIS IN SYNC with src/gcc/usr.bin/cc/cc_tools/Makefile !! 93169691Skantm.h: 94169691Skan echo '#include "${MACHINE_ARCH}/${MACHINE_ARCH}.h"' > ${.TARGET} 95169691Skan.if ${MACHINE_ARCH} == "i386" 96169691Skan echo '#include "${MACHINE_ARCH}/att.h"' >> ${.TARGET} 97169691Skan echo '#include "svr4.h"' >> ${.TARGET} 98169691Skan.endif 99169691Skan echo '#include <freebsd.h>' >> ${.TARGET} 100169691Skan.if ${MACHINE_ARCH} == "alpha" 101169691Skan echo '#include "${MACHINE_ARCH}/freebsd4.h"' >> ${.TARGET} 102169691Skan.else 103169691Skan echo '#include "${MACHINE_ARCH}/freebsd.h"' >> ${.TARGET} 104169691Skan.endif 105169691Skan.if ${MACHINE_ARCH} == "i386" 106169691Skan echo '#include "${MACHINE_ARCH}/perform.h"' >> ${.TARGET} 107169691Skan.endif 108169691Skan 109169691Skan${OBJS}: ${COMMONHDRS} 110169691Skan 111169691Skan${LIB1OBJS}: libgcc1.c 112169691Skan ${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 113169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 114169691Skan @mv ${.TARGET}.tmp ${.TARGET} 115169691Skan 116169691Skan${LIB2OBJS}: libgcc2.c 117169691Skan ${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 118169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 119169691Skan @mv ${.TARGET}.tmp ${.TARGET} 120169691Skan 121169691Skan${NEW1OBJS}: new1.cc 122169691Skan ${XCXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 123169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 124169691Skan @mv ${.TARGET}.tmp ${.TARGET} 125169691Skan 126169691Skan${NEW2OBJS}: new2.cc 127169691Skan ${CXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 128169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 129169691Skan @mv ${.TARGET}.tmp ${.TARGET} 130169691Skan 131169691Skan.if !defined(NOPIC) 132169691Skan${LIB1SOBJS}: libgcc1.c 133169691Skan ${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 134169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 135169691Skan @mv ${.TARGET}.tmp ${.TARGET} 136169691Skan 137169691Skan${LIB2SOBJS}: libgcc2.c 138169691Skan ${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 139169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 140169691Skan @mv ${.TARGET}.tmp ${.TARGET} 141169691Skan 142169691Skan${NEW1SOBJS}: new1.cc 143169691Skan ${XCXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 144169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 145169691Skan @mv ${.TARGET}.tmp ${.TARGET} 146169691Skan 147169691Skan${NEW2SOBJS}: new2.cc 148169691Skan ${CXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 149169691Skan @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 150169691Skan @mv ${.TARGET}.tmp ${.TARGET} 151169691Skan.endif 152169691Skan 153169691Skan.if !defined(NOPROFILE) 154169691Skan${LIB1POBJS}: libgcc1.c 155169691Skan ${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 156169691Skan @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 157169691Skan @mv ${.TARGET}.tmp ${.TARGET} 158169691Skan 159169691Skan${LIB2POBJS}: libgcc2.c 160169691Skan ${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 161169691Skan @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 162169691Skan @mv ${.TARGET}.tmp ${.TARGET} 163169691Skan 164169691Skan${NEW1POBJS}: new1.cc 165169691Skan ${XCXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 166169691Skan @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 167169691Skan @mv ${.TARGET}.tmp ${.TARGET} 168169691Skan 169169691Skan${NEW2POBJS}: new2.cc 170169691Skan ${CXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 171169691Skan @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 172169691Skan @mv ${.TARGET}.tmp ${.TARGET} 173169691Skan.endif 174169691Skan 175169691Skan.include <bsd.lib.mk> 176169691Skan