1# libc/tlcs90 Makefile 2 3VPATH = @srcdir@ 4srcdir = @srcdir@ 5top_builddir = @top_builddir@ 6 7LIB_TYPE = @LIB_TYPE@ 8 9SCC = $(top_builddir)/bin/sdcc -mtlcs90 10SAS = $(top_builddir)/bin/sdastlcs90 11 12# override PORTDIR defined by super (parent) makefile 13override PORTDIR = ../build/tlcs90 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 _memmove.c 42 43Z80SOURCES = $(addprefix ../,$(Z80_FLOAT) $(Z80_INT) $(Z80_LONG) $(Z80_LONGLONG) $(Z80_SDCC)) 44Z8OBJECTS = $(patsubst %.c,%.rel,$(Z80_FLOAT) $(Z80_INT) $(Z80_LONG) $(Z80_LONGLONG) $(Z80_SDCC)) 45 46OBJ = divunsigned.rel divsigned.rel divmixed.rel modunsigned.rel modsigned.rel modmixed.rel mul.rel mulchar.rel \ 47 heap.rel strcpy.rel strlen.rel abs.rel __sdcc_call_hl.rel __sdcc_call_iy.rel crtenter.rel \ 48 setjmp.rel 49 50LIB = tlcs90.lib 51CC = $(SCC) 52AS = $(SAS) 53ASFLAGS = -plosgff 54 55CFLAGS = -I$(srcdir)/../../include -I. --std-c11 56 57all: $(PORTDIR)/$(LIB) $(PORTDIR)/crt0.rel 58 59$(PORTDIR)/crt0.rel: crt0.rel 60 cp crt0.rel $(PORTDIR)/crt0.rel 61 62$(PORTDIR)/$(LIB): $(OBJ) $(Z8OBJECTS) Makefile 63ifeq ($(LIB_TYPE), SDCCLIB) 64 rm -f $@; \ 65 $(top_builddir)/bin/sdcclib -a $@ $(OBJ) $(Z8OBJECTS) 66else 67 ifeq ($(LIB_TYPE), AR) 68 $(top_builddir)/bin/sdar -rcSD $@ $(OBJ) $(Z8OBJECTS) 69 else 70 ifeq ($(LIB_TYPE), RANLIB) 71 $(top_builddir)/bin/sdar -rcD $@ $(OBJ) $(Z8OBJECTS) 72 else 73 rm -f $@; \ 74 for i in $(basename $(OBJ) $(Z8OBJECTS)); do echo $$i >>$@; done 75 cp $(OBJ) $(Z8OBJECTS) $(PORTDIR) 76 endif 77 endif 78endif 79 80%.rel: %.c 81 $(CC) $(CFLAGS) -c $< 82 83%.rel: %.s 84 @# TODO: sdas should place it\'s output in the current dir 85 test $(srcdir) = . || cp $< . 86 -$(AS) $(ASFLAGS) -I$(dir $<) $(notdir $<) 87 test $(srcdir) = . || rm $(notdir $<) 88 89%.rel: ../%.c 90 $(CC) $(CFLAGS) -c $< 91 92clean: 93 rm -f *.rel *.sym *.lst *~ $(CLEANSPEC) *.dump* *.asm *.lib 94 95distclean: clean 96 rm -f Makefile 97 98