CFLAGS=-O2 -DFINAL -DIEEE_SINGBAS -fomit-frame-pointer -funroll-loops -DHAVE_ATEXIT
#CFLAGS=-O -DFINAL -fstrength-reduce -fomit-frame-pointer -mc68000 -msoft-float
CC=gcc2
CSW=-c
INCS=
LIB=libgnu.a

.c.o:
	$(CC) $(CFLAGS) $(INCS) $(CSW) $*.c

.c.X:
	gcc2 -I/scsu -DFINAL -DTRANSLATE_DOTS -fgen-aux-info -fsyntax-only -S $*.c -o foo.s
	-egrep -v "(static|compiled from|:[INO]C )" $*.c.X >$*.X
	rm -f $*.c.X

SRC= adddf3.c addsf3.c ashlsi3.c ashrsi3.c cmpdf2.c cmpsf2.c divdf3.c \
     divsf3.c divsi3.c eqdf2.c eqsf2.c extendsfdf2.c fixdfsi.c fixsfsi.c \
     fixunsdfsi.c \
     floatsidf.c floatsisf.c gedf2.c gesf2.c gtdf2.c gtsf2.c ledf2.c \
     lesf2.c lshlsi3.c lshrsi3.c ltdf2.c ltsf2.c modsi3.c muldf3.c \
     mulsf3.c mulsi3.c nedf2.c negdf2.c negsf2.c nesf2.c subdf3.c \
     subsf3.c truncdfsf2.c udivsi3.c umodsi3.c eprintf.c

OBJ= adddf3.o addsf3.o ashlsi3.o ashrsi3.o cmpdf2.o cmpsf2.o divdf3.o \
     divsf3.o divsi3.o eqdf2.o eqsf2.o extendsfdf2.o fixdfsi.o fixsfsi.o \
     fixunsdfsi.o \
     floatsidf.o floatsisf.o gedf2.o gesf2.o gtdf2.o gtsf2.o ledf2.o \
     lesf2.o lshlsi3.o lshrsi3.o ltdf2.o ltsf2.o modsi3.o muldf3.o \
     mulsf3.o mulsi3.o nedf2.o negdf2.o negsf2.o nesf2.o subdf3.o \
     subsf3.o truncdfsf2.o udivsi3.o umodsi3.o eprintf.o

OBJ2=muldi3.o divdi3.o moddi3.o udivdi3.o umoddi3.o negdi2.o lshrdi3.o lshldi3.o \
     ashldi3.o ashrdi3.o udivmoddi4.o cmpdi2.o ucmpdi2.o floatdidf.o floatdisf.o \
     fixunsdfsi.o fixunssfsi.o fixunsdfdi.o fixdfdi.o fixunssfdi.o fixsfdi.o \
     varargs.o eprintf.o builtin_new.o builtin_NNew.o builtin_del.o bb.o \
     shtab.o clear_cache.o trampoline.o main.o

AUX= adddf3.X addsf3.X ashlsi3.X ashrsi3.X cmpdf2.X cmpsf2.X divdf3.X \
     divsf3.X divsi3.X eqdf2.X eqsf2.X extendsfdf2.X fixdfsi.X fixsfsi.X \
     fixunsdfsi.X \
     floatsidf.X floatsisf.X gedf2.X gesf2.X gtdf2.X gtsf2.X ledf2.X \
     lesf2.X lshlsi3.X lshrsi3.X ltdf2.X ltsf2.X modsi3.X muldf3.X \
     mulsf3.X mulsi3.X nedf2.X negdf2.X negsf2.X nesf2.X subdf3.X \
     subsf3.X truncdfsf2.X udivsi3.X umodsi3.X eprintf.X \
     gnulib2.X

$(LIB) .LIBRARY : $(OBJ) $(OBJ2)

aux: $(AUX)

clean:
	rm -f $(OBJ) $(OBJ2) $(LIB)

dep: $(SRC)
	gcc >deps -M $(INCS) $(SRC)

gnulib2.X: libgcc2.c
	gcc2 -I/scsu -DFINAL -DTRANSLATE_DOTS -fgen-aux-info -fsyntax-only -S libgcc2.c -o foo.s \
	-DL_adddi3 -DL_subdi3 -DL_muldi3 -DL_divdi3 -DL_moddi3 -DL_udivdi3 \
	-DL_umoddi3 -DL_negdi2 -DL_anddi3 -DL_iordi3 -DL_xordi3 -DL_lshrdi3 \
	-DL_lshldi3 -DL_ashldi3 -DL_ashrdi3 -DL_one_cmpldi2 -DL_bdiv \
	-DL_cmpdi2 -DL_ucmpdi2 -DL_fixunsdfd -DL_fixdfdi -DL_floatdidf \
	-DL_varargs
	-egrep -v "(static|compiled from|:[INO]C )" libgcc2.c.X >gnulib2.X
	rm -f libgcc2.c.X

muldi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_muldi3 -o muldi3.o
divdi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_divdi3 -o divdi3.o
moddi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_moddi3 -o moddi3.o
udivdi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_udivdi3 -o udivdi3.o
umoddi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_umoddi3 -o umoddi3.o
negdi2.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_negdi2 -o negdi2.o
lshrdi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_lshrdi3 -o lshrdi3.o
lshldi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_lshldi3 -o lshldi3.o
ashldi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_ashldi3 -o ashldi3.o
ashrdi3.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_ashrdi3 -o ashrdi3.o
udivmoddi4.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_udivmoddi4 -o udivmoddi4.o
cmpdi2.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_cmpdi2 -o cmpdi2.o
ucmpdi2.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_ucmpdi2 -o ucmpdi2.o
floatdidf.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_floatdidf -o floatdidf.o
floatdisf.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_floatdisf -o floatdisf.o
fixunsdfsi.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_fixunsdfsi -o fixunsdfsi.o
fixunssfsi.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_fixunssfsi -o fixunssfsi.o
fixunsdfdi.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_fixunsdfdi -o fixunsdfdi.o
fixdfdi.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_fixdfdi -o fixdfdi.o
fixunssfdi.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_fixunssfdi -o fixunssfdi.o
fixsfdi.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_fixsfdi -o fixsfdi.o
varargs.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_varargs -o varargs.o
eprintf.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_eprintf -o eprintf.o
builtin_new.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_builtin_new -o builtin_new.o
builtin_NNew.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_builtin_New -o builtin_NNew.o
builtin_del.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_builtin_del -o builtin_del.o
bb.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_bb -o bb.o
shtab.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_shtab -o shtab.o
clear_cache.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_clear_cache -o clear_cache.o
trampoline.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL_trampoline -o trampoline.o
main.o: libgcc2.c
	$(CC) $(CFLAGS) $(INCS) $(CSW) libgcc2.c -DL__main -o main.o

##########################################################################
adddf3.o : adddf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
addsf3.o : addsf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
ashlsi3.o : ashlsi3.c common.h gcc:include/exec/types.h types.h 
ashrsi3.o : ashrsi3.c common.h gcc:include/exec/types.h types.h 
cmpdf2.o : cmpdf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
cmpsf2.o : cmpsf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
divdf3.o : divdf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
divsf3.o : divsf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
divsi3.o : divsi3.c common.h gcc:include/exec/types.h types.h 
eqdf2.o : eqdf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
eqsf2.o : eqsf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
extendsfdf2.o : extendsfdf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubtrans.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
fixdfsi.o : fixdfsi.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
fixsfsi.o : fixsfsi.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
fixunsdfsi.o : fixunsdfsi.c common.h gcc:include/exec/types.h types.h \
  local:gcc-include/limits.h 
floatsidf.o : floatsidf.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
floatsisf.o : floatsisf.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
gedf2.o : gedf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
gesf2.o : gesf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
gtdf2.o : gtdf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
gtsf2.o : gtsf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
ledf2.o : ledf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
lesf2.o : lesf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
lshlsi3.o : lshlsi3.c common.h gcc:include/exec/types.h types.h 
lshrsi3.o : lshrsi3.c common.h gcc:include/exec/types.h types.h 
ltdf2.o : ltdf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
ltsf2.o : ltsf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
modsi3.o : modsi3.c common.h gcc:include/exec/types.h types.h 
muldf3.o : muldf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
mulsf3.o : mulsf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
mulsi3.o : mulsi3.c common.h gcc:include/exec/types.h types.h 
nedf2.o : nedf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
negdf2.o : negdf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
negsf2.o : negsf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
nesf2.o : nesf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
subdf3.o : subdf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubbas.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
subsf3.o : subsf3.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathffp.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h \
  gcc:include/inline/mathtrans.h 
truncdfsf2.o : truncdfsf2.c common.h gcc:include/exec/types.h types.h \
  gcc:include/inline/mathieeedoubtrans.h gcc:include/inline/stub.h \
  gcc:include/exec/lists.h gcc:include/exec/nodes.h 
udivsi3.o : udivsi3.c common.h gcc:include/exec/types.h types.h 
umodsi3.o : umodsi3.c common.h gcc:include/exec/types.h types.h 
eprintf.o : eprintf.c gcc:include/stdio.h 
