Home | History | Annotate | Line # | Download | only in libgcc
Makefile.inc revision 1.26
      1  1.26   martin #	$NetBSD: Makefile.inc,v 1.26 2014/05/03 16:43:10 martin Exp $
      2  1.23      mrg 
      3  1.23      mrg LIBGCC_MACHINE_ARCH?=${MACHINE_ARCH:S/earmv5/earm/}
      4   1.1      mrg 
      5   1.1      mrg .if ${MKGCC} != "no"
      6  1.23      mrg .if exists(${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}/defs.mk)
      7  1.23      mrg .include "${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}/defs.mk"
      8   1.1      mrg .endif
      9   1.1      mrg .endif
     10   1.1      mrg 
     11   1.1      mrg UNSUPPORTED_COMPILER.clang=	# defined
     12   1.1      mrg 
     13  1.23      mrg DIST=		${NETBSDSRCDIR}/external/gpl3/gcc/dist
     14   1.1      mrg GNUHOSTDIST=	${DIST}
     15  1.23      mrg GCCARCH=	${NETBSDSRCDIR}/external/gpl3/gcc/usr.bin/gcc/arch/${LIBGCC_MACHINE_ARCH}
     16  1.23      mrg GCCARCHLIBGCC=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libgcc/arch/${LIBGCC_MACHINE_ARCH}
     17  1.23      mrg GCCARCHXX=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libstdc++-v3/arch/${LIBGCC_MACHINE_ARCH}
     18   1.1      mrg 
     19   1.1      mrg GCPPFLAGS=	${G_LIBGCC2_CFLAGS} ${G_USE_COLLECT2} ${G_INCLUDES}
     20   1.1      mrg CPPFLAGS+=	-I${.CURDIR} -I${GCCARCHLIBGCC}
     21   1.1      mrg CPPFLAGS+=	-I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*}
     22  1.12      mrg CPPFLAGS+=	${GCPPFLAGS:M-m*} ${GCPPFLAGS:M-f*}
     23   1.3      mrg CPPFLAGS+=	${G_EXTRA_HEADERS:M/*:H:u:S/^/-I/g}
     24  1.23      mrg CPPFLAGS+=	-I${DIST}/libgcc -I${DIST}/libgcc/config
     25  1.23      mrg CPPFLAGS+=	-I${DIST}/gcc -I${DIST}/include -I.
     26   1.1      mrg 
     27  1.19     matt .if ${LIBGCC_MACHINE_ARCH} == "powerpc" || \
     28  1.19     matt     ${LIBGCC_MACHINE_ARCH} == "sh3el" || \
     29  1.19     matt     ${LIBGCC_MACHINE_ARCH} == "sh3eb" || \
     30  1.19     matt     ${LIBGCC_MACHINE_ARCH} == "m68000"
     31   1.1      mrg _TRADITIONAL_CPP=
     32   1.1      mrg COMPILE.S=	${CC} ${AFLAGS} ${CPPFLAGS} -c
     33   1.1      mrg .endif
     34   1.1      mrg 
     35  1.23      mrg .if ${LIBGCC_MACHINE_ARCH} == "powerpc"
     36  1.23      mrg CPPFLAGS+=	-I${DIST}/gcc/config/rs6000
     37  1.23      mrg .endif
     38  1.23      mrg 
     39   1.1      mrg #
     40   1.1      mrg # Old style libgcc build procedure.
     41   1.1      mrg #
     42   1.1      mrg 
     43  1.26   martin # This is copied from dist/libgcc/Makefile.in:$lib2funcs
     44   1.5      mrg LIB2FUNCS_ALL= \
     45   1.5      mrg 	_muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2    \
     46  1.23      mrg 	_clear_cache _trampoline __main \
     47  1.23      mrg 	_absvsi2 _absvdi2 _addvsi3 _addvdi3 \
     48  1.23      mrg 	_subvsi3 _subvdi3 _mulvsi3 _mulvdi3 \
     49  1.23      mrg 	_negvsi2 _negvdi2 \
     50  1.23      mrg 	_ctors \
     51  1.23      mrg 	_ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2  _ctzsi2 _ctzdi2 \
     52  1.23      mrg 	_popcount_tab _popcountsi2 _popcountdi2 _paritysi2 _paritydi2 \
     53  1.23      mrg 	_powisf2 _powidf2 _powixf2 _powitf2 \
     54  1.23      mrg 	_mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3 _divxc3 _divtc3 \
     55  1.26   martin 	_bswapsi2 _bswapdi2 _clrsbsi2 _clrsbdi2
     56   1.5      mrg 
     57  1.21     matt .if ${LIBGCC_MACHINE_ARCH} != "coldfire" && empty(LIBGCC_MACHINE_ARCH:Mearm*)
     58  1.21     matt 
     59  1.21     matt LIB2FUNCS_ALL+= \
     60  1.21     matt 	_muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3
     61  1.21     matt 
     62  1.21     matt .endif
     63  1.21     matt 
     64  1.21     matt .if ${LIBGCC_MACHINE_ARCH} != "coldfire" && empty(LIBGCC_MACHINE_ARCH:Mearm*)
     65  1.20     matt 
     66   1.5      mrg # non swfloat versions
     67   1.5      mrg .for _p in _fix _fixuns
     68   1.7      mrg . for _m in sf df xf tf
     69   1.7      mrg LIB2FUNCS_ALL+=	${_p}${_m}di
     70   1.5      mrg . endfor
     71   1.5      mrg .endfor
     72   1.7      mrg 
     73   1.5      mrg .for _p in _float _floatun
     74   1.7      mrg . for _m in sf df xf tf
     75   1.7      mrg LIB2FUNCS_ALL+=	${_p}di${_m}
     76   1.5      mrg . endfor
     77   1.5      mrg .endfor
     78   1.1      mrg 
     79   1.5      mrg .for _m in sf df xf
     80   1.7      mrg LIB2FUNCS_ALL+=	_fixuns${_m}si
     81   1.5      mrg .endfor
     82  1.20     matt .endif
     83   1.1      mrg 
     84   1.1      mrg LIB2FUNCS_SHORT:=${LIB2FUNCS_ALL}
     85   1.1      mrg LIB2_DIVMOD_FUNCS:=${G_LIB2_DIVMOD_FUNCS}
     86   1.1      mrg .for f in ${G_LIB1ASMFUNCS}; do
     87   1.1      mrg LIB2FUNCS_SHORT:=${LIB2FUNCS_SHORT:N${f}}
     88   1.1      mrg LIB2_DIVMOD_FUNCS:=${LIB2_DIVMOD_FUNCS:N${f}}
     89   1.1      mrg .endfor
     90   1.1      mrg 
     91   1.1      mrg LIB2FUNCS=	${LIB2FUNCS_SHORT:=.c}
     92   1.1      mrg LIB2FUNCS_ST=	${G_LIB2FUNCS_ST:=.c}
     93   1.1      mrg LIB2DIVMOD=	${LIB2_DIVMOD_FUNCS:=.c}
     94  1.25    joerg .if ${HAVE_LIBGCC_EH} == "no"
     95  1.25    joerg LIB2_EH=	${G_LIB2ADDEH:M*.c:T:Nunwind-dw2.c:Nunwind-dw2-fde-dip.c:Nunwind-sjlj.c:Nunwind-c.c}
     96  1.25    joerg .else
     97   1.1      mrg LIB2_EH=	${G_LIB2ADDEH:M*.c:T}
     98  1.25    joerg .endif
     99  1.14     matt LIB2_EHASM=	${G_LIB2ADDEH:M*.S:T}
    100  1.24      mrg 
    101  1.24      mrg # We have to weed out any existing func.S file that may exist
    102  1.24      mrg # from the list of files we create.
    103   1.1      mrg .if !empty(G_LIB1ASMFUNCS)
    104  1.24      mrg . for f in ${G_LIB1ASMFUNCS:=.S}
    105  1.24      mrg .  if !exists(${DIST}/libgcc/config/${MACHINE_GNU_ARCH}/${f})
    106  1.24      mrg LIB1ASMFUNCS+=	${f}
    107  1.24      mrg .  endif
    108  1.24      mrg . endfor
    109   1.1      mrg .endif
    110   1.1      mrg 
    111  1.23      mrg .if exists(${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}/defs.mk)
    112  1.23      mrg DPSRCS+=	${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}/defs.mk
    113  1.23      mrg .endif
    114   1.1      mrg CLEANFILES+=	${LIB2FUNCS} ${LIB2FUNCS_ST} ${LIB2DIVMOD} cs-tconfig.h
    115   1.1      mrg .if !empty(G_LIB1ASMFUNCS)
    116   1.1      mrg CLEANFILES+=	${LIB1ASMFUNCS}
    117   1.1      mrg .endif
    118   1.1      mrg 
    119   1.6      mrg .for file in ${G_LIB2ADD:M${GNUHOSTDIST}*:N*.c}
    120   1.1      mrg BUILDSYMLINKS+=	${file} ${file:T:S/.asm$/.S/}
    121   1.1      mrg .endfor
    122   1.1      mrg 
    123   1.1      mrg # XXX
    124  1.23      mrg .if (${LIBGCC_MACHINE_ARCH} == "m68000" || ${LIBGCC_MACHINE_ARCH} == "m68k" || \
    125  1.23      mrg      ${LIBGCC_MACHINE_ARCH} == "coldfire")
    126   1.1      mrg CPICFLAGS:=
    127  1.23      mrg BUILDSYMLINKS+=	${DIST}/libgcc/config/m68k/fpgnulib.c fpgnulib.c
    128  1.23      mrg BUILDSYMLINKS+=	${DIST}/libgcc/config/m68k/fpgnulib.c xfgnulib.c
    129  1.23      mrg CPPFLAGS.xfgnulib.c+=	-DEXTFLOAT=1
    130   1.1      mrg .endif
    131   1.1      mrg 
    132  1.19     matt .if ${LIBGCC_MACHINE_ARCH} == "powerpc64"
    133   1.1      mrg COPTS+=	-mlong-double-128
    134   1.1      mrg .endif
    135   1.1      mrg 
    136   1.1      mrg ${LIB2FUNCS} ${LIB2FUNCS_ST}: ${.CURDIR}/Makefile
    137   1.1      mrg 	${_MKTARGET_CREATE}
    138   1.1      mrg 	printf '#define L${.PREFIX}\n#include <libgcc2.c>\n' >${.TARGET}
    139   1.1      mrg 
    140   1.1      mrg ${LIB2DIVMOD}: ${.CURDIR}/Makefile
    141   1.1      mrg 	${_MKTARGET_CREATE}
    142   1.1      mrg 	printf '#define L${.PREFIX}\n#include <libgcc2.c>\n' >${.TARGET}
    143   1.1      mrg 
    144   1.1      mrg .if !empty(G_LIB1ASMFUNCS)
    145   1.1      mrg ${LIB1ASMFUNCS}: ${.CURDIR}/Makefile
    146   1.1      mrg 	${_MKTARGET_CREATE}
    147   1.1      mrg 	printf '#define L${.PREFIX}\n#include <${G_LIB1ASMSRC}>\n' >${.TARGET}
    148   1.1      mrg .endif
    149   1.1      mrg 
    150   1.1      mrg ${LIB2_EH:.c=.o}:
    151   1.1      mrg 	${_MKTARGET_COMPILE}
    152   1.1      mrg 	${COMPILE.c} -fexceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    153   1.1      mrg 
    154   1.1      mrg ${LIB2_EH:.c=.pico}:
    155   1.1      mrg 	${_MKTARGET_COMPILE}
    156   1.1      mrg 	${COMPILE.c} ${CPICFLAGS} -fexceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    157   1.1      mrg 
    158   1.1      mrg ${G_LIB2_DIVMOD_FUNCS:=.o}:
    159   1.1      mrg 	${_MKTARGET_COMPILE}
    160   1.1      mrg 	${COMPILE.c} -fexceptions -fnon-call-exceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    161   1.1      mrg 
    162   1.1      mrg ${G_LIB2_DIVMOD_FUNCS:=.pico}:
    163   1.1      mrg 	${_MKTARGET_COMPILE}
    164   1.1      mrg 	${COMPILE.c} ${CPICFLAGS} -fexceptions -fnon-call-exceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    165   1.1      mrg 
    166   1.1      mrg dp-bit.c: ${.CURDIR}/Makefile
    167   1.1      mrg 	${_MKTARGET_CREATE}
    168   1.1      mrg 	printf '#define FLOAT\n#include <fp-bit.c>\n' >${.TARGET}
    169   1.1      mrg 
    170   1.1      mrg #
    171   1.1      mrg # Common rules.
    172   1.1      mrg #
    173   1.1      mrg 
    174   1.1      mrg .PATH: ${DIST}/gcc ${DIST}/gcc/cp ${DIST}/gcc/cp/inc ${DIST}/gcc/config \
    175  1.23      mrg 	${G_LIB2ADD:H:O:u} ${G_LIB2ADDEH:H:O:u} ${GCCARCHLIBGCC}
    176   1.1      mrg 
    177   1.4      mrg .include "../Makefile.tconfigh"
    178   1.1      mrg DPSRCS+=	tconfig.h
    179   1.1      mrg 
    180  1.23      mrg .if ${MKGCC} != "no"
    181  1.23      mrg .if defined(G_CONFIGLINKS) && !empty(G_CONFIGLINKS)
    182  1.23      mrg BUILDSYMLINKS+=	${G_CONFIGLINKS}
    183  1.23      mrg .for _src _dst in ${G_CONFIGLINKS}
    184  1.23      mrg DPSRCS+=	${_dst}
    185  1.23      mrg .endfor
    186  1.23      mrg .endif
    187  1.15  msaitoh .endif
    188   1.1      mrg 
    189  1.23      mrg EXTRA_FAKEHEADERS=	options.h libgcc_tm.h
    190  1.23      mrg .include "../../Makefile.hacks"
    191   1.7      mrg 
    192   1.9      mrg # XXX
    193  1.19     matt .if defined(HAVE_GCC) && ${HAVE_GCC} == 45 && ${LIBGCC_MACHINE_ARCH} == "m68k"
    194   1.9      mrg COPTS._fixunsxfdi.c+=	-O0
    195   1.9      mrg .endif
    196