X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=Makefile;h=5a02a6d936a53be4f1fa7b94d9d07682b158f3cd;hb=13a5e983d84cbf0abfd9751e9bbdef8ac13d0a21;hp=01c94352db2a16d6e63e6104a3b846a5509ae9ec;hpb=24d36cacbba9c00046134de17afd35900366150b;p=fw%2Fsdcc diff --git a/Makefile b/Makefile index 01c94352..5a02a6d9 100644 --- a/Makefile +++ b/Makefile @@ -2,25 +2,87 @@ # # +CFLAGS+=-g + SHELL = /bin/sh AUTOCONF = autoconf PRJDIR = . -PKGS = support/gc support/cpp \ - src as/mcs51 as/z80 link/z80 debugger/mcs51 \ - device/include device/lib sim/ucsim -PRJS = sim/ucsim -PORTS = mcs51 z80 - srcdir = . +include $(srcdir)/Makefile.common + +SDCC_MISC = debugger/mcs51 sim/ucsim +SDCC_LIBS = support/cpp support/cpp2 +SDCC_DOC = doc + +SDCC_ASLINK = as/mcs51 as link +SDCC_PACKIHX = packihx + +TARGETS = sdcc-libs sdcc-cc sdcc-aslink sdcc-doc + +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 # ------------------------------------------ -all: checkconf - for pkg in $(PKGS); do $(MAKE) -C $$pkg; done +all: checkconf sdcc + +tini: checkconf sdcc-tini + +sdcc-libs: + for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done + +sdcc-cc: sdcc-libs + $(MAKE) -C src + +sdcc-aslink: + for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done + +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 + +sdcc-device-tini: + $(MAKE) -C device/include + $(MAKE) -C device/lib modelDS390 + +# Empty for now, as doc depends on latex and latex2html +sdcc-doc: + +sdcc: $(TARGETS) + +sdcc-tini: sdcc-cc sdcc-aslink sdcc-device-tini sdcc-packihx $(MAKE) -f main.mk all +# Some interesting sub rules +sdcc-bin: sdcc-cc sdcc-aslink sdcc-misc + +sdcc-base: sdcc-cc sdcc-aslink # Compiling and installing everything and runing test # --------------------------------------------------- @@ -30,6 +92,14 @@ install: $(MAKE) -C $$pkg install ;\ done +install-tini: + $(MAKE) -f main.mk install + @for pkg in $(PKGS_TINI); do\ + $(MAKE) -C $$pkg install ;\ + done + $(MAKE) -C device/lib installDS390 + + # Deleting all the installed files # -------------------------------- @@ -49,10 +119,6 @@ clean: for pkg in $(PKGS); do\ $(MAKE) PORTS="$(PORTS)" -C $$pkg clean ;\ done - @echo "+ Cleaning sub-projects using Makefile..." - for prj in $(PRJS); do\ - $(MAKE) -C $$prj clean ;\ - done # Deleting all files created by configuring or building the program @@ -64,10 +130,6 @@ distclean: for pkg in $(PKGS); do\ $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\ done - @echo "+ DistCleaning sub-projects using Makefile..." - for prj in $(PRJS); do\ - $(MAKE) -C $$prj distclean ;\ - done # Like clean but some files may still exist @@ -77,9 +139,6 @@ mostlyclean: clean for pkg in $(PKGS); do\ $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\ done - for prj in $(PRJS); do\ - $(MAKE) -C $$prj mostlyclean ;\ - done # Deleting everything that can reconstructed by this Makefile. It deletes @@ -90,9 +149,6 @@ realclean: distclean for pkg in $(PKGS); do\ $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\ done - for prj in $(PRJS); do\ - $(MAKE) -C $$prj realclean ;\ - done # Creating distribution