#
# /emx/src/lib/gcc/makefile
#
GCCSRC = g:/emx/gnu/gcc-2.8

.INCLUDE: /emx/src/lib/lib0.mak

.PHONY: clean default dstlib lib_386 libgcc libgcc-p

.SOURCE.c: ..
.SOURCE.cc: ..
.SOURCE.h: ..
.SOURCE.s: ..

.SOURCE.c: ../$(CPU)
.SOURCE.s: ../$(CPU)

LIBGCC=$(L)$(LIBNAME).a

GCCFLAGS=-DEMX -DHAVE_ATEXIT -DHAVE_POPEN -I$(GCCSRC) -I$(GCCSRC)/config
.c.o:
	$(GCC) $(GCCFLAGS) -c $<

.cc.o:
	$(GCC) -DEMX -c $<

default: libgcc

libgcc: lib_$(CPU)
libgcc-p: lib_p_$(CPU)

lib_386 .SETDIR=st_386:
	$(MAKE) -f ../makefile dstlib LIBNAME=gcc $(PASSDOWN) MT_CCFLAGS=

lib_p_386 .SETDIR=st_p_386:
	$(MAKE) -f ../makefile dstlib LIBNAME=gcc_p $(PASSDOWN) MT_CCFLAGS=-pg

dstlib: $(LIBGCC)

clean:
	-del st_$(CPU)\*.o $(DELOPT)
	-del st_p_$(CPU)\*.o $(DELOPT)

bb.o: bb.c gbl-ctor.h gcov-io.h
bi_del.o: bi_del.c
bi_new.o: bi_new.c
bi_vdel.o: bi_vdel.c
bi_vnew.o: bi_vnew.c
bounds.o: bounds.c
dummy.o: dummy.c
ehfinit.o: ehfinit.s $(ASM386H)
exceptio.o: exceptio.cc
frame.o: frame.c
main.o: main.c $(I)stdlib.h
new.o: new.cc
new1.o: new1.cc
new2.o: new2.cc
probe.o: probe.s $(ASM386H)
purevirt.o: purevirt.c $(I)unistd.h $(I)io.h
setnewha.o: setnewha.c
tinfo.o: tinfo.cc tinfo.h
tinfo2.o: tinfo2.cc tinfo.h

eh.o: eh.c
	$(GCC) $(GCCFLAGS) -fexceptions -c ../eh.c

udivsi3.o: udivsi3.s $(ASM386H)
divsi3.o: divsi3.s $(ASM386H)
fixdfsi.o: fixdfsi.s $(ASM386H)
fixudfdi.o: fixudfdi.s $(ASM386H)
fixudfsi.o: fixudfsi.c
fixusfdi.o: fixusfdi.s $(ASM386H)
fixuxfdi.o: fixuxfdi.s $(ASM386H)
muldi3.o: muldi3.s $(ASM386H)
cmpdi2.o: cmpdi2.s $(ASM386H)
ucmpdi2.o: ucmpdi2.s $(ASM386H)
lldiv.o: lldiv.c $(I)stdlib.h
ulldiv.o: ulldiv.s $(ASM386H)
divdi3.o: divdi3.c $(I)stdlib.h
moddi3.o: moddi3.c $(I)stdlib.h
udivdi3.o: udivdi3.c $(I)stdlib.h
umoddi3.o: umoddi3.c $(I)stdlib.h

$(LIBGCC): bb.o bi_del.o bi_new.o bi_vdel.o bi_vnew.o \
    bounds.o dummy.o eh.o ehfinit.o exceptio.o frame.o main.o \
    new.o new1.o new2.o \
    probe.o purevirt.o setnewha.o tinfo.o tinfo2.o \
    udivsi3.o divsi3.o \
    fixdfsi.o fixudfdi.o fixudfsi.o fixusfdi.o fixuxfdi.o \
    muldi3.o udivdi3.o divdi3.o moddi3.o umoddi3.o cmpdi2.o ucmpdi2.o \
    lldiv.o ulldiv.o
	$(AR) r $(LIBGCC) *.o
