* device/lib/Makefile.in, device/lib/ds390/Makefile.in,
[fw/sdcc] / device / lib / z80 / Makefile.in
index 31b5c64f7c2a8ec1de73e5624a22a3506415650f..630c67a84877fe4b8401569a7c6981db0daed357 100644 (file)
@@ -2,34 +2,75 @@
 
 VPATH  = @srcdir@
 srcdir = @srcdir@
+top_builddir = @top_builddir@
+
+LIB_TYPE     = @LIB_TYPE@
 
 TOPDIR = ../../..
 
 SCC = $(TOPDIR)/bin/sdcc -mz80
 SAS = $(TOPDIR)/bin/as-z80
 
-OBJ = div.o mul.o putchar.o shift.o stubs.o crt0_rle.o heap.o fstubs.o
+# override PORTDIR defined by super (parent) makefile
+override PORTDIR = ../build/z80
+
+include $(srcdir)/../incl.mk
+
+Z80_FLOAT = $(COMMON_FLOAT)
+
+Z80_INT = $(COMMON_INT)
+
+Z80_LONG = $(COMMON_LONG) \
+  _divulong.c \
+  _mullong.c
+
+Z80_SDCC = $(COMMON_SDCC) \
+  _itoa.c \
+  _ltoa.c \
+  _startup.c \
+  sprintf.c \
+  vprintf.c
+
+Z80SOURCES = $(addprefix ../,$(Z80_FLOAT) $(Z80_INT) $(Z80_LONG) $(Z80_SDCC))
+Z8OBJECTS = $(patsubst %.c,%.o,$(Z80_FLOAT) $(Z80_INT) $(Z80_LONG) $(Z80_SDCC))
+
+OBJ = div.o divsigned.o mod.o modsigned.o mul.o mulchar.o putchar.o shift.o stubs.o crt0_rle.o heap.o fstubs.o memmove.o strlen.o
 
 LIB = z80.lib
 CC = $(SCC)
 AS = $(SAS)
 ASFLAGS = -plosgff
 
-CFLAGS = -I$(srcdir)/../../include -I. --std-c89
+CFLAGS = -I$(srcdir)/../../include -I. --std-c99
 
-all: $(LIB) crt0.o
+all: $(PORTDIR)/$(LIB) $(PORTDIR)/crt0.o
 
-$(LIB): $(OBJ) Makefile _dummy
-       rm -f $(LIB)
-       for i in $(OBJ); do echo $$i >> $(LIB); done
+$(PORTDIR)/crt0.o: crt0.o
+       cp crt0.o $(PORTDIR)/crt0.o
 
-.c.o:
+$(PORTDIR)/$(LIB): $(OBJ) $(Z8OBJECTS) Makefile
+ifeq ($(LIB_TYPE), SDCCLIB)
+       rm -f $@; \
+       ../../../bin/sdcclib -a $@ $(OBJ) $(Z8OBJECTS)
+else ifeq ($(LIB_TYPE), AR)
+       ar -Scq $@ $(OBJ) $(Z8OBJECTS)
+else ifeq ($(LIB_TYPE), RANLIB)
+       ar -Scq $@ $(OBJ) $(Z8OBJECTS)
+       $(top_builddir)/bin/asranlib $@
+else
+       rm -f $@; \
+       for i in $(basename $(OBJ) $(Z8OBJECTS)); do echo $$i >>$@; done
+       cp $(OBJ) $(Z8OBJECTS) $(PORTDIR)
+endif
+
+%.o: %.c
        $(CC) $(CFLAGS) -c $<
 
-.s.o:
+%.o: %.s
        $(AS) $(ASFLAGS) $@ $<
 
-_dummy:
+%.o: ../%.c
+       $(CC) $(CFLAGS) -c $<
 
 clean:
        rm -f *.o *.sym *.lst *~ $(CLEANSPEC) *.dump* *.asm *.lib