676 lines
18 KiB
Makefile
676 lines
18 KiB
Makefile
#
|
|
#
|
|
#
|
|
|
|
VERSION = @VERSION@
|
|
VERSIONHI = @VERSIONHI@
|
|
VERSIONLO = @VERSIONLO@
|
|
VERSIONP = @VERSIONP@
|
|
|
|
SHELL = /bin/sh
|
|
INSTALL = @INSTALL@
|
|
CP = @CP@
|
|
|
|
LIB_TYPE = @LIB_TYPE@
|
|
|
|
ifeq ($(shell uname -s),Linux)
|
|
CP_U = $(CP) -u
|
|
else
|
|
CP_U = $(CP)
|
|
endif
|
|
|
|
top_builddir = @top_builddir@
|
|
top_srcdir = @top_srcdir@
|
|
VPATH = @srcdir@
|
|
srcdir = @srcdir@
|
|
INCDIR = $(top_srcdir)/device/include
|
|
ifndef PORTINCDIR
|
|
PORTINCDIR = $(INCDIR)/mcs51
|
|
endif
|
|
|
|
CC = $(top_builddir)/bin/sdcc
|
|
# The predefined macros reflect what SDCC predefines (so we don't get any errors when generating Makefile.dep).
|
|
CPP = $(top_builddir)/bin/sdcpp -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
datadir = @datadir@
|
|
datarootdir = @datarootdir@
|
|
includedir = @includedir@
|
|
mandir = @mandir@
|
|
man1dir = $(mandir)/man1
|
|
man2dir = $(mandir)/man2
|
|
infodir = @infodir@
|
|
|
|
lib_dir_suffix = @lib_dir_suffix@
|
|
|
|
sdcc_libdir = $(DESTDIR)$(datadir)/$(lib_dir_suffix)
|
|
|
|
CPPFLAGS = -I$(INCDIR) -I$(PORTINCDIR)
|
|
CFLAGS = $(MODELFLAGS) --nostdinc --std-c11
|
|
|
|
BUILDDIR = build
|
|
# Default
|
|
PORT = z80
|
|
ifndef PORTDIR
|
|
PORTDIR = $(BUILDDIR)/$(PORT)
|
|
endif
|
|
|
|
OPT_DISABLE_AVR = @OPT_DISABLE_AVR@
|
|
OPT_DISABLE_DS390 = @OPT_DISABLE_DS390@
|
|
OPT_DISABLE_DS400 = @OPT_DISABLE_DS400@
|
|
OPT_DISABLE_HC08 = @OPT_DISABLE_HC08@
|
|
OPT_DISABLE_S08 = @OPT_DISABLE_S08@
|
|
OPT_DISABLE_MCS51 = @OPT_DISABLE_MCS51@
|
|
OPT_DISABLE_PIC14 = @OPT_DISABLE_PIC14@
|
|
OPT_DISABLE_PIC16 = @OPT_DISABLE_PIC16@
|
|
OPT_DISABLE_XA51 = @OPT_DISABLE_XA51@
|
|
OPT_DISABLE_Z80 = @OPT_DISABLE_Z80@
|
|
OPT_DISABLE_Z180 = @OPT_DISABLE_Z180@
|
|
OPT_DISABLE_EZ80_Z80 = @OPT_DISABLE_EZ80_Z80@
|
|
OPT_DISABLE_R2K = @OPT_DISABLE_R2K@
|
|
OPT_DISABLE_R3KA = @OPT_DISABLE_R3KA@
|
|
OPT_DISABLE_TLCS90 = @OPT_DISABLE_TLCS90@
|
|
OPT_DISABLE_GBZ80 = @OPT_DISABLE_GBZ80@
|
|
OPT_DISABLE_STM8 = @OPT_DISABLE_STM8@
|
|
OPT_DISABLE_PDK13 = @OPT_DISABLE_PDK13@
|
|
OPT_DISABLE_PDK14 = @OPT_DISABLE_PDK14@
|
|
OPT_DISABLE_PDK15 = @OPT_DISABLE_PDK15@
|
|
|
|
SOURCES_FLOAT = $(COMMON_FLOAT) \
|
|
_fscmp.c \
|
|
_fsget1arg.c \
|
|
_fsget2args.c \
|
|
_fsnormalize.c \
|
|
_fsreturnval.c \
|
|
_fsrshift.c \
|
|
_fsswapargs.c \
|
|
_logexpf.c
|
|
|
|
SOURCES_INT = $(COMMON_INT) \
|
|
_divsint.c \
|
|
_divuint.c \
|
|
_modsint.c \
|
|
_moduint.c \
|
|
_mulint.c
|
|
|
|
SOURCES_LONG = $(COMMON_LONG) \
|
|
_divulong.c \
|
|
_mullong.c
|
|
|
|
SOURCES_LONGLONG = $(COMMON_LONGLONG) \
|
|
_rrulonglong.c \
|
|
_rrslonglong.c \
|
|
_rlulonglong.c \
|
|
_rlslonglong.c \
|
|
_mullonglong.c \
|
|
_divslonglong.c \
|
|
_divulonglong.c \
|
|
_modslonglong.c \
|
|
_modulonglong.c
|
|
|
|
SOURCES_SDCC = $(COMMON_SDCC) \
|
|
_autobaud.c \
|
|
_bp.c \
|
|
_decdptr.c \
|
|
_gptrget.c \
|
|
_gptrgetc.c \
|
|
_gptrput.c \
|
|
_ser.c \
|
|
_setjmp.c \
|
|
serial.c \
|
|
_itoa.c \
|
|
_ltoa.c \
|
|
_spx.c \
|
|
_startup.c \
|
|
_strcmp.c \
|
|
_strlen.c \
|
|
__memcpy.c \
|
|
memcpy.c \
|
|
_memmove.c \
|
|
_strcpy.c \
|
|
_heap.c \
|
|
sprintf.c \
|
|
vprintf.c \
|
|
printf_fast.c \
|
|
printf_fast_f.c \
|
|
printf_tiny.c \
|
|
printfl.c \
|
|
bpx.c
|
|
|
|
SOURCES = $(SOURCES_FLOAT) $(SOURCES_INT) $(SOURCES_LONG) $(SOURCES_LONGLONG) $(SOURCES_SDCC)
|
|
|
|
OBJECTS_FLOAT = $(SOURCES_FLOAT:%.c=$(PORT)/%.rel)
|
|
OBJECTS_INT = $(SOURCES_INT:%.c=$(PORT)/%.rel)
|
|
OBJECTS_LONG = $(SOURCES_LONG:%.c=$(PORT)/%.rel)
|
|
OBJECTS_LONGLONG = $(SOURCES_LONGLONG:%.c=$(PORT)/%.rel)
|
|
OBJECTS_SDCC = $(SOURCES_SDCC:%.c=$(PORT)/%.rel)
|
|
|
|
OBJECTS = $(OBJECTS_FLOAT) $(OBJECTS_INT) $(OBJECTS_LONG) $(OBJECTS_LONGLONG) $(OBJECTS_SDCC)
|
|
|
|
XA51_FLOAT = $(COMMON_FLOAT)
|
|
|
|
XA51_INT = $(COMMON_INT) \
|
|
_divsint.c \
|
|
_divuint.c \
|
|
_modsint.c \
|
|
_moduint.c \
|
|
_mulint.c
|
|
|
|
XA51_LONG = $(COMMON_LONG) \
|
|
_divulong.c \
|
|
_mullong.c
|
|
|
|
XA51_SDCC = $(COMMON_SDCC) \
|
|
_memmove.c \
|
|
_strlen.c \
|
|
_heap.c
|
|
|
|
XA51SOURCES = $(XA51_FLOAT) $(XA51_INT) $(XA51_LONG) $(XA51_SDCC)
|
|
XA51OBJECTS = $(XA51SOURCES:%.c=$(PORT)/%.rel)
|
|
|
|
LIB_FILES = $(PORTDIR)/libfloat.lib $(PORTDIR)/libint.lib $(PORTDIR)/liblong.lib $(PORTDIR)/liblonglong.lib $(PORTDIR)/libsdcc.lib
|
|
|
|
OEXT = .rel
|
|
|
|
include $(srcdir)/incl.mk
|
|
|
|
ifeq ($(OPT_DISABLE_DS390), 0)
|
|
TARGETS += model-ds390
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_DS400), 0)
|
|
TARGETS += model-ds400
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_HC08), 0)
|
|
TARGETS += model-hc08
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_S08), 0)
|
|
TARGETS += model-s08
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_MCS51), 0)
|
|
TARGETS += models small-mcs51-stack-auto large-mcs51-stack-auto
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_PIC14), 0)
|
|
TARGETS += model-pic14
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_PIC16), 0)
|
|
TARGETS += model-pic16
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_Z80), 0)
|
|
TARGETS += model-z80
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_Z180), 0)
|
|
TARGETS += model-z180
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_EZ80_Z80), 0)
|
|
TARGETS += model-ez80_z80
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_R2K), 0)
|
|
TARGETS += model-r2k
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_R3KA), 0)
|
|
TARGETS += model-r3ka
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_TLCS90), 0)
|
|
TARGETS += model-tlcs90
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_GBZ80), 0)
|
|
TARGETS += model-gbz80
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_STM8), 0)
|
|
TARGETS += model-stm8
|
|
TARGETS += model-stm8-large
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_PDK13), 0)
|
|
TARGETS += model-pdk13
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_PDK14), 0)
|
|
TARGETS += model-pdk14
|
|
endif
|
|
|
|
ifeq ($(OPT_DISABLE_PDK15), 0)
|
|
TARGETS += model-pdk15
|
|
endif
|
|
|
|
# Compiling entire program or any subproject
|
|
# ------------------------------------------
|
|
all:
|
|
$(MAKE) checkconf
|
|
ifneq ($(TARGETS), )
|
|
$(MAKE) $(TARGETS)
|
|
endif
|
|
|
|
objects:
|
|
$(MAKE) build-dir
|
|
$(MAKE) $(OBJECTS)
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) $(LIB_FILES)
|
|
$(MAKE) clean_intermediate
|
|
|
|
models:
|
|
if grep '^mcs51$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
for model in $(MODELS); do \
|
|
$(MAKE) MODELFLAGS="--model-$$model" PORT=$$model PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
done \
|
|
fi
|
|
|
|
small-mcs51-stack-auto:
|
|
if grep '^mcs51$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
mkdir -p small-stack-auto; cp small/Makefile small-stack-auto; \
|
|
$(MAKE) MODELFLAGS="--model-small --stack-auto" PORT=small-stack-auto PORTDIR=$(BUILDDIR)/small-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
fi
|
|
|
|
large-mcs51-stack-auto:
|
|
if grep '^mcs51$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
mkdir -p large-stack-auto; cp small/Makefile large-stack-auto; \
|
|
$(MAKE) MODELFLAGS="--model-large --stack-auto" PORT=large-stack-auto PORTDIR=$(BUILDDIR)/large-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
fi
|
|
|
|
model-mcs51-stack-auto:
|
|
if grep '^mcs51$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
for model in $(MODELS); do \
|
|
mkdir -p $${model}-stack-auto; cp $${model}/Makefile $${model}-stack-auto; \
|
|
$(MAKE) MODELFLAGS="--model-$$model --stack-auto" PORT=$${model}-stack-auto PORTDIR=$(BUILDDIR)/$${model}-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
done \
|
|
fi
|
|
|
|
model-mcs51-xstack-auto:
|
|
if grep '^mcs51$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
for model in $(MODELS); do \
|
|
mkdir -p $${model}-xstack-auto; cp $${model}/Makefile $${model}-xstack-auto; \
|
|
$(MAKE) MODELFLAGS="--model-$$model --stack-auto --xstack" PORT=$${model}-xstack-auto PORTDIR=$(BUILDDIR)/$${model}-xstack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
done \
|
|
fi
|
|
|
|
model-ds390:
|
|
if grep '^ds390$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mds390" PORT=ds390 PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
fi
|
|
|
|
model-ds400:
|
|
if grep '^ds390$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mds400" PORT=ds400 PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
fi
|
|
|
|
model-xa51:
|
|
if grep '^xa51$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mxa51" PORT=xa51 objects-xa51; \
|
|
fi
|
|
|
|
objects-xa51:
|
|
$(MAKE) build-dir
|
|
$(MAKE) $(XA51OBJECTS)
|
|
$(MAKE) port-specific-objects
|
|
|
|
$(PORTDIR)/lib$(PORT).lib: $(XA51OBJECTS)
|
|
ifeq ($(LIB_TYPE), SDCCLIB)
|
|
$(top_builddir)/bin/sdcclib -a $(PORTDIR)/lib$(PORT).lib $(XA51OBJECTS)
|
|
else
|
|
ifeq ($(LIB_TYPE), AR)
|
|
$(top_builddir)/bin/sdar -rcSD $(PORTDIR)/lib$(PORT).lib $(XA51OBJECTS)
|
|
else
|
|
ifeq ($(LIB_TYPE), RANLIB)
|
|
$(top_builddir)/bin/sdar -rcD $(PORTDIR)/lib$(PORT).lib $(XA51OBJECTS)
|
|
else
|
|
rm -f $(PORTDIR)/lib$(PORT).lib
|
|
for i in $(notdir $(basename $(XA51OBJECTS))); do echo $$i >> $(PORTDIR)/lib$(PORT).lib; done
|
|
cp $(XA51OBJECTS) $(PORTDIR)
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
model-z80:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mz80" PORT=z80 objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
model-z180:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mz180" PORT=z180 objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
model-ez80_z80:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mez80_z80" PORT=ez80_z80 objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
model-r2k:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mr2k" PORT=r2k objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
model-r3ka:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mr3ka" PORT=r3ka objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
model-tlcs90:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mtlcs90" PORT=tlcs90 objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
model-gbz80:
|
|
if grep '^z80$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mgbz80" PORT=gbz80 objects-z80 OEXT=.o; \
|
|
fi
|
|
|
|
objects-z80:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-hc08:
|
|
if grep '^hc08$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mhc08" PORT=hc08 objects-hc08; \
|
|
fi
|
|
|
|
model-s08:
|
|
if grep '^hc08$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-ms08" PORT=s08 objects-hc08; \
|
|
fi
|
|
|
|
objects-hc08:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-stm8:
|
|
if grep '^stm8$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mstm8" PORT=stm8 objects-stm8; \
|
|
fi
|
|
|
|
objects-stm8:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-stm8-large:
|
|
if grep '^stm8$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mstm8 --model-large" PORT=stm8-large objects-stm8; \
|
|
fi
|
|
|
|
objects-stm8-large:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-pdk13:
|
|
if grep '^pdk$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mpdk13" PORT=pdk13 objects-pdk13; \
|
|
fi
|
|
|
|
objects-pdk13:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-pdk14:
|
|
if grep '^pdk$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mpdk14" PORT=pdk14 objects-pdk14; \
|
|
fi
|
|
|
|
objects-pdk14:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-pdk15:
|
|
if grep '^pdk$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) MODELFLAGS="-mpdk15" PORT=pdk15 objects-pdk15; \
|
|
fi
|
|
|
|
objects-pdk15:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects
|
|
$(MAKE) clean_intermediate
|
|
|
|
model-pic16:
|
|
if grep '^pic16$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) PORT=pic16 objects-pic16; \
|
|
fi
|
|
|
|
objects-pic16:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects-pic16
|
|
$(MAKE) clean_intermediate-pic16
|
|
|
|
model-pic14:
|
|
if grep '^pic14$$' $(top_builddir)/ports.build > /dev/null; then \
|
|
$(MAKE) PORT=pic14 objects-pic14; \
|
|
fi
|
|
|
|
objects-pic14:
|
|
$(MAKE) build-dir
|
|
$(MAKE) port-specific-objects-pic14
|
|
$(MAKE) clean_intermediate-pic14
|
|
|
|
build-dir:
|
|
$(MAKE) $(PORTDIR)
|
|
$(MAKE) $(PORT)
|
|
|
|
$(PORTDIR):
|
|
mkdir -p $(PORTDIR)
|
|
|
|
$(PORT):
|
|
mkdir -p $(PORT)
|
|
|
|
port-specific-objects:
|
|
-if [ -f $(PORT)/Makefile ]; then \
|
|
$(MAKE) -C $(PORT) PORT=$(PORT); \
|
|
fi
|
|
|
|
port-specific-objects-pic16:
|
|
-if [ -f $(PORT)/Makefile ]; then \
|
|
$(MAKE) -C $(PORT); \
|
|
for i in $(PORT)/*/lib*.a; do cp -f $$i $(PORTDIR)/`basename $$i .a`.lib; done; \
|
|
cp -f $(PORT)/*/crt0*.o $(PORTDIR); \
|
|
fi
|
|
|
|
port-specific-objects-pic14:
|
|
-if [ -f $(PORT)/Makefile ]; then \
|
|
$(MAKE) -C $(PORT); \
|
|
find $(PORT) -name 'lib*.a' | while read i; do \
|
|
cp -f "$$i" $(PORTDIR)/`basename "$$i" .a`.lib; \
|
|
done; \
|
|
fi
|
|
|
|
ifeq ($(LIB_TYPE), SDCCLIB)
|
|
|
|
$(PORTDIR)/libfloat.lib: $(OBJECTS_FLOAT)
|
|
$(top_builddir)/bin/sdcclib -a $(PORTDIR)/libfloat.lib $(OBJECTS_FLOAT)
|
|
|
|
$(PORTDIR)/libint.lib: $(OBJECTS_INT)
|
|
$(top_builddir)/bin/sdcclib -a $(PORTDIR)/libint.lib $(OBJECTS_INT)
|
|
|
|
$(PORTDIR)/liblong.lib: $(OBJECTS_LONG)
|
|
$(top_builddir)/bin/sdcclib -a $(PORTDIR)/liblong.lib $(OBJECTS_LONG)
|
|
|
|
$(PORTDIR)/liblonglong.lib: $(OBJECTS_LONGLONG)
|
|
$(top_builddir)/bin/sdcclib -a $(PORTDIR)/liblonglong.lib $(OBJECTS_LONGLONG)
|
|
|
|
$(PORTDIR)/libsdcc.lib: $(OBJECTS_SDCC)
|
|
$(top_builddir)/bin/sdcclib -a $(PORTDIR)/libsdcc.lib $(OBJECTS_SDCC)
|
|
|
|
else
|
|
ifeq ($(LIB_TYPE), AR)
|
|
|
|
$(PORTDIR)/libfloat.lib: $(OBJECTS_FLOAT)
|
|
$(top_builddir)/bin/sdar -rcSD $(PORTDIR)/libfloat.lib $(OBJECTS_FLOAT)
|
|
|
|
$(PORTDIR)/libint.lib: $(OBJECTS_INT)
|
|
$(top_builddir)/bin/sdar -rcSD $(PORTDIR)/libint.lib $(OBJECTS_INT)
|
|
|
|
$(PORTDIR)/liblong.lib: $(OBJECTS_LONG)
|
|
$(top_builddir)/bin/sdar -rcSD $(PORTDIR)/liblong.lib $(OBJECTS_LONG)
|
|
|
|
$(PORTDIR)/liblonglong.lib: $(OBJECTS_LONGLONG)
|
|
$(top_builddir)/bin/sdar -rcSD $(PORTDIR)/liblonglong.lib $(OBJECTS_LONGLONG)
|
|
|
|
$(PORTDIR)/libsdcc.lib: $(OBJECTS_SDCC)
|
|
$(top_builddir)/bin/sdar -rcSD $(PORTDIR)/libsdcc.lib $(OBJECTS_SDCC)
|
|
|
|
else
|
|
ifeq ($(LIB_TYPE), RANLIB)
|
|
|
|
$(PORTDIR)/libfloat.lib: $(OBJECTS_FLOAT)
|
|
$(top_builddir)/bin/sdar -rcD $(PORTDIR)/libfloat.lib $(OBJECTS_FLOAT)
|
|
|
|
$(PORTDIR)/libint.lib: $(OBJECTS_INT)
|
|
$(top_builddir)/bin/sdar -rcD $(PORTDIR)/libint.lib $(OBJECTS_INT)
|
|
|
|
$(PORTDIR)/liblong.lib: $(OBJECTS_LONG)
|
|
$(top_builddir)/bin/sdar -rcD $(PORTDIR)/liblong.lib $(OBJECTS_LONG)
|
|
|
|
$(PORTDIR)/liblonglong.lib: $(OBJECTS_LONGLONG)
|
|
$(top_builddir)/bin/sdar -rcD $(PORTDIR)/liblonglong.lib $(OBJECTS_LONGLONG)
|
|
|
|
$(PORTDIR)/libsdcc.lib: $(OBJECTS_SDCC)
|
|
$(top_builddir)/bin/sdar -rcD $(PORTDIR)/libsdcc.lib $(OBJECTS_SDCC)
|
|
|
|
else
|
|
|
|
$(PORTDIR)/libfloat.lib: $(OBJECTS_FLOAT)
|
|
rm -f $(PORTDIR)/libfloat.lib
|
|
for i in $(notdir $(basename $(OBJECTS_FLOAT))); do echo $$i >> $(PORTDIR)/libfloat.lib; done
|
|
cp $(OBJECTS_FLOAT) $(PORTDIR)
|
|
|
|
$(PORTDIR)/libint.lib: $(OBJECTS_INT)
|
|
rm -f $(PORTDIR)/libint.lib
|
|
for i in $(notdir $(basename $(OBJECTS_INT))); do echo $$i >> $(PORTDIR)/libint.lib; done
|
|
cp $(OBJECTS_INT) $(PORTDIR)
|
|
|
|
$(PORTDIR)/liblong.lib: $(OBJECTS_LONG)
|
|
rm -f $(PORTDIR)/liblong.lib
|
|
for i in $(notdir $(basename $(OBJECTS_LONG))); do echo $$i >> $(PORTDIR)/liblong.lib; done
|
|
cp $(OBJECTS_LONG) $(PORTDIR)
|
|
|
|
$(PORTDIR)/liblonglong.lib: $(OBJECTS_LONGLONG)
|
|
rm -f $(PORTDIR)/liblonglong.lib
|
|
for i in $(notdir $(basename $(OBJECTS_LONGLONG))); do echo $$i >> $(PORTDIR)/liblonglong.lib; done
|
|
cp $(OBJECTS_LONGLONG) $(PORTDIR)
|
|
|
|
$(PORTDIR)/libsdcc.lib: $(OBJECTS_SDCC)
|
|
rm -f $(PORTDIR)/libsdcc.lib
|
|
for i in $(notdir $(basename $(OBJECTS_SDCC))); do echo $$i >> $(PORTDIR)/libsdcc.lib; done
|
|
cp $(OBJECTS_SDCC) $(PORTDIR)
|
|
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
clean_intermediate:
|
|
rm -f $(PORTDIR)/*.lst $(PORTDIR)/*.sym
|
|
|
|
clean_intermediate-pic16:
|
|
$(MAKE) -C $(PORT) clean-intermediate
|
|
|
|
clean_intermediate-pic14:
|
|
$(MAKE) -C $(PORT) clean-intermediate
|
|
|
|
# Compiling and installing everything and runing test
|
|
# ---------------------------------------------------
|
|
install: all installdirs
|
|
[ ! -d "$(BUILDDIR)" ] || $(CP_U) -r $(BUILDDIR)/* $(sdcc_libdir)
|
|
$(CP_U) -r $(MODELS) $(srcdir)/mcs51 $(srcdir)/ds390 $(srcdir)/ds400 \
|
|
$(srcdir)/z80 $(srcdir)/z180 $(srcdir)/ez80_z80 $(srcdir)/r2k $(srcdir)/r3ka $(srcdir)/tlcs90 $(srcdir)/gbz80 \
|
|
$(srcdir)/hc08 $(srcdir)/s08 \
|
|
$(srcdir)/stm8 \
|
|
$(srcdir)/pdk13 $(srcdir)/pdk14 $(srcdir)/pdk15 \
|
|
$(srcdir)/pic14 $(srcdir)/pic16 $(srcdir)/*.c $(sdcc_libdir)/src
|
|
$(CP_U) -r $(MODELS) mcs51 ds390 ds400 z80 z180 ez80_z80 r2k r3ka tlcs90 gbz80 hc08 s08 stm8 pdk13 pdk14 pdk15 $(sdcc_libdir)/src
|
|
|
|
for src in $(MODELS) ds390 ds400 z80 z180 ez80_z80 r2k r3ka tlcs90 gbz80 hc08 s08 stm8 pdk13 pdk14 pdk15 pic14 pic16; do \
|
|
find $(sdcc_libdir)/src/$$src -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 'autom4te.cache' -o \
|
|
-name 'build' -o -name 'bin' -o -name 'Makefile*' -o -name 'config*' -o \
|
|
-name 'depcomp' -o -name 'missing' -o -name 'install-sh' -o \
|
|
-name 'bootstrap.sh' \) \
|
|
-exec rm -rf {} + ; \
|
|
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' -o \
|
|
-name 'Makefile*' \) \
|
|
-exec rm -rf {} +
|
|
|
|
# Deleting all the installed files
|
|
# --------------------------------
|
|
uninstall:
|
|
rm -rf $(sdcc_libdir)
|
|
|
|
# Performing self-test
|
|
# --------------------
|
|
check:
|
|
|
|
|
|
# Performing installation test
|
|
# ----------------------------
|
|
installcheck:
|
|
|
|
|
|
# Creating installation directories
|
|
# ---------------------------------
|
|
installdirs:
|
|
for model in $(MODELS); do \
|
|
mkdir -p $(sdcc_libdir)/$$model; \
|
|
done
|
|
for libdir in small-stack-auto ds390 ds400 hc08 s08 pic16 pic14; do \
|
|
mkdir -p $(sdcc_libdir)/$$libdir; \
|
|
done
|
|
mkdir -p $(sdcc_libdir)/src
|
|
|
|
# Creating dependencies
|
|
# ---------------------
|
|
dep: Makefile.dep
|
|
|
|
Makefile.dep: $(SOURCES) $(INCDIR)/*.h $(PORTINCDIR)/*.h
|
|
rm -f Makefile.dep
|
|
for i in $(filter %.c,$^); do \
|
|
$(CPP) -std=c11 -M $(CPPFLAGS) $$i >$${i}.dep; \
|
|
cat $${i}.dep >>Makefile.dep; \
|
|
rm $${i}.dep; \
|
|
done
|
|
|
|
ifeq "$(findstring $(MAKECMDGOALS),uninstall check installcheck installdirs checkconf \
|
|
clean distclean mostlyclean realclean)" ""
|
|
-include Makefile.dep
|
|
endif
|
|
include $(srcdir)/clean.mk
|
|
|
|
# My rules
|
|
# --------
|
|
|
|
.SUFFIXES: .rel .o
|
|
|
|
$(PORT)/%$(OEXT): %.c
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
|
|
|
|
# Remaking configuration
|
|
# ----------------------
|
|
checkconf:
|
|
@if [ -f $(top_builddir)/devel ]; then\
|
|
$(MAKE) -f $(srcdir)/conf.mk srcdir="$(srcdir)" top_builddir="$(top_builddir)" \
|
|
freshconf;\
|
|
fi
|
|
|
|
# End of main_in.mk/main.mk
|