#
#
+CFLAGS+=-g
+
SHELL = /bin/sh
AUTOCONF = autoconf
PRJDIR = .
+srcdir = .
+include $(srcdir)/Makefile.common
+
SDCC_MISC = debugger/mcs51 sim/ucsim
-SDCC_LIBS = support/cpp
+SDCC_LIBS = support/cpp support/cpp2
+SDCC_DOC = doc
+
SDCC_ASLINK = as/mcs51 as link
+SDCC_PACKIHX = packihx
-PKGS = $(SDCC_MISC) $(SDCC_LIBS) $(SDCC_ASLINK) \
- src device/include device/lib
-PKGS_TINI = $(SDCC_LIBS) $(SDCC_ASLINK) \
- src device/include
-PORTS = mcs51 z80
+TARGETS = sdcc-libs sdcc-cc sdcc-aslink sdcc-doc
-srcdir = .
+PKGS = $(SDCC_LIBS) src $(SDCC_ASLINK) $(SDCC_DOC)
+
+ifneq ($(OPT_ENABLE_UCSIM), no)
+TARGETS += sdcc-misc
+PKGS += $(SDCC_MISC)
+endif
+
+ifneq ($(OPT_ENABLE_DEVICE_LIB_BUILD), no)
+TARGETS += sdcc-device
+PKGS += device/include device/lib
+endif
+
+ifneq ($(OPT_ENABLE_PACKIHX), no)
+TARGETS += sdcc-packihx
+PKGS += $(SDCC_PACKIHX)
+endif
+
+PKGS_TINI = $(SDCC_LIBS) $(SDCC_ASLINK) \
+ src device/include $(SDCC_PACKIHX)
+PORTS = $(shell cat ports.build)
+ALLPORTS = $(shell cat ports.all)
# Compiling entire program or any subproject
# ------------------------------------------
tini: checkconf sdcc-tini
sdcc-libs:
-ifeq ($(CROSS_LIBGC),1)
- $(MAKE) -C support/gc -f Makefile.cross
-else
- $(MAKE) -C support/gc
-endif
for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done
sdcc-cc: sdcc-libs
sdcc-misc:
for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done
+sdcc-packihx:
+ $(MAKE) -C $(SDCC_PACKIHX)
+
sdcc-device:
$(MAKE) -C device/include
$(MAKE) -C device/lib
$(MAKE) -C device/include
$(MAKE) -C device/lib modelDS390
-sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc-device
- $(MAKE) -f main.mk all
+# Empty for now, as doc depends on latex and latex2html
+sdcc-doc:
+
+sdcc: $(TARGETS)
-sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini
+sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini sdcc-packihx
$(MAKE) -f main.mk all
# Some interesting sub rules