Home | History | Annotate | Line # | Download | only in libgcc
Makefile.inc revision 1.21
      1  1.21      matt #	$NetBSD: Makefile.inc,v 1.21 2013/08/22 00:16:54 matt Exp $
      2   1.1       mrg 
      3   1.1       mrg .if ${MKGCC} != "no"
      4  1.21      matt LIBGCC_MACHINE_ARCH?=${MACHINE_ARCH:S/earmv5/earm/}
      5  1.19      matt .if exists(${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}.mk)
      6  1.19      matt .include "${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}.mk"
      7   1.1       mrg .endif
      8   1.1       mrg .endif
      9   1.1       mrg 
     10   1.1       mrg UNSUPPORTED_COMPILER.clang=	# defined
     11   1.1       mrg 
     12   1.2       mrg DIST=		${NETBSDSRCDIR}/external/gpl3/gcc/dist
     13   1.1       mrg GNUHOSTDIST=	${DIST}
     14  1.19      matt GCCARCH=	${NETBSDSRCDIR}/external/gpl3/gcc/usr.bin/gcc/arch/${LIBGCC_MACHINE_ARCH}
     15  1.19      matt GCCARCHLIBGCC=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libgcc/arch/${LIBGCC_MACHINE_ARCH}
     16  1.19      matt GCCARCHXX=	${NETBSDSRCDIR}/external/gpl3/gcc/lib/libstdc++-v3/arch/${LIBGCC_MACHINE_ARCH}
     17   1.1       mrg 
     18   1.1       mrg GCPPFLAGS=	${G_LIBGCC2_CFLAGS} ${G_USE_COLLECT2} ${G_INCLUDES}
     19   1.1       mrg CPPFLAGS+=	-I${.CURDIR} -I${GCCARCHLIBGCC}
     20   1.1       mrg CPPFLAGS+=	-I${GCCARCH} ${GCPPFLAGS:M-D*} ${GCPPFLAGS:M-I*:N-I.*}
     21  1.12       mrg CPPFLAGS+=	${GCPPFLAGS:M-m*} ${GCPPFLAGS:M-f*}
     22   1.3       mrg CPPFLAGS+=	${G_EXTRA_HEADERS:M/*:H:u:S/^/-I/g}
     23   1.1       mrg CPPFLAGS+=	-I${DIST} -I${DIST}/gcc/cp -I${DIST}/gcc/config -I${GCCARCHXX} -I.
     24   1.1       mrg 
     25  1.19      matt .if ${LIBGCC_MACHINE_ARCH} == "powerpc" || \
     26  1.19      matt     ${LIBGCC_MACHINE_ARCH} == "sh3el" || \
     27  1.19      matt     ${LIBGCC_MACHINE_ARCH} == "sh3eb" || \
     28  1.19      matt     ${LIBGCC_MACHINE_ARCH} == "m68000"
     29   1.1       mrg _TRADITIONAL_CPP=
     30   1.1       mrg COMPILE.S=	${CC} ${AFLAGS} ${CPPFLAGS} -c
     31   1.1       mrg .endif
     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.21      matt .if ${LIBGCC_MACHINE_ARCH} != "coldfire" && empty(LIBGCC_MACHINE_ARCH:Mearm*)
     49  1.21      matt 
     50  1.21      matt LIB2FUNCS_ALL+= \
     51  1.21      matt 	_muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3
     52  1.21      matt 
     53  1.21      matt .endif
     54  1.21      matt 
     55  1.21      matt .if ${LIBGCC_MACHINE_ARCH} != "coldfire" && empty(LIBGCC_MACHINE_ARCH:Mearm*)
     56  1.20      matt 
     57   1.5       mrg # non swfloat versions
     58   1.5       mrg .for _p in _fix _fixuns
     59   1.7       mrg . for _m in sf df xf tf
     60   1.7       mrg LIB2FUNCS_ALL+=	${_p}${_m}di
     61   1.5       mrg . endfor
     62   1.5       mrg .endfor
     63   1.7       mrg 
     64   1.5       mrg .for _p in _float _floatun
     65   1.7       mrg . for _m in sf df xf tf
     66   1.7       mrg LIB2FUNCS_ALL+=	${_p}di${_m}
     67   1.5       mrg . endfor
     68   1.5       mrg .endfor
     69   1.1       mrg 
     70   1.5       mrg .for _m in sf df xf
     71   1.7       mrg LIB2FUNCS_ALL+=	_fixuns${_m}si
     72   1.5       mrg .endfor
     73  1.20      matt .endif
     74   1.1       mrg 
     75   1.1       mrg LIB2FUNCS_SHORT:=${LIB2FUNCS_ALL}
     76   1.1       mrg LIB2_DIVMOD_FUNCS:=${G_LIB2_DIVMOD_FUNCS}
     77   1.1       mrg .for f in ${G_LIB1ASMFUNCS}; do
     78   1.1       mrg LIB2FUNCS_SHORT:=${LIB2FUNCS_SHORT:N${f}}
     79   1.1       mrg LIB2_DIVMOD_FUNCS:=${LIB2_DIVMOD_FUNCS:N${f}}
     80   1.1       mrg .endfor
     81   1.1       mrg 
     82   1.1       mrg LIB2FUNCS=	${LIB2FUNCS_SHORT:=.c}
     83   1.1       mrg LIB2FUNCS_ST=	${G_LIB2FUNCS_ST:=.c}
     84   1.1       mrg LIB2DIVMOD=	${LIB2_DIVMOD_FUNCS:=.c}
     85   1.1       mrg LIB2_EH=	${G_LIB2ADDEH:M*.c:T}
     86  1.14      matt LIB2_EHASM=	${G_LIB2ADDEH:M*.S:T}
     87   1.1       mrg .if !empty(G_LIB1ASMFUNCS)
     88   1.1       mrg LIB1ASMFUNCS=	${G_LIB1ASMFUNCS:=.S}
     89   1.1       mrg .endif
     90   1.1       mrg 
     91  1.19      matt DPSRCS+=	${.CURDIR}/../arch/${LIBGCC_MACHINE_ARCH}.mk
     92   1.1       mrg CLEANFILES+=	${LIB2FUNCS} ${LIB2FUNCS_ST} ${LIB2DIVMOD} cs-tconfig.h
     93   1.1       mrg .if !empty(G_LIB1ASMFUNCS)
     94   1.1       mrg CLEANFILES+=	${LIB1ASMFUNCS}
     95   1.1       mrg .endif
     96   1.1       mrg 
     97   1.6       mrg .for file in ${G_LIB2ADD:M${GNUHOSTDIST}*:N*.c}
     98   1.1       mrg BUILDSYMLINKS+=	${file} ${file:T:S/.asm$/.S/}
     99   1.1       mrg .endfor
    100   1.1       mrg 
    101   1.1       mrg # XXX
    102  1.19      matt .if (${LIBGCC_MACHINE_ARCH} == "m68000" || ${LIBGCC_MACHINE_ARCH} == "m68k")
    103   1.1       mrg CPICFLAGS:=
    104   1.1       mrg BUILDSYMLINKS+=	${DIST}/gcc/config/m68k/fpgnulib.c fpgnulib.c
    105   1.1       mrg BUILDSYMLINKS+=	${DIST}/gcc/config/m68k/fpgnulib.c xfgnulib.c
    106   1.1       mrg CPPFLAGS.xfgnulib.c+=-DEXTFLOAT=1
    107   1.1       mrg .endif
    108   1.1       mrg 
    109  1.19      matt .if ${LIBGCC_MACHINE_ARCH} == "powerpc64"
    110   1.1       mrg COPTS+=	-mlong-double-128
    111   1.1       mrg .endif
    112   1.1       mrg 
    113   1.1       mrg ${LIB2FUNCS} ${LIB2FUNCS_ST}: ${.CURDIR}/Makefile
    114   1.1       mrg 	${_MKTARGET_CREATE}
    115   1.1       mrg 	printf '#define L${.PREFIX}\n#include <libgcc2.c>\n' >${.TARGET}
    116   1.1       mrg 
    117   1.1       mrg ${LIB2DIVMOD}: ${.CURDIR}/Makefile
    118   1.1       mrg 	${_MKTARGET_CREATE}
    119   1.1       mrg 	printf '#define L${.PREFIX}\n#include <libgcc2.c>\n' >${.TARGET}
    120   1.1       mrg 
    121   1.1       mrg .if !empty(G_LIB1ASMFUNCS)
    122   1.1       mrg ${LIB1ASMFUNCS}: ${.CURDIR}/Makefile
    123   1.1       mrg 	${_MKTARGET_CREATE}
    124   1.1       mrg 	printf '#define L${.PREFIX}\n#include <${G_LIB1ASMSRC}>\n' >${.TARGET}
    125   1.1       mrg .endif
    126   1.1       mrg 
    127   1.1       mrg ${LIB2_EH:.c=.o}:
    128   1.1       mrg 	${_MKTARGET_COMPILE}
    129   1.1       mrg 	${COMPILE.c} -fexceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    130   1.1       mrg 
    131   1.1       mrg ${LIB2_EH:.c=.pico}:
    132   1.1       mrg 	${_MKTARGET_COMPILE}
    133   1.1       mrg 	${COMPILE.c} ${CPICFLAGS} -fexceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    134   1.1       mrg 
    135   1.1       mrg ${G_LIB2_DIVMOD_FUNCS:=.o}:
    136   1.1       mrg 	${_MKTARGET_COMPILE}
    137   1.1       mrg 	${COMPILE.c} -fexceptions -fnon-call-exceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    138   1.1       mrg 
    139   1.1       mrg ${G_LIB2_DIVMOD_FUNCS:=.pico}:
    140   1.1       mrg 	${_MKTARGET_COMPILE}
    141   1.1       mrg 	${COMPILE.c} ${CPICFLAGS} -fexceptions -fnon-call-exceptions ${COPTS.${.IMPSRC:T}} -o ${.TARGET} ${.IMPSRC}
    142   1.1       mrg 
    143   1.1       mrg dp-bit.c: ${.CURDIR}/Makefile
    144   1.1       mrg 	${_MKTARGET_CREATE}
    145   1.1       mrg 	printf '#define FLOAT\n#include <fp-bit.c>\n' >${.TARGET}
    146   1.1       mrg 
    147   1.1       mrg #
    148   1.1       mrg # Common rules.
    149   1.1       mrg #
    150   1.1       mrg 
    151   1.1       mrg .PATH: ${DIST}/gcc ${DIST}/gcc/cp ${DIST}/gcc/cp/inc ${DIST}/gcc/config \
    152  1.17     skrll 	${G_LIB2ADD:H:O:u} ${G_LIB2ADDEH:H:O:u}
    153   1.1       mrg 
    154   1.4       mrg .include "../Makefile.tconfigh"
    155   1.1       mrg DPSRCS+=	tconfig.h
    156   1.1       mrg 
    157  1.16  christos .if ${MKGCC} != "no" && defined(G_UNWIND_H) && !empty(G_UNWIND_H)
    158   1.9       mrg # XXX figure out why Makefile.hacks doesn't work
    159   1.1       mrg BUILDSYMLINKS+=	${G_UNWIND_H} unwind.h
    160   1.1       mrg DPSRCS+=	unwind.h
    161  1.15   msaitoh .endif
    162   1.1       mrg 
    163   1.9       mrg # these aren't necessary but are #include'd
    164   1.9       mrg FAKEHEADERS=options.h insn-flags.h insn-constants.h sysroot-suffix.h
    165   1.9       mrg ${FAKEHEADERS}:
    166   1.9       mrg 	${_MKTARGET_CREATE}
    167   1.9       mrg 	touch ${.TARGET}
    168   1.9       mrg DPSRCS+=	${FAKEHEADERS}
    169   1.9       mrg CLEANFILES+=	${FAKEHEADERS}
    170   1.9       mrg 
    171   1.9       mrg # XXX arm hack
    172  1.21      matt .if !empty(LIBGCC_MACHINE_ARCH:M*arm*)
    173   1.9       mrg ${SRCS}: insn-modes.h
    174   1.9       mrg # XXX XXX
    175   1.9       mrg ${__DPSRCS.d}: insn-modes.h
    176   1.9       mrg insn-modes.h:
    177   1.9       mrg 	${_MKTARGET_CREATE}
    178   1.9       mrg 	echo "enum machine_mode { X };" > ${.TARGET}
    179   1.9       mrg DPSRCS+=	insn-modes.h
    180   1.9       mrg CLEANFILES+=	insn-modes.h
    181   1.9       mrg .endif
    182   1.7       mrg 
    183   1.9       mrg # XXX
    184  1.19      matt .if defined(HAVE_GCC) && ${HAVE_GCC} == 45 && ${LIBGCC_MACHINE_ARCH} == "m68k"
    185   1.9       mrg COPTS._fixunsxfdi.c+=	-O0
    186   1.9       mrg .endif
    187