1# libc/ez80_z80 Makefile 2 3VPATH = @srcdir@ 4srcdir = @srcdir@ 5top_builddir = @top_builddir@ 6 7LIB_TYPE = @LIB_TYPE@ 8 9SCC = $(top_builddir)/bin/sdcc -mez80_z80 10SAS = $(top_builddir)/bin/sdasz80 11 12# override PORTDIR defined by super (parent) makefile 13override PORTDIR = ../build/ez80_z80 14 15include $(srcdir)/../incl.mk 16 17Z80_FLOAT = $(COMMON_FLOAT) 18 19Z80_INT = $(COMMON_INT) 20 21Z80_LONG = $(COMMON_LONG) \ 22 _divulong.c \ 23 _mullong.c 24 25Z80_LONGLONG = $(COMMON_LONGLONG) \ 26 _mullonglong.c \ 27 _divslonglong.c \ 28 _divulonglong.c \ 29 _modslonglong.c \ 30 _modulonglong.c 31 32Z80_SDCC = $(COMMON_SDCC) \ 33 _itoa.c \ 34 _ltoa.c \ 35 _startup.c \ 36 sprintf.c \ 37 vprintf.c \ 38 _strcmp.c \ 39 __memcpy.c \ 40 memcpy.c 41 42Z80SOURCES = $(addprefix ../,$(Z80_FLOAT) $(Z80_INT) $(Z80_LONG) $(Z80_LONGLONG) $(Z80_SDCC)) 43Z8OBJECTS = $(patsubst %.c,%.rel,$(Z80_FLOAT) $(Z80_INT) $(Z80_LONG) $(Z80_LONGLONG) $(Z80_SDCC)) 44 45OBJ = divunsigned.rel divsigned.rel divmixed.rel modunsigned.rel modsigned.rel modmixed.rel mul.rel mulchar.rel \ 46 heap.rel memmove.rel strcpy.rel strlen.rel abs.rel __sdcc_call_hl.rel __sdcc_call_iy.rel crtenter.rel \ 47 setjmp.rel 48 49LIB = ez80_z80.lib 50CC = $(SCC) 51AS = $(SAS) 52ASFLAGS = -plosgff 53 54CFLAGS = -I$(srcdir)/../../include -I. --std-c11 55 56all: $(PORTDIR)/$(LIB) $(PORTDIR)/crt0.rel 57 58$(PORTDIR)/crt0.rel: crt0.rel 59 cp crt0.rel $(PORTDIR)/crt0.rel 60 61$(PORTDIR)/$(LIB): $(OBJ) $(Z8OBJECTS) Makefile 62ifeq ($(LIB_TYPE), SDCCLIB) 63 rm -f $@; \ 64 $(top_builddir)/bin/sdcclib -a $@ $(OBJ) $(Z8OBJECTS) 65else 66 ifeq ($(LIB_TYPE), AR) 67 $(top_builddir)/bin/sdar -rcSD $@ $(OBJ) $(Z8OBJECTS) 68 else 69 ifeq ($(LIB_TYPE), RANLIB) 70 $(top_builddir)/bin/sdar -rcD $@ $(OBJ) $(Z8OBJECTS) 71 else 72 rm -f $@; \ 73 for i in $(basename $(OBJ) $(Z8OBJECTS)); do echo $$i >>$@; done 74 cp $(OBJ) $(Z8OBJECTS) $(PORTDIR) 75 endif 76 endif 77endif 78 79%.rel: %.c 80 $(CC) $(CFLAGS) -c $< 81 82%.rel: %.s 83 @# TODO: sdas should place it\'s output in the current dir 84 test $(srcdir) = . || cp $< . 85 -$(AS) $(ASFLAGS) $(notdir $<) 86 test $(srcdir) = . || rm $(notdir $<) 87 88%.rel: ../%.c 89 $(CC) $(CFLAGS) -c $< 90 91clean: 92 rm -f *.rel *.sym *.lst *~ $(CLEANSPEC) *.dump* *.asm *.lib 93 94distclean: clean 95 rm -f Makefile 96