sdcc_libdir = $(DESTDIR)$(datadir)/$(lib_dir_suffix)
CPPFLAGS = -I$(INCDIR) -I$(PORTINCDIR)
-CFLAGS = $(MODELFLAGS) --nostdinc
+CFLAGS = $(MODELFLAGS) --nostdinc --std-sdcc99
BUILDDIR = build
# Default
PORT = z80
+ifndef PORTDIR
PORTDIR = $(BUILDDIR)/$(PORT)
+endif
SOURCES = _atof.c _atoi.c _atol.c _autobaud.c _bp.c _schar2fs.c \
_decdptr.c _divsint.c _divslong.c _divuint.c \
# Compiling entire program or any subproject
# ------------------------------------------
-all: checkconf models model-ds390 model-ds400 model-z80 model-gbz80 model-hc08 model-pic16 model-pic14
+all: checkconf models small-mcs51-stack-auto model-ds390 model-ds400 model-z80 model-gbz80 model-hc08 model-pic16 model-pic14
objects: build-dir $(OBJECTS) port-specific-objects lib-files clean_intermediate
done \
fi
+small-mcs51-stack-auto:
+ if [ "`grep mcs51 ../../ports.build`" = mcs51 ]; then \
+ $(MAKE) MODELFLAGS="--model-small --stack-auto" PORT=small PORTDIR=$(BUILDDIR)/small-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
+ fi
+
model-mcs51-stack-auto:
if [ "`grep mcs51 ../../ports.build`" = mcs51 ]; then \
for model in $(MODELS); do \
- $(MAKE) MODELFLAGS="--model-$$model --stack-auto" PORT=$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
+ $(MAKE) MODELFLAGS="--model-$$model --stack-auto" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
done \
fi
model-mcs51-xstack-auto:
if [ "`grep mcs51 ../../ports.build`" = mcs51 ]; then \
for model in $(MODELS); do \
- $(MAKE) MODELFLAGS="--model-$$model --stack-auto --xstack" PORT=$$model-xstack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
+ $(MAKE) MODELFLAGS="--model-$$model --stack-auto --xstack" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-xstack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
done \
fi
fi
objects-pic16: build-dir port-specific-objects-pic16 clean_intermediate-pic16
- cd $(PORTDIR); ls *$(OEXT) > $(PORT).lib
+ -cd $(PORTDIR); ls *$(OEXT) > $(PORT).lib
# yes, we do reuse the *-pic16 rules for pic14
model-pic14:
# ---------------------------------------------------
install: all installdirs
$(CP_U) -r $(BUILDDIR)/* $(sdcc_libdir)
- $(CP_U) -r ds390 ds400 mcs51 small medium large gbz80 z80 hc08 pic pic16 *.c $(sdcc_libdir)/src
- find $(sdcc_libdir)/src \( -name '*.rel' -o -name '*.dump*' -o -name '*.sym' -o -name '*.o' -o -name '*.lst' -o -name '*.asm' -o -name 'CVS' \) -exec rm -r {} \;
+ $(CP_U) -r $(MODELS) mcs51 ds390 ds400 gbz80 z80 hc08 pic pic16 *.c $(sdcc_libdir)/src
+ for srcdir in $(MODELS) ds390 ds400 gbz80 z80 hc08 pic pic16; do \
+ find $(sdcc_libdir)/src/$$srcdir -depth \
+ \( -name '*.rel' -o -name '*.dump*' -o -name '*.sym' -o -name '*.o' -o -name '*.lib' -o \
+ -name '*.lst' -o -name '*.asm' -o -name '.svn' -o -name 'build' -o -name 'bin' \) \
+ -exec rm -r {} \; ; \
+ done
+ find $(sdcc_libdir)/src/mcs51 -depth \
+ \( -name '*.rel' -o -name '*.dump*' -o -name '*.sym' -o -name '*.o' -o -name '*.lib' -o \
+ -name '*.lst' -o -name '.svn' -o -name 'build' -o -name 'bin' \) \
+ -exec rm -r {} \;
# Deleting all the installed files
# --------------------------------
installdirs:
[ -d $(sdcc_libdir) ] || mkdir -p $(sdcc_libdir)
for model in $(MODELS); do \
- [ -d $(sdcc_libdir)/$$model ] || \
- mkdir -p $(sdcc_libdir)/$$model; \
+ [ -d $(sdcc_libdir)/$$model ] || \
+ mkdir -p $(sdcc_libdir)/$$model; \
+ done
+ for libdir in small-stack-auto ds390 ds400 hc08 pic16 pic; do \
+ [ -d $(sdcc_libdir)/$$libdir ] || mkdir -p $(sdcc_libdir)/$$libdir; \
done
- [ -d $(sdcc_libdir)/ds390 ] || mkdir -p $(sdcc_libdir)/ds390
- [ -d $(sdcc_libdir)/ds400 ] || mkdir -p $(sdcc_libdir)/ds400
- [ -d $(sdcc_libdir)/hc08 ] || mkdir -p $(sdcc_libdir)/hc08
- [ -d $(sdcc_libdir)/pic16 ] || mkdir -p $(sdcc_libdir)/pic16
- [ -d $(sdcc_libdir)/pic ] || mkdir -p $(sdcc_libdir)/pic
mkdir -p $(sdcc_libdir)/src
# Creating dependencies