top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
-SAS = $(top_builddir)bin/asx8051
-SCC = $(top_builddir)bin/sdcc
+LIB_TYPE = @LIB_TYPE@
+SAS = $(top_builddir)/bin/asx8051
+SCC = $(top_builddir)/bin/sdcc
+
+# override PORTDIR defined by super (parent) makefile
+override PORTDIR = ../build/$(PORT)
OBJ = crtstart.rel crtxinit.rel crtxclear.rel crtclear.rel crtxstack.rel \
- crtpagesfr.rel crtbank.rel
+ crtpagesfr.rel crtbank.rel crtcall.rel
LIB = mcs51.lib
AS = $(SAS)
ASFLAGS = -plosgff
-CFLAGS = -I$(top_srcdir)/include
-
-all: $(LIB)
-
-$(LIB): $(OBJ) Makefile
- rm -f $(LIB)
- for i in $(OBJ); do echo $$i >> $(LIB); done
+CFLAGS = -I$(top_srcdir)/include --std-c89
+
+all: $(PORTDIR)/$(LIB)
+
+$(PORTDIR)/$(LIB): $(OBJ) Makefile
+ifeq ($(LIB_TYPE), SDCCLIB)
+ rm -f $@; \
+ ../../../bin/sdcclib -a $@ $(OBJ)
+else ifeq ($(LIB_TYPE), AR)
+ ar -Scq $@ $(OBJ)
+else ifeq ($(LIB_TYPE), RANLIB)
+ ar -Scq $@ $(OBJ)
+ $(top_builddir)/bin/asranlib $@
+else
+ rm -f $@
+ for i in $(basename $(OBJ)); do echo $$i >>$@; done
+ cp $(OBJ) $(PORTDIR)
+endif
%.rel: %.c
$(CC) $(CFLAGS) -c $<
rm -f *.rel *.sym *.lst *~ $(CLEANSPEC) *.dump* *.lib
distclean: clean
- rm -r Makefile
\ No newline at end of file
+ rm -r Makefile