Makefile revision 45306
1218885Sdim# 2218885Sdim# $Id: Makefile,v 1.21 1999/04/04 16:36:29 obrien Exp $ 3218885Sdim# 4218885Sdim 5218885SdimGCCDIR= ${.CURDIR}/../../../contrib/egcs/gcc 6218885Sdim 7218885Sdim.PATH: ${GCCDIR}/cp ${GCCDIR} 8218885Sdim 9218885SdimLIB= gcc 10218885Sdim 11218885Sdim# Install libgcc_pic.a, since ld.so uses it. 12218885SdimINSTALL_PIC_ARCHIVE= yes 13218885Sdim 14218885Sdim# 15218885Sdim# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be 16218885Sdim# compiled by the native compiler, and libgcc2.a is meant to be compiled 17218885Sdim# by *this* version of gcc. 18218885Sdim# 19218885Sdim# Normally, this does not make any difference, since we only have gcc, but 20218885Sdim# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2 21218885Sdim# compiler for some of the libgcc2.c __attribute__ stuff. 22218885Sdim# 23218885Sdim# We now depend on a bootstrap pass (normally in `make world') to build 24218885Sdim# and install the new version of gcc before we get here. This makes 25218885Sdim# finding the new version (XCC) easy but may break finding the old version 26218885Sdim# (CC). 27218885Sdim# 28218885SdimXCC= ${CC} 29218885SdimXCXX= ${CXX} 30218885Sdim 31218885Sdim# Members of libgcc1.a. 32218885SdimLIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \ 33218885Sdim _lshrsi3 _ashrsi3 _ashlsi3 \ 34218885Sdim _divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \ 35218885Sdim _fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \ 36218885Sdim _addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \ 37218885Sdim _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ 38218885Sdim _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 39218885Sdim 40218885Sdim# Library members defined in libgcc2.c. 41218885SdimLIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \ 42218885Sdim _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \ 43218885Sdim _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \ 44218885Sdim _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \ 45218885Sdim _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \ 46218885Sdim _fixtfdi _fixunstfdi _floatditf \ 47218885Sdim __gcc_bcmp _varargs __dummy _eprintf \ 48218885Sdim _bb _shtab _clear_cache _trampoline __main _exit _ctors \ 49218885Sdim _eh _pure 50218885Sdim 51218885Sdim# Library members defined in new1.cc. 52218885SdimNEW1FUNCS= _op_new _op_newnt 53218885Sdim 54218885Sdim# Library members defined in new2.cc. 55218885SdimNEW2FUNCS= _op_vnew _op_vnewnt _op_delete _op_delnt _op_vdel _op_vdelnt 56218885Sdim 57218885SdimSRCS= frame.c tinfo.cc tinfo2.cc new.cc exception.cc 58218885Sdim 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-freebsd.h"' > ${.TARGET} 86 87tconfig.h: 88 echo '#include "${MACHINE_ARCH}/xm-${MACHINE_ARCH}.h"' > ${.TARGET} 89 90tm.h: 91 echo '#include "${MACHINE_ARCH}/${MACHINE_ARCH}.h"' > ${.TARGET} 92 echo '#include "${MACHINE_ARCH}/att.h"' >> ${.TARGET} 93 echo '#include "${MACHINE_ARCH}/freebsd.h"' >> ${.TARGET} 94.if ${MACHINE_ARCH} == "i386" 95 echo '#include "${MACHINE_ARCH}/perform.h"' >> ${.TARGET} 96.elif ${MACHINE_ARCH} == "alpha" 97 echo '#include "${MACHINE_ARCH}/freebsd-elf.h"' >> ${.TARGET} 98.endif 99 100${OBJS}: ${COMMONHDRS} 101 102${LIB1OBJS}: libgcc1.c 103 ${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 104 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 105 @mv ${.TARGET}.tmp ${.TARGET} 106 107${LIB2OBJS}: libgcc2.c 108 ${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 109 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 110 @mv ${.TARGET}.tmp ${.TARGET} 111 112${NEW1OBJS}: new1.cc 113 ${XCXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 114 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 115 @mv ${.TARGET}.tmp ${.TARGET} 116 117${NEW2OBJS}: new2.cc 118 ${CXX} -c ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 119 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 120 @mv ${.TARGET}.tmp ${.TARGET} 121 122.if !defined(NOPIC) 123${LIB1SOBJS}: libgcc1.c 124 ${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 125 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 126 @mv ${.TARGET}.tmp ${.TARGET} 127 128${LIB2SOBJS}: libgcc2.c 129 ${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 130 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 131 @mv ${.TARGET}.tmp ${.TARGET} 132 133${NEW1SOBJS}: new1.cc 134 ${XCXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 135 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 136 @mv ${.TARGET}.tmp ${.TARGET} 137 138${NEW2SOBJS}: new2.cc 139 ${CXX} -c -fpic ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 140 @${LD} -o ${.TARGET}.tmp -x -r ${.TARGET} 141 @mv ${.TARGET}.tmp ${.TARGET} 142.endif 143 144.if !defined(NOPROFILE) 145${LIB1POBJS}: libgcc1.c 146 ${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 147 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 148 @mv ${.TARGET}.tmp ${.TARGET} 149 150${LIB2POBJS}: libgcc2.c 151 ${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.c} 152 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 153 @mv ${.TARGET}.tmp ${.TARGET} 154 155${NEW1POBJS}: new1.cc 156 ${XCXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 157 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 158 @mv ${.TARGET}.tmp ${.TARGET} 159 160${NEW2POBJS}: new2.cc 161 ${CXX} -c -p ${CXXFLAGS} -DL${.PREFIX} -o ${.TARGET} ${.ALLSRC:M*.cc} 162 @${LD} -o ${.TARGET}.tmp -X -r ${.TARGET} 163 @mv ${.TARGET}.tmp ${.TARGET} 164.endif 165 166.include <bsd.lib.mk> 167