96 lines
2.7 KiB
Makefile
96 lines
2.7 KiB
Makefile
#
|
|
# $Id$
|
|
#
|
|
|
|
LIB= gcc
|
|
|
|
# Install libgcc_pic.a, since ld.so uses it.
|
|
INSTALL_PIC_ARCHIVE= yes
|
|
|
|
#
|
|
# XXX This is a hack, but it seems to work. libgcc1.a is supposed to be
|
|
# compiled by the native compiler, and libgcc2.a is meant to be compiled
|
|
# by *this* version of gcc.
|
|
#
|
|
# Normally, this does not make any difference, since we only have gcc, but
|
|
# when bootstrapping from gcc-2.6.3, we have to use the freshly built 2.7.2
|
|
# compiler for some of the libgcc2.c __attribute__ stuff.
|
|
#
|
|
.if exists(${.OBJDIR}/../cc)
|
|
XCC= ${.OBJDIR}/../cc/cc
|
|
.else
|
|
XCC= ${.CURDIR}/../cc/cc
|
|
.endif
|
|
|
|
.if exists(${.OBJDIR}/../cc1)
|
|
XCC+= -B${.OBJDIR}/../cc1/
|
|
.else
|
|
XCC+= -B${.CURDIR}/../cc1/
|
|
.endif
|
|
|
|
.if exists(${.OBJDIR}/../cpp)
|
|
XCC+= -B${.OBJDIR}/../cpp/
|
|
.else
|
|
XCC+= -B${.CURDIR}/../cpp/
|
|
.endif
|
|
|
|
# Members of libgcc1.a.
|
|
LIB1FUNCS= _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 \
|
|
_lshrsi3 _ashrsi3 _ashlsi3 \
|
|
_divdf3 _muldf3 _negdf2 _adddf3 _subdf3 \
|
|
_fixdfsi _fixsfsi _floatsidf _floatsisf _truncdfsf2 _extendsfdf2 \
|
|
_addsf3 _negsf2 _subsf3 _mulsf3 _divsf3 \
|
|
_eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \
|
|
_eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2
|
|
|
|
# Library members defined in libgcc2.c.
|
|
LIB2FUNCS= _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \
|
|
_lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 \
|
|
_udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf \
|
|
_fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi \
|
|
_fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi \
|
|
_fixtfdi _fixunstfdi _floatditf \
|
|
__gcc_bcmp _varargs _eprintf _op_new _op_vnew _new_handler \
|
|
_op_delete \
|
|
_op_vdel _bb _shtab _clear_cache _trampoline __main _exit _ctors \
|
|
_eh _pure
|
|
|
|
LIB1OBJS=${LIB1FUNCS:T:S@$@.o@}
|
|
LIB2OBJS=${LIB2FUNCS:T:S@$@.o@}
|
|
LIB1SOBJS=${LIB1FUNCS:T:S@$@.so@}
|
|
LIB2SOBJS=${LIB2FUNCS:T:S@$@.so@}
|
|
P1OBJS=${LIB1FUNCS:T:S@$@.po@}
|
|
P2OBJS=${LIB2FUNCS:T:S@$@.po@}
|
|
|
|
OBJS= ${LIB1OBJS} ${LIB2OBJS}
|
|
|
|
${LIB1OBJS}: libgcc1.c
|
|
${CC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
|
|
${LIB2OBJS}: libgcc2.c
|
|
${XCC} -c ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
|
|
.if !defined(NOPIC)
|
|
${LIB1SOBJS}: libgcc1.c
|
|
${CC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
|
|
${LIB2SOBJS}: libgcc2.c
|
|
${XCC} -c -fpic ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
|
|
@${LD} -O ${.TARGET} -x -r ${.TARGET}
|
|
.endif
|
|
|
|
.if !defined(NOPROFILE)
|
|
${P1OBJS}: libgcc1.c
|
|
${CC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc1.c
|
|
@${LD} -O ${.TARGET} -X -r ${.TARGET}
|
|
|
|
${P2OBJS}: libgcc2.c
|
|
${XCC} -c -p ${CFLAGS} -DL${.PREFIX} -o ${.TARGET} ${GCCDIR}/libgcc2.c
|
|
@${LD} -O ${.TARGET} -X -r ${.TARGET}
|
|
.endif
|
|
|
|
.include <bsd.lib.mk>
|