Makefile revision 50472
1247835Skib# $FreeBSD: head/gnu/lib/libgcc/Makefile 50472 1999-08-27 23:37:10Z peter $ 2247835Skib 3247835SkibGCCDIR= ${.CURDIR}/../../../contrib/egcs/gcc 4247835Skib 5247835Skib.PATH: ${GCCDIR}/cp ${GCCDIR} 6247835Skib 7247835SkibLIB= gcc 8247835Skib 9247835Skib# Install libgcc_pic.a, since ld.so uses it. 10247835SkibINSTALL_PIC_ARCHIVE= yes 11247835Skib 12247835Skib# 13247835Skib# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be 14247835Skib# compiled by the native compiler, and libgcc2.a is meant to be compiled 15247835Skib# by *this* version of gcc. 16247835Skib# 17247835Skib# Normally, this does not make any difference, since we only have gcc, but 18247835Skib# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2 19247835Skib# compiler for some of the libgcc2.c __attribute__ stuff. 20247835Skib# 21247835Skib# We now depend on a bootstrap pass (normally in `make world') to build 22247835Skib# and install the new version of gcc before we get here. This makes 23247835Skib# finding the new version (XCC) easy but may break finding the old version 24247835Skib# (CC). 25247835Skib# 26247835SkibXCC= ${CC} 27247835SkibXCXX= ${CXX} 28247835Skib 29247835Skib# Members of libgcc1.a. 30247835SkibLIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ 31247835Skib _lshrsi3 _ashrsi3 _ashlsi3 \ 32247835Skib _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \ 33247835Skib _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \ 34247835Skib _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \ 35247835Skib _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ 36247835Skib _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 37247835Skib 38247835Skib# Library members defined in libgcc2.c. 39247835SkibLIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ 40247835Skib _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \ 41247835Skib _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \ 42247835Skib _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ 43247835Skib _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \ 44247835Skib _fixtfdi _fixunstfdi _floatditf \ 45247835Skib __gcc_bcmp _varargs __dummy _eprintf \ 46247835Skib _bb _shtab _clear_cache _trampoline __main _exit _ctors \ 47247835Skib _eh _pure 48247835Skib 49247835Skib# Library members defined in new1.cc. 50247835SkibNEW1FUNCS= _op_new _op_newnt 51247835Skib 52247835Skib# Library members defined in new2.cc. 53247835SkibNEW2FUNCS= _op_vnew _op_vnewnt _op_delete _op_delnt _op_vdel _op_vdelnt 54247835Skib 55247835SkibSRCS= frame.c tinfo.cc tinfo2.cc new.cc exception.cc 56247835Skib 57247835SkibCFLAGS+= -I${GCCDIR}/config -I${GCCDIR} -I. 58247835SkibCFLAGS+= -fexceptions 59247835SkibCFLAGS+= -DIN_GCC 60247835SkibCXXFLAGS+= -I${GCCDIR}/cp/inc 61247835SkibCXXFLAGS+= -nostdinc++ 62247835Skib 63247835SkibCOMMONHDRS= config.h tconfig.h tm.h 64247835SkibCLEANFILES+= ${COMMONHDRS} 65247835SkibSRCS+= ${COMMONHDRS} 66247835Skib 67247835SkibLIB1OBJS= ${LIB1FUNCS:S/$/.o/} 68247835SkibLIB2OBJS= ${LIB2FUNCS:S/$/.o/} 69247835SkibLIB1SOBJS= ${LIB1FUNCS:S/$/.So/} 70247835SkibLIB2SOBJS= ${LIB2FUNCS:S/$/.So/} 71247835SkibLIB1POBJS= ${LIB1FUNCS:S/$/.po/} 72247835SkibLIB2POBJS= ${LIB2FUNCS:S/$/.po/} 73247835SkibNEW1OBJS= ${NEW1FUNCS:S/$/.o/} 74247835SkibNEW2OBJS= ${NEW2FUNCS:S/$/.o/} 75247835SkibNEW1SOBJS= ${NEW1FUNCS:S/$/.So/} 76247835SkibNEW2SOBJS= ${NEW2FUNCS:S/$/.So/} 77247835SkibNEW1POBJS= ${NEW1FUNCS:S/$/.po/} 78247835SkibNEW2POBJS= ${NEW2FUNCS:S/$/.po/} 79247835Skib 80247835SkibOBJS= ${LIB1OBJS} ${LIB2OBJS} ${NEW1OBJS} ${NEW2OBJS} 81247835Skib 82247835Skibconfig.h: 83247835Skib echo '#include <${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h>' > ${.TARGET} 84247835Skib echo '#include <xm-freebsd.h>' >> ${.TARGET} 85247835Skib 86247835Skibtconfig.h: 87247835Skib echo '#include "${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h"' > ${.TARGET} 88247835Skib 89247835Skibtm.h: 90247835Skib echo '#include "${MACHINE_ARCH}/${MACHINE_ARCH}.h"' > ${.TARGET} 91247835Skib.if ${MACHINE_ARCH} == "i386" 92247835Skib echo '#include "${MACHINE_ARCH}/att.h"' >> ${.TARGET} 93247835Skib.endif 94247835Skib echo '#include "${MACHINE_ARCH}/freebsd.h"' >> ${.TARGET} 95247835Skib.if ${MACHINE_ARCH} == "i386" 96247835Skib echo '#include "${MACHINE_ARCH}/perform.h"' >> ${.TARGET} 97247835Skib.endif 98247835Skib 99247835Skib${OBJS}: ${COMMONHDRS} 100247835Skib 101247835Skib${LIB1OBJS}: libgcc1.c 102247835Skib ${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 103247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 104247835Skib @mv ${.TARGET}.tmp ${.TARGET} 105247835Skib 106247835Skib${LIB2OBJS}: libgcc2.c 107247835Skib ${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 108247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 109247835Skib @mv ${.TARGET}.tmp ${.TARGET} 110247835Skib 111247835Skib${NEW1OBJS}: new1.cc 112247835Skib ${XCXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 113247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 114247835Skib @mv ${.TARGET}.tmp ${.TARGET} 115247835Skib 116247835Skib${NEW2OBJS}: new2.cc 117247835Skib ${CXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 118247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 119247835Skib @mv ${.TARGET}.tmp ${.TARGET} 120247835Skib 121247835Skib.if !defined(NOPIC) 122247835Skib${LIB1SOBJS}: libgcc1.c 123247835Skib ${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 124247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 125247835Skib @mv ${.TARGET}.tmp ${.TARGET} 126247835Skib 127247835Skib${LIB2SOBJS}: libgcc2.c 128247835Skib ${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 129247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 130247835Skib @mv ${.TARGET}.tmp ${.TARGET} 131247835Skib 132247835Skib${NEW1SOBJS}: new1.cc 133247835Skib ${XCXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 134247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 135247835Skib @mv ${.TARGET}.tmp ${.TARGET} 136247835Skib 137247835Skib${NEW2SOBJS}: new2.cc 138247835Skib ${CXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 139247835Skib @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 140247835Skib @mv ${.TARGET}.tmp ${.TARGET} 141247835Skib.endif 142247835Skib 143247835Skib.if !defined(NOPROFILE) 144247835Skib${LIB1POBJS}: libgcc1.c 145247835Skib ${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 146247835Skib @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 147247835Skib @mv ${.TARGET}.tmp ${.TARGET} 148247835Skib 149247835Skib${LIB2POBJS}: libgcc2.c 150247835Skib ${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 151247835Skib @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 152247835Skib @mv ${.TARGET}.tmp ${.TARGET} 153247835Skib 154247835Skib${NEW1POBJS}: new1.cc 155247835Skib ${XCXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 156247835Skib @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 157247835Skib @mv ${.TARGET}.tmp ${.TARGET} 158247835Skib 159247835Skib${NEW2POBJS}: new2.cc 160247835Skib ${CXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 161247835Skib @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 162247835Skib @mv ${.TARGET}.tmp ${.TARGET} 163247835Skib.endif 164247835Skib 165247835Skib.include <bsd.lib.mk> 166247835Skib