Makefile revision 58478
1# $FreeBSD: head/gnu/lib/libgcc/Makefile 58478 2000-03-23 10:18:26Z obrien $ 2 3GCCDIR= ${.CURDIR}/../../../contrib/gcc 4 5.PATH: ${GCCDIR}/cp ${GCCDIR} 6 7.if !defined(LIB) || ${LIB} != "gcc_r" 8LIB= gcc 9.endif 10 11# Install libgcc_pic.a, since ld.so uses it. 12INSTALL_PIC_ARCHIVE= yes 13 14# 15# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be 16# compiled by the native compiler, and libgcc2.a is meant to be compiled 17# by *this* version of gcc. 18# 19# Normally, this does not make any difference, since we only have gcc, but 20# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2 21# compiler for some of the libgcc2.c __attribute__ stuff. 22# 23# We now depend on a bootstrap pass (normally in `make world') to build 24# and install the new version of gcc before we get here. This makes 25# finding the new version (XCC) easy but may break finding the old version 26# (CC). 27# 28XCC= ${CC} 29XCXX= ${CXX} 30 31# Members of libgcc1.a. 32LIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ 33 _lshrsi3 _ashrsi3 _ashlsi3 \ 34 _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \ 35 _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \ 36 _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \ 37 _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ 38 _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 39 40# Library members defined in libgcc2.c. 41LIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ 42 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \ 43 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \ 44 _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ 45 _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \ 46 _fixtfdi _fixunstfdi _floatditf \ 47 __gcc_bcmp _varargs __dummy _eprintf \ 48 _bb _shtab _clear_cache _trampoline __main _exit _ctors \ 49 _eh _pure 50 51# Library members defined in new1.cc. 52NEW1FUNCS= _op_new _op_newnt 53 54# Library members defined in new2.cc. 55NEW2FUNCS= _op_vnew _op_vnewnt _op_delete _op_delnt _op_vdel _op_vdelnt 56 57SRCS= frame.c tinfo.cc tinfo2.cc new.cc exception.cc 58 59CFLAGS+= -I${GCCDIR}/config -I${GCCDIR} -I. 60CFLAGS+= -fexceptions 61CFLAGS+= -DIN_GCC 62CXXFLAGS+= -I${GCCDIR}/cp/inc 63CXXFLAGS+= -nostdinc++ 64 65COMMONHDRS= config.h tconfig.h tm.h 66CLEANFILES+= ${COMMONHDRS} 67SRCS+= ${COMMONHDRS} 68 69LIB1OBJS= ${LIB1FUNCS:S/$/.o/} 70LIB2OBJS= ${LIB2FUNCS:S/$/.o/} 71LIB1SOBJS= ${LIB1FUNCS:S/$/.So/} 72LIB2SOBJS= ${LIB2FUNCS:S/$/.So/} 73LIB1POBJS= ${LIB1FUNCS:S/$/.po/} 74LIB2POBJS= ${LIB2FUNCS:S/$/.po/} 75NEW1OBJS= ${NEW1FUNCS:S/$/.o/} 76NEW2OBJS= ${NEW2FUNCS:S/$/.o/} 77NEW1SOBJS= ${NEW1FUNCS:S/$/.So/} 78NEW2SOBJS= ${NEW2FUNCS:S/$/.So/} 79NEW1POBJS= ${NEW1FUNCS:S/$/.po/} 80NEW2POBJS= ${NEW2FUNCS:S/$/.po/} 81 82OBJS= ${LIB1OBJS} ${LIB2OBJS} ${NEW1OBJS} ${NEW2OBJS} 83 84config.h: 85 echo '#include <${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h>' > ${.TARGET} 86 echo '#include <xm-freebsd.h>' >> ${.TARGET} 87 88tconfig.h: 89 echo '#include "gansidecl.h"' > ${.TARGET} 90 echo '#include "${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h"' >> ${.TARGET} 91 92# KEEP THIS IN SYNC with src/gcc/usr.bin/cc/cc_tools/Makefile !! 93tm.h: 94 echo '#include "${MACHINE_ARCH}/${MACHINE_ARCH}.h"' > ${.TARGET} 95.if ${MACHINE_ARCH} == "i386" 96 echo '#include "${MACHINE_ARCH}/att.h"' >> ${.TARGET} 97.endif 98 echo '#include <freebsd.h>' >> ${.TARGET} 99 echo '#include "${MACHINE_ARCH}/freebsd.h"' >> ${.TARGET} 100.if ${MACHINE_ARCH} == "i386" 101 echo '#include "${MACHINE_ARCH}/perform.h"' >> ${.TARGET} 102.endif 103 104${OBJS}: ${COMMONHDRS} 105 106${LIB1OBJS}: libgcc1.c 107 ${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 108 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 109 @mv ${.TARGET}.tmp ${.TARGET} 110 111${LIB2OBJS}: libgcc2.c 112 ${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 113 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 114 @mv ${.TARGET}.tmp ${.TARGET} 115 116${NEW1OBJS}: new1.cc 117 ${XCXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 118 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 119 @mv ${.TARGET}.tmp ${.TARGET} 120 121${NEW2OBJS}: new2.cc 122 ${CXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 123 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 124 @mv ${.TARGET}.tmp ${.TARGET} 125 126.if !defined(NOPIC) 127${LIB1SOBJS}: libgcc1.c 128 ${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 129 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 130 @mv ${.TARGET}.tmp ${.TARGET} 131 132${LIB2SOBJS}: libgcc2.c 133 ${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 134 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 135 @mv ${.TARGET}.tmp ${.TARGET} 136 137${NEW1SOBJS}: new1.cc 138 ${XCXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 139 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 140 @mv ${.TARGET}.tmp ${.TARGET} 141 142${NEW2SOBJS}: new2.cc 143 ${CXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 144 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 145 @mv ${.TARGET}.tmp ${.TARGET} 146.endif 147 148.if !defined(NOPROFILE) 149${LIB1POBJS}: libgcc1.c 150 ${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 151 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 152 @mv ${.TARGET}.tmp ${.TARGET} 153 154${LIB2POBJS}: libgcc2.c 155 ${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 156 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 157 @mv ${.TARGET}.tmp ${.TARGET} 158 159${NEW1POBJS}: new1.cc 160 ${XCXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 161 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 162 @mv ${.TARGET}.tmp ${.TARGET} 163 164${NEW2POBJS}: new2.cc 165 ${CXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 166 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 167 @mv ${.TARGET}.tmp ${.TARGET} 168.endif 169 170.include <bsd.lib.mk> 171