tumbledemerald-legacy/agbcc/libgcc/Makefile
2022-05-19 17:14:13 +00:00

97 lines
2.7 KiB
Makefile

ifneq (,$(DEVKITARM))
ifneq (,$(wildcard $(DEVKITARM)/bin))
include $(DEVKITARM)/base_tools
DKA_EXISTS=1
else
DKA_EXISTS=0
endif
else
DKA_EXISTS=0
endif
ifneq ($(DKA_EXISTS),1)
PREFIX := arm-none-eabi-
export AR := $(PREFIX)ar
export AS := $(PREFIX)as
endif
CC1 = ../old_agbcc
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) -undef -nostdinc -DL$${name} -x assembler-with-cpp -o $${name}.s lib1thumb.asm; \
bash -c 'echo -e ".text\n\t.align\t2, 0\n"' >> $${name}.s ; \
$(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) -undef -I ../ginclude -nostdinc -DL$${name} -o $${name}.i libgcc2.c; \
$(CC1) -O2 $${name}.i; \
rm -f $${name}.i; \
bash -c 'echo -e ".text\n\t.align\t2, 0\n"' >> $${name}.s ; \
$(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) -undef -I ../ginclude -nostdinc -o fp-bit.i fp-bit.c;
$(CC1) -O2 fp-bit.i
rm -f fp-bit.i
bash -c 'echo -e ".text\n\t.align\t2, 0\n"' >> fp-bit.s
$(AS) -mcpu=arm7tdmi -o fp-bit.o fp-bit.s;
rm -f fp-bit.s
dp-bit.o: dp-bit.c
$(CPP) -undef -I ../ginclude -nostdinc -o dp-bit.i dp-bit.c;
$(CC1) -O2 dp-bit.i
rm -f dp-bit.i
bash -c 'echo -e ".text\n\t.align\t2, 0\n"' >> dp-bit.s
$(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