-.PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard
+.PHONY: all clean realclean distclean emptyoutput prepinstall actualinstall install copyonlyinstall uninstall troubleshoot outputdirs bootstrap deps ecere ecerecom ecerevanilla ear compiler prepbinaries epj2make ide documentor eda prepcodeguard codeguard fixprecompile cleantarget pots installer regenbootstrap updatebootstrap update_ecere update_libec update_ecp update_ecc update_ecs ecereaudio
ifneq "$V" "1"
.SILENT:
endif
LIBVER := .0.44
+ifneq "$ECERE_AUDIO" "n"
+ifdef WINDOWS_TARGET
+ECERE_AUDIO := y
+endif
+
+ifdef LINUX_TARGET
+ECERE_AUDIO := y
+endif
+endif
+
ifdef WINDOWS_HOST
HOST_SOV := $(HOST_SO)
else
endif
export CPPFLAGS
-CPPFLAGS += -DDEB_HOST_MULTIARCH=\"$(PREFIXLIBDIR)\"
+CPPFLAGS += -DDEB_HOST_MULTIARCH=\"$(call escspace,$(PREFIXLIBDIR))\"
DESTLIBDIR := $(DESTDIR)$(PREFIXLIBDIR)
ifdef SLIBDIR
XOBJBINDIR := $(OBJDIR)$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/
XOBJLIBDIR := $(OBJDIR)$(HOST_PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib/
-all: prepbinaries ide epj2make documentor eda codeguard
+all: prepbinaries ide epj2make documentor eda codeguard ecereaudio
@$(call echo,The Ecere SDK is fully built.)
outputdirs:
cd ear && cd cmd && $(MAKE) cleantarget
cd ear && $(MAKE)
+fixprecompile:
+ cd compiler && $(MAKE) fixprecompile
+
compiler: ecere ear
ifdef CROSS_TARGET
@$(call echo,Building 2nd stage compiler (host))
@$(call echo,Building epj2make...)
cd epj2make && $(MAKE)
+ecereaudio: prepbinaries
+ifdef ECERE_AUDIO
+ @$(call echo,Building EcereAudio...)
+ cd extras/audio && $(MAKE)
+endif
+
ide: prepbinaries
@$(call echo,Building IDE...)
cd ide && $(MAKE)
endif
eda: prepbinaries
+ifdef CROSS_TARGET
+ @$(call echo,Building EDA (host))
+ cd eda && $(MAKE) $(XBOOT)
+endif
@$(call echo,Building EDA...)
cd eda && $(MAKE)
ifdef EDASQLiteCipher
$(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO))
endif
+ifdef ECERE_AUDIO
+ $(call rmq,$(SODESTDIR)$(LP)EcereAudio$(SO))
+endif
ifdef LINUX_TARGET
$(call rmq,$(SODESTDIR)$(LP)ecere$(SO).0)
$(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SO).0)
ifdef EDASQLiteCipher
$(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SO).0)
endif
+ifdef ECERE_AUDIO
+ $(call rmq,$(SODESTDIR)$(LP)EcereAudio$(SO).0)
+endif
$(call rmq,$(SODESTDIR)$(LP)ecere$(SOV))
$(call rmq,$(SODESTDIR)$(LP)ecereCOM$(SOV))
$(call rmq,$(SODESTDIR)$(LP)ec$(SOV))
ifdef EDASQLiteCipher
$(call rmq,$(SODESTDIR)$(LP)EDASQLiteCipher$(SOV))
endif
+ifdef ECERE_AUDIO
+ $(call rmq,$(SODESTDIR)$(LP)EcereAudio$(SOV))
+endif
endif
$(call rmq,$(OBJBINDIR)ear$(E))
$(call rmq,$(OBJBINDIR)ecc$(E))
$(call rmq,$(OBJBINDIR)epj2make$(E))
$(call rmq,$(OBJBINDIR)ide$(E))
$(call rmq,$(OBJBINDIR)documentor$(E))
-ifdef EDASQLiteCipher
+ifdef CodeGuard
$(call rmq,$(OBJBINDIR)CodeGuard$(E))
endif
+cleantarget:
+ cd compiler && $(MAKE) cleantarget
+ cd documentor && $(MAKE) cleantarget
+ cd ear && $(MAKE) cleantarget
+ cd ecere && $(MAKE) cleantarget
+ cd eda && $(MAKE) cleantarget
+ cd epj2make && $(MAKE) cleantarget
+ cd ide && $(MAKE) cleantarget
+ cd installer && $(MAKE) cleantarget
+
+pots: cleantarget
+ $(MAKE) OUTPUT_POT=1
+ cd installer && $(MAKE) OUTPUT_POT=1 pots
+
+ifdef WINDOWS_TARGET
+installer:
+ $(MAKE) prepinstall ARCH=
+ $(MAKE) prepinstall ARCH=x32
+ @$(call echo,Building Ecere runtime for installer...)
+ cd ecere && @$(MAKE) -f Makefile.installer ARCH=x32
+ @$(call echo,Building Installer for Windows...)
+ cd installer && @$(MAKE) ARCH=x32
+ @$(call echo,The Ecere SDK Windows Installer is fully built.)
+endif
+
clean: emptyoutput
ifndef LINUX_TARGET
cd deps && $(MAKE) clean
eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV) \
eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV)
+ifdef ECERE_AUDIO
+BINARIES += extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SOV)
+endif
+
ifdef CodeGuard
BINARIES += codeGuard/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/CodeGuard$(E)
endif
$(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJBINDIR))
$(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJBINDIR))
$(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJBINDIR))
+ifdef ECERE_AUDIO
+ $(call cpq,extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SO),$(OBJBINDIR))
+endif
ifdef EDASQLiteCipher
$(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJBINDIR))
endif
$(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SOV),$(OBJLIBDIR))
$(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SOV),$(OBJLIBDIR))
$(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SOV),$(OBJLIBDIR))
+ifdef ECERE_AUDIO
+ $(call cpq,extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SOV),$(OBJLIBDIR))
+endif
ifdef EDASQLiteCipher
$(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SOV),$(OBJLIBDIR))
endif
$(call cpq,compiler/libec/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)ec$(SO),$(OBJLIBDIR))
$(call cpq,eda/libeda/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDA$(SO),$(OBJLIBDIR))
$(call cpq,eda/drivers/sqlite/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLite$(SO),$(OBJLIBDIR))
+ifdef ECERE_AUDIO
+ $(call cpq,extras/audio/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EcereAudio$(SO),$(OBJLIBDIR))
+endif
ifdef EDASQLiteCipher
$(call cpq,eda/drivers/sqliteCipher/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/$(LP)EDASQLiteCipher$(SO),$(OBJLIBDIR))
endif
ifdef EDASQLiteCipher
$(call cpq,$(OBJBINDIR)$(LP)EDASQLiteCipher$(SO),"$(DESTLIBDIR)/")
endif
+ifdef ECERE_AUDIO
+ $(call cpq,$(OBJBINDIR)$(LP)EcereAudio$(SO),"$(DESTLIBDIR)/")
+endif
$(call cpq,$(OBJBINDIR)ide$(E),"$(BINDIR)/")
$(call cpq,$(OBJBINDIR)ear$(E),"$(BINDIR)/")
$(call cpq,$(OBJBINDIR)ecc$(E),"$(BINDIR)/")
ifdef EDASQLiteCipher
install $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/
endif
+ifdef ECERE_AUDIO
+ install $(OBJBINDIR)$(LP)EcereAudio$(SO) $(DESTLIBDIR)/
+endif
install $(OBJBINDIR)ide$(E) $(BINDIR)/
install $(OBJBINDIR)ear$(E) $(BINDIR)/
install $(OBJBINDIR)ecc$(E) $(BINDIR)/
ifdef EDASQLiteCipher
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SOV)
endif
+ifdef ECERE_AUDIO
+ install $(INSTALL_FLAGS) $(OBJBINDIR)$(LP)EcereAudio$(SO) $(DESTLIBDIR)/ec/$(LP)EcereAudio$(SOV)
+endif
ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO).0
ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO).0
ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO).0
ifdef EDASQLiteCipher
ln -sf $(LP)EDASQLiteCipher$(SOV) $(DESTLIBDIR)/ec/$(LP)EDASQLiteCipher$(SO).0
endif
+ifdef ECERE_AUDIO
+ ln -sf $(LP)EcereAudio$(SOV) $(DESTLIBDIR)/ec/$(LP)EcereAudio$(SO).0
+endif
ln -sf $(LP)ecere$(SOV) $(DESTLIBDIR)/$(LP)ecere$(SO)
ln -sf $(LP)ecereCOM$(SOV) $(DESTLIBDIR)/$(LP)ecereCOM$(SO)
ln -sf $(LP)ec$(SOV) $(DESTLIBDIR)/ec/$(LP)ec$(SO)
install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EDASQLiteCipher$(SO) $(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)
endif
endif
+ifdef ECERE_AUDIO
+ install $(INSTALL_FLAGS) $(OBJLIBDIR)$(LP)EcereAudio$(SO) $(DESTLIBDIR)/$(LP)EcereAudio$(SO)
+endif
install $(INSTALL_FLAGS) $(OBJBINDIR)ide$(E) $(BINDIR)/ide$(E)
install $(INSTALL_FLAGS) $(OBJBINDIR)ear$(E) $(BINDIR)/ear$(E)
install $(INSTALL_FLAGS) $(OBJBINDIR)ecc$(E) $(BINDIR)/ecc$(E)
ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libeda0/
mkdir -p $(DESTDIR)$(prefix)/share/doc/libedasqlite0
ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libedasqlite0/
+ mkdir -p $(DESTDIR)$(prefix)/share/doc/libecereaudio0
+ ln -sf ../libecere0/changelog.gz $(DESTDIR)$(prefix)/share/doc/libecereaudio/
endif
endif
endif
ifdef EDASQLiteCipher
$(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO)")
endif
+ifdef ECERE_AUDIO
+ $(call rmq,"$(DESTLIBDIR)/$(LP)EcereAudio$(SO)")
+endif
$(call rmq,"$(BINDIR)/ide$(E)")
$(call rmq,"$(BINDIR)/ear$(E)")
$(call rmq,"$(BINDIR)/ecc$(E)")
ifdef EDASQLiteCipher
$(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SO).0")
endif
+ $(call rmq,"$(DESTLIBDIR)/$(LP)EcereaAudio$(SO).0")
$(call rmq,"$(DESTLIBDIR)/$(LP)ecere$(SOV)")
$(call rmq,"$(DESTLIBDIR)/$(LP)ecereCOM$(SOV)")
$(call rmq,"$(DESTLIBDIR)/$(LP)ec$(SOV)")
ifdef EDASQLiteCipher
$(call rmq,"$(DESTLIBDIR)/$(LP)EDASQLiteCipher$(SOV)")
endif
+ifdef ECERE_AUDIO
+ $(call rmq,"$(DESTLIBDIR)/$(LP)EcereAudio$(SOV)")
+endif
$(call rmq,"$(DESTDIR)$(prefix)/share/pixmaps/ecere.png")
$(call rmq,"$(DESTDIR)$(prefix)/share/applications/ecere.desktop")
endif
endif
@$(call echo,The Ecere SDK has been uninstalled.)
+regenbootstrap: update_ecere update_libec update_ecp update_ecc update_ecs
+ @echo Bootstrap regenerated.
+
+updatebootstrap: regenbootstrap
+ @echo Copying files...
+ $(call cpq,ecere/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecere/bootstrap)
+ $(call cpq,compiler/libec/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/libec/bootstrap)
+ $(call cpq,compiler/ecp/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecp/bootstrap)
+ $(call cpq,compiler/ecc/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecc/bootstrap)
+ $(call cpq,compiler/ecs/obj/bootstrap.$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/*.c,compiler/bootstrap/ecs/bootstrap)
+ @echo Bootstrap updated.
+
+update_ecere:
+ @echo Regenerating ecere bootstrapper...
+ cd ecere && $(MAKE) -f Makefile.bootstrap clean
+ cd ecere && $(MAKE) -f Makefile.bootstrap
+
+update_libec:
+ @echo Regenerating ec bootstrapper...
+ cd compiler/libec && $(MAKE) -f Makefile.bootstrap clean
+ cd compiler/libec && $(MAKE) -f Makefile.bootstrap
+
+update_ecp:
+ @echo Regenerating ecp bootstrapper...
+ cd compiler/ecp && $(MAKE) -f Makefile.bootstrap clean
+ cd compiler/ecp && $(MAKE) -f Makefile.bootstrap
+
+update_ecc:
+ @echo Regenerating ecc bootstrapper...
+ cd compiler/ecc && $(MAKE) -f Makefile.bootstrap clean
+ cd compiler/ecc && $(MAKE) -f Makefile.bootstrap
+
+update_ecs:
+ @echo Regenerating ecs bootstrapper...
+ cd compiler/ecs && $(MAKE) -f Makefile.bootstrap clean
+ cd compiler/ecs && $(MAKE) -f Makefile.bootstrap
+
troubleshoot:
@$(call echo,Printing values of some variables.)
@$(call echo,HOST_PLATFORM=$(HOST_PLATFORM))
@$(call echo,PREFIXLIBDIR=$(PREFIXLIBDIR))
@$(call echo,ARCH=$(ARCH))
@$(call echo,ARCH_FLAGS=$(ARCH_FLAGS))
+ @$(call echo,GIT_REPOSITORY=$(GIT_REPOSITORY))
+ @$(call echo,DIR_VER=$(DIR_VER))
+ @$(call echo,REPOSITORY_VER=$(REPOSITORY_VER))
+ @$(call echo,CPPFLAGS=$(CPPFLAGS))