Home | History | Annotate | Line # | Download | only in libgcc
Makefile.inc revision 1.5
      1  1.5  mrg #	$NetBSD: Makefile.inc,v 1.5 2011/06/29 08:05:52 mrg Exp $
      2  1.1  mrg 
      3  1.1  mrg .if ${MKGCC} != "no"
      4  1.1  mrg .if exists(${.CURDIR}/../arch/${MACHINE_ARCH}.mk)
      5  1.1  mrg .include "${.CURDIR}/../arch/${MACHINE_ARCH}.mk"
      6  1.1  mrg .endif
      7  1.1  mrg .endif
      8  1.1  mrg 
      9  1.1  mrg UNSUPPORTED_COMPILER.clang=	# defined
     10  1.1  mrg 
     11  1.2  mrg DIST=		${NETBSDSRCDIR}/external/gpl3/gcc/dist
     12  1.1  mrg GNUHOSTDIST=	${DIST}
     13  1.2  mrg GCCARCH=	${NETBSDSRCDIR}/external/gpl3/gcc/usr.bin/gcc/arch/${MACHINE_ARCH}
     14  1.2  mrg GCCARCHLIBGCC=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libgcc/arch/${MACHINE_ARCH}
     15  1.2  mrg GCCARCHXX=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libstdc++-v3/arch/${MACHINE_ARCH}
     16  1.1  mrg 
     17  1.1  mrg GCPPFLAGS=	${G_LIBGCC2_CFLAGS} ${G_USE_COLLECT2} ${G_INCLUDES}
     18  1.1  mrg CPPFLAGS+=	-I${.CURDIR} -I${GCCARCHLIBGCC}
     19  1.1  mrg CPPFLAGS+=	-I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*}
     20  1.3  mrg CPPFLAGS+=	${G_EXTRA_HEADERS:M/*:H:u:S/^/-I/g}
     21  1.1  mrg CPPFLAGS+=	-I${DIST} -I${DIST}/gcc/cp -I${DIST}/gcc/config -I${GCCARCHXX} -I.
     22  1.1  mrg 
     23  1.1  mrg .if ${MACHINE_ARCH} == "powerpc" || \
     24  1.1  mrg     ${MACHINE_ARCH} == "sh3el" || \
     25  1.1  mrg     ${MACHINE_ARCH} == "sh3eb" || \
     26  1.1  mrg     ${MACHINE_ARCH} == "m68000"
     27  1.1  mrg _TRADITIONAL_CPP=
     28  1.1  mrg COMPILE.S=	${CC} ${AFLAGS} ${CPPFLAGS} -c
     29  1.1  mrg .endif
     30  1.1  mrg 
     31  1.1  mrg .if !defined(MKNATIVE_LIBGCC_NEW)
     32  1.1  mrg 
     33  1.1  mrg #
     34  1.1  mrg # Old style libgcc build procedure.
     35  1.1  mrg #
     36  1.1  mrg 
     37  1.1  mrg # This is copied from gcc/mklibgcc.in:$lib2funcs
     38  1.5  mrg LIB2FUNCS_ALL= \
     39  1.5  mrg 	_muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2    \
     40  1.5  mrg 	_clear_cache _enable_execute_stack _trampoline __main _absvsi2 \
     41  1.5  mrg 	_absvdi2 _addvsi3 _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 \
     42  1.5  mrg 	_negvsi2 _negvdi2 _ctors _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2  \
     43  1.5  mrg 	_ctzsi2 _ctzdi2 _popcount_tab _popcountsi2 _popcountdi2        \
     44  1.5  mrg 	_paritysi2 _paritydi2 _powisf2 _powidf2 _powixf2 _powitf2      \
     45  1.5  mrg 	_mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 _divxc3        \
     46  1.5  mrg 	_divtc3 _bswapsi2 _bswapdi2
     47  1.5  mrg 
     48  1.5  mrg # non swfloat versions
     49  1.5  mrg .for _p in _fix _fixuns
     50  1.5  mrg . for _s in sf df xf tf
     51  1.5  mrg LIB2FUNCS_ALL+=	${_p}${_s}di
     52  1.5  mrg . endfor
     53  1.5  mrg .endfor
     54  1.5  mrg .for _p in _float _floatun
     55  1.5  mrg . for _s in sf df xf tf
     56  1.5  mrg LIB2FUNCS_ALL+=	${_p}di${_s}
     57  1.5  mrg . endfor
     58  1.5  mrg .endfor
     59  1.1  mrg 
     60  1.5  mrg .for _m in sf df xf
     61  1.5  mrg LIB2FUNCS_ALL+=	fixuns${_p}si
     62  1.5  mrg .endfor
     63  1.1  mrg 
     64  1.1  mrg LIB2FUNCS_SHORT:=${LIB2FUNCS_ALL}
     65  1.1  mrg LIB2_DIVMOD_FUNCS:=${G_LIB2_DIVMOD_FUNCS}
     66  1.1  mrg .for f in ${G_LIB1ASMFUNCS}; do
     67  1.1  mrg LIB2FUNCS_SHORT:=${LIB2FUNCS_SHORT:N${f}}
     68  1.1  mrg LIB2_DIVMOD_FUNCS:=${LIB2_DIVMOD_FUNCS:N${f}}
     69  1.1  mrg .endfor
     70  1.1  mrg 
     71  1.1  mrg LIB2FUNCS=	${LIB2FUNCS_SHORT:=.c}
     72  1.1  mrg LIB2FUNCS_ST=	${G_LIB2FUNCS_ST:=.c}
     73  1.1  mrg LIB2DIVMOD=	${LIB2_DIVMOD_FUNCS:=.c}
     74  1.1  mrg LIB2_EH=	${G_LIB2ADDEH:M*.c:T}
     75  1.1  mrg .if !empty(G_LIB1ASMFUNCS)
     76  1.1  mrg LIB1ASMFUNCS=	${G_LIB1ASMFUNCS:=.S}
     77  1.1  mrg .endif
     78  1.1  mrg 
     79  1.1  mrg DPSRCS+=	${.CURDIR}/../arch/${MACHINE_ARCH}.mk
     80  1.1  mrg CLEANFILES+=	${LIB2FUNCS} ${LIB2FUNCS_ST} ${LIB2DIVMOD} cs-tconfig.h
     81  1.1  mrg .if !empty(G_LIB1ASMFUNCS)
     82  1.1  mrg CLEANFILES+=	${LIB1ASMFUNCS}
     83  1.1  mrg .endif
     84  1.1  mrg 
     85  1.1  mrg .for file in ${G_LIB2ADD:M${GNUHOSTDIST}*}
     86  1.1  mrg BUILDSYMLINKS+=	${file} ${file:T:S/.asm$/.S/}
     87  1.1  mrg .endfor
     88  1.1  mrg 
     89  1.1  mrg # XXX
     90  1.1  mrg .if ${MACHINE_ARCH} == "m68000"
     91  1.1  mrg CPICFLAGS:=
     92  1.1  mrg BUILDSYMLINKS+=	${DIST}/gcc/config/m68k/fpgnulib.c fpgnulib.c
     93  1.1  mrg BUILDSYMLINKS+=	${DIST}/gcc/config/m68k/fpgnulib.c xfgnulib.c
     94  1.1  mrg CPPFLAGS.xfgnulib.c+=-DEXTFLOAT=1
     95  1.1  mrg .endif
     96  1.1  mrg 
     97  1.1  mrg .if ${MACHINE_ARCH} == "powerpc64"
     98  1.1  mrg COPTS+=	-mlong-double-128
     99  1.1  mrg .endif
    100  1.1  mrg 
    101  1.1  mrg ${LIB2FUNCS} ${LIB2FUNCS_ST}: ${.CURDIR}/Makefile
    102  1.1  mrg 	${_MKTARGET_CREATE}
    103  1.1  mrg 	printf '#define L${.PREFIX}\n#include <libgcc2.c>\n' >${.TARGET}
    104  1.1  mrg 
    105  1.1  mrg ${LIB2DIVMOD}: ${.CURDIR}/Makefile
    106  1.1  mrg 	${_MKTARGET_CREATE}
    107  1.1  mrg 	printf '#define L${.PREFIX}\n#include <libgcc2.c>\n' >${.TARGET}
    108  1.1  mrg 
    109  1.1  mrg .if !empty(G_LIB1ASMFUNCS)
    110  1.1  mrg ${LIB1ASMFUNCS}: ${.CURDIR}/Makefile
    111  1.1  mrg 	${_MKTARGET_CREATE}
    112  1.1  mrg 	printf '#define L${.PREFIX}\n#include <${G_LIB1ASMSRC}>\n' >${.TARGET}
    113  1.1  mrg .endif
    114  1.1  mrg 
    115  1.1  mrg ${LIB2_EH:.c=.o}:
    116  1.1  mrg 	${_MKTARGET_COMPILE}
    117  1.1  mrg 	${COMPILE.c} -fexceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    118  1.1  mrg 
    119  1.1  mrg ${LIB2_EH:.c=.pico}:
    120  1.1  mrg 	${_MKTARGET_COMPILE}
    121  1.1  mrg 	${COMPILE.c} ${CPICFLAGS} -fexceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    122  1.1  mrg 
    123  1.1  mrg ${G_LIB2_DIVMOD_FUNCS:=.o}:
    124  1.1  mrg 	${_MKTARGET_COMPILE}
    125  1.1  mrg 	${COMPILE.c} -fexceptions -fnon-call-exceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    126  1.1  mrg 
    127  1.1  mrg ${G_LIB2_DIVMOD_FUNCS:=.pico}:
    128  1.1  mrg 	${_MKTARGET_COMPILE}
    129  1.1  mrg 	${COMPILE.c} ${CPICFLAGS} -fexceptions -fnon-call-exceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    130  1.1  mrg 
    131  1.1  mrg dp-bit.c: ${.CURDIR}/Makefile
    132  1.1  mrg 	${_MKTARGET_CREATE}
    133  1.1  mrg 	printf '#define FLOAT\n#include <fp-bit.c>\n' >${.TARGET}
    134  1.1  mrg 
    135  1.1  mrg .else	# defined(MKNATIVE_LIBGCC_NEW)
    136  1.1  mrg 
    137  1.1  mrg #
    138  1.1  mrg # New style libgcc build procedure.
    139  1.1  mrg #
    140  1.1  mrg 
    141  1.1  mrg .endif	# defined(MKNATIVE_LIBGCC_NEW)
    142  1.1  mrg 
    143  1.1  mrg #
    144  1.1  mrg # Common rules.
    145  1.1  mrg #
    146  1.1  mrg 
    147  1.1  mrg .PATH: ${DIST}/gcc ${DIST}/gcc/cp ${DIST}/gcc/cp/inc ${DIST}/gcc/config \
    148  1.1  mrg 	${G_CONFIGDIR}
    149  1.1  mrg 
    150  1.4  mrg .include "../Makefile.tconfigh"
    151  1.1  mrg DPSRCS+=	tconfig.h
    152  1.1  mrg 
    153  1.1  mrg BUILDSYMLINKS+=	${G_UNWIND_H} unwind.h
    154  1.1  mrg DPSRCS+=	unwind.h
    155  1.1  mrg 
    156  1.1  mrg # these aren't necessary but are #include'd
    157  1.1  mrg FAKEHEADERS=options.h insn-flags.h insn-constants.h
    158  1.1  mrg ${FAKEHEADERS}:
    159  1.1  mrg 	${_MKTARGET_CREATE}
    160  1.1  mrg 	touch ${.TARGET}
    161  1.1  mrg DPSRCS+=	${FAKEHEADERS}
    162  1.1  mrg CLEANFILES+=	${FAKEHEADERS}
    163