X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=Makefile;h=4826af1040efde1ecc7c15bb7759bd781bada64b;hb=72b7e8dadd92279596c0f56649775fc056acf449;hp=61575aa2661541ffbfff1b1926f64f9b4237f83f;hpb=a81e7cc40a68be30706e0ec0bc95d02cdf0fbd52;p=fw%2Fsdcc diff --git a/Makefile b/Makefile index 61575aa2..4826af10 100644 --- a/Makefile +++ b/Makefile @@ -3,22 +3,51 @@ # SHELL = /bin/sh -AUTOCONF = autoconf PRJDIR = . -PKGS = debugger/mcs51 sim/ucsim -SDCC_LIBS = support/gc support/cpp + +include $(PRJDIR)/Makefile.common + +SDCC_MISC = debugger/mcs51 sim/ucsim +SDCC_LIBS = support/cpp2 support/makebin +SDCC_DOC = doc + +# Parts that are not normally compiled but need to be cleaned +SDCC_EXTRA = support/regression + 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 -PRJS = sim/ucsim -PORTS = mcs51 z80 +ifneq ($(OPT_ENABLE_DEVICE_LIB_BUILD), no) +TARGETS += sdcc-device +PKGS += device/include device/lib +endif -srcdir = . +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 sdcc +tini: checkconf sdcc-tini + sdcc-libs: for lib in $(SDCC_LIBS); do $(MAKE) -C $$lib; done @@ -29,19 +58,32 @@ sdcc-aslink: for as in $(SDCC_ASLINK); do $(MAKE) -C $$as; done sdcc-misc: - for pkg in $(PKGS); do $(MAKE) -C $$pkg; done - $(MAKE) -C sim/ucsim + for misc in $(SDCC_MISC); do $(MAKE) -C $$misc; done + +sdcc-packihx: + $(MAKE) -C $(SDCC_PACKIHX) -sdcc-device: +sdcc-device: sdcc-cc sdcc-aslink $(MAKE) -C device/include $(MAKE) -C device/lib -sdcc: sdcc-cc sdcc-aslink sdcc-misc sdcc +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 # --------------------------------------------------- install: @@ -50,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 # -------------------------------- @@ -67,14 +117,9 @@ clean: $(MAKE) -f clean.mk clean @echo "+ Cleaning packages in their directories..." 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 ;\ + $(MAKE) PORTS="$(PORTS)" EXEEXT=$(EXEEXT) -C $$pkg -f clean.mk clean ;\ done - # Deleting all files created by configuring or building the program # ----------------------------------------------------------------- distclean: @@ -82,23 +127,18 @@ distclean: $(MAKE) -f clean.mk distclean @echo "+ DistCleaning packages using clean.mk..." for pkg in $(PKGS); do\ - $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" distclean ;\ + $(MAKE) -C $$pkg PORTS="$(PORTS)" EXEEXT=$(EXEEXT) -f clean.mk distclean ;\ done - @echo "+ DistCleaning sub-projects using Makefile..." - for prj in $(PRJS); do\ - $(MAKE) -C $$prj distclean ;\ + for pkg in $(SDCC_EXTRA); do \ + $(MAKE) -C $$pkg clean; \ done - # Like clean but some files may still exist # ----------------------------------------- mostlyclean: clean $(MAKE) -f clean.mk mostlyclean for pkg in $(PKGS); do\ - $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" mostlyclean ;\ - done - for prj in $(PRJS); do\ - $(MAKE) -C $$prj mostlyclean ;\ + $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" EXEEXT=$(EXEEXT) mostlyclean ;\ done @@ -108,10 +148,7 @@ mostlyclean: clean realclean: distclean $(MAKE) -f clean.mk realclean for pkg in $(PKGS); do\ - $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" realclean ;\ - done - for prj in $(PRJS); do\ - $(MAKE) -C $$prj realclean ;\ + $(MAKE) -C $$pkg -f clean.mk PORTS="$(PORTS)" EXEEXT=$(EXEEXT) realclean ;\ done