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