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 mul.o mulchar.o putchar.o shift.o stubs.o crt0_rle.o heap.o fstubs.o memmove.o strlen.o
LIB = z80.lib
AS = $(SAS)
ASFLAGS = -plosgff
-CFLAGS = -I$(srcdir)/../../include -I. --std-c89
+CFLAGS = -I$(srcdir)/../../include -I. --std-c99
all: $(PORTDIR)/$(LIB) $(PORTDIR)/crt0.o
$(PORTDIR)/crt0.o: crt0.o
cp crt0.o $(PORTDIR)/crt0.o
-$(PORTDIR)/$(LIB): $(OBJ) Makefile _dummy
+$(PORTDIR)/$(LIB): $(OBJ) $(Z8OBJECTS) Makefile
ifeq ($(LIB_TYPE), SDCCLIB)
rm -f $@; \
- ../../../bin/sdcclib -a $@ $(OBJ)
+ ../../../bin/sdcclib -a $@ $(OBJ) $(Z8OBJECTS)
else ifeq ($(LIB_TYPE), AR)
- ar -Scq $@ $(OBJ)
+ ar -Scq $@ $(OBJ) $(Z8OBJECTS)
else ifeq ($(LIB_TYPE), RANLIB)
- ar -Scq $@ $(OBJ)
+ ar -Scq $@ $(OBJ) $(Z8OBJECTS)
$(top_builddir)/bin/asranlib $@
else
rm -f $@; \
- for i in $(basename $(OBJ)); do echo $$i >>$@; done
- cp $(OBJ) $(PORTDIR)
+ for i in $(basename $(OBJ) $(Z8OBJECTS)); do echo $$i >>$@; done
+ cp $(OBJ) $(Z8OBJECTS) $(PORTDIR)
endif
-.c.o:
+%.o: ../%.c
$(CC) $(CFLAGS) -c $<
-.s.o:
- $(AS) $(ASFLAGS) $@ $<
+%.o: %.c
+ $(CC) $(CFLAGS) -c $<
-_dummy:
+%.o: %.s
+ $(AS) $(ASFLAGS) $@ $<
clean:
rm -f *.o *.sym *.lst *~ $(CLEANSPEC) *.dump* *.asm *.lib