diff options
Diffstat (limited to 'libgcc/Makefile')
-rw-r--r-- | libgcc/Makefile | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/libgcc/Makefile b/libgcc/Makefile new file mode 100644 index 0000000..ee9757f --- /dev/null +++ b/libgcc/Makefile @@ -0,0 +1,79 @@ +CC1 = ../gcc/agbcc +CPP = cpp +AS = $(DEVKITARM)/bin/arm-none-eabi-as +AR = ar + +libgcc.a: libgcc1.a libgcc2.a fp-bit.o dp-bit.o + $(AR) -x libgcc1.a + $(AR) -x libgcc2.a + $(AR) -rc libgcc.a *.o + +LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX + +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 + +libgcc1.a: lib1thumb.asm + -rm -f tmplibgcc1.a +# Actually build it in tmplibgcc1.a, then rename at end, +# so that libgcc1.a itself remains nonexistent if compilation is aborted. + set -e + for name in $(LIB1ASMFUNCS); \ + do \ + echo $${name}; \ + $(CPP) -DL$${name} -x assembler-with-cpp -o $${name}.s lib1thumb.asm; \ + $(AS) -mcpu=arm7tdmi -o $${name}.o $${name}.s; \ + rm -f $${name}.s; \ + $(AR) -rc tmplibgcc1.a $${name}.o; \ + rm -f $${name}.o; \ + done + mv tmplibgcc1.a libgcc1.a + +libgcc2.a: libgcc2.c longlong.h + -rm -f tmplibgcc2.a +# Actually build it in tmplibgcc2.a, then rename at end, +# so that libgcc2.a itself remains nonexistent if compilation is aborted. + set -e + for name in $(LIB2FUNCS); \ + do \ + echo $${name}; \ + $(CPP) -I ../ginclude -nostdinc -DL$${name} -o $${name}.i libgcc2.c; \ + $(CC1) -O2 $${name}.i; \ + rm -f $${name}.i; \ + $(AS) -mcpu=arm7tdmi -o $${name}.o $${name}.s; \ + rm -f $${name}.s; \ + $(AR) -rc tmplibgcc2.a $${name}.o; \ + rm -f $${name}.o; \ + done + mv tmplibgcc2.a libgcc2.a + +fp-bit.o: fp-bit.c + $(CPP) -I ../ginclude -nostdinc -o fp-bit.i fp-bit.c + $(CC1) -O2 fp-bit.i + rm -f fp-bit.i + $(AS) -mcpu=arm7tdmi -o fp-bit.o fp-bit.s + rm -f fp-bit.s + +dp-bit.o: dp-bit.c + $(CPP) -I ../ginclude -nostdinc -o dp-bit.i dp-bit.c + $(CC1) -O2 dp-bit.i + rm -f dp-bit.i + $(AS) -mcpu=arm7tdmi -o dp-bit.o dp-bit.s + rm -f dp-bit.s + +fp-bit.c: fp-bit-base.c + echo '#define FLOAT' > fp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c + cat fp-bit-base.c >> fp-bit.c + +dp-bit.c: fp-bit-base.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c + echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c + cat fp-bit-base.c >> dp-bit.c + +.PHONY: clean + +clean: + rm -f *.o *.a *.s *.i |