ca8a2ad002f9e866918522cc53961356dd344c47
[dragonfly.git] / gnu / lib / gcc41 / libgcc / Makefile
1 # $DragonFly: src/gnu/lib/gcc41/libgcc/Makefile,v 1.1 2006/09/27 12:10:33 corecode Exp $
2
3 .include "../Makefile.inc"
4 .include "${STOPDIR}/cc_tools/Makefile.tools"
5
6 CFLAGS+=        -I.
7 CFLAGS+=        -fexceptions
8 CFLAGS+=        -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_GTHR_DEFAULT
9 CFLAGS+=        -DIN_GCC
10
11 LIB=            gcc
12
13 # used by shared libs
14 INSTALL_PIC_ARCHIVE=    yes
15
16 FUNCS=  _eprintf __gcc_bcmp \
17         _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 \
18         _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi \
19         _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi \
20         _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf _clear_cache \
21         _enable_execute_stack _trampoline __main _absvsi2 _absvdi2 _addvsi3 \
22         _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors \
23         _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2 _popcount_tab \
24         _popcountsi2 _popcountdi2 _paritysi2 _paritydi2 _powisf2 _powidf2 \
25         _powixf2 _powitf2 _mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 \
26         _divxc3 _divtc3
27
28 SRCS+=          ${FUNCS:S/$/.c/g}
29 CLEANFILES+=    ${FUNCS:S/$/.c/g}
30
31 SRCS+=  unwind-dw2.c unwind-dw2-fde.c unwind-sjlj.c
32 SRCS+=  gthr-gnat.c unwind-c.c
33
34 SRCS+=  insn-flags.h insn-constants.h unwind.h
35
36 unwind.h: unwind-generic.h
37         cp ${.ALLSRC} ${.TARGET}
38
39 CLEANFILES+=    unwind.h
40
41 .for F in ${FUNCS}
42 ${F}.c:
43         echo '#define L${.TARGET:T:R}' > ${.TARGET}
44         echo '#include "libgcc2.c"' >> ${.TARGET}
45 .endfor
46
47 .for F in _divdi3.c _moddi3.c _udivdi3.c _umoddi3.c _udiv_w_sdiv.c _udivmoddi4.c
48 ${F:R:S/$/.o/}: ${F}
49         ${CC} ${CFLAGS} -fnon-call-exceptions -c ${.IMPSRC}
50 .endfor
51
52 depend: cc_prep cc_tools
53 .ORDER: cc_prep cc_tools ${SRCS}
54
55 # This is kinda messy, but it's easier then rearranging the top level
56 # build.  gcc-4.1's libgcc generates source files which depend on generated
57 # header files, which means we have to generate our tools set before
58 # we can build libgcc.  The toolset is normally built afterwards.
59 #
60 # XXX for the world stage we could theoretically use the cc_tools generated
61 # in the btools stage, but it's easier to regenerate them.
62 #
63 cc_prep: .PHONY
64         cd ${STOPDIR}/cc_prep; ${MAKE} depend
65
66 cc_tools: .PHONY
67         cd ${STOPDIR}/cc_tools; ${MAKE} depend
68
69 .if ${GCC_CPU} == "i386"
70 .PATH: ${GCCDIR}/gcc/config/i386
71
72 SRCS+=  mm_malloc.h
73
74 mm_malloc.h: pmm_malloc.h
75         cp ${.ALLSRC} ${.TARGET}
76
77 CLEANFILES+=    mm_malloc.h
78
79 INCS=   emmintrin.h mmintrin.h pmmintrin.h xmmintrin.h mm_malloc.h
80 INCSDIR=        /usr/libdata/gcc41
81 .endif
82
83 .include <bsd.lib.mk>