-.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
+.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
ifneq "$V" "1"
.SILENT:
endif
-LIBVER := .0.44
-
include crossplatform.mk
include default.cf
ifdef BSD_HOST
+INSTALL_FLAGS :=
CPFLAGS := -pRf
else
+INSTALL_FLAGS := -D
CPFLAGS := -dpRf
endif
XBOOT := $(if $(CROSS_TARGET),GCC_PREFIX= TARGET_PLATFORM=$(HOST_PLATFORM) PLATFORM=$(HOST_PLATFORM),)
+LIBVER := .0.44
+
ifdef WINDOWS_HOST
HOST_SOV := $(HOST_SO)
else
ifdef WINDOWS_TARGET
+SOV := $(SO)
+
+ifndef DESTDIR
+
+ifeq "$(TARGET_ARCH)" "x86_64"
+ ifneq "$(wildcard $(SystemDrive)/Program\ Files )" ""
+ export DESTDIR=$(SystemDrive)/Program Files/Ecere SDK
+ else
+ export DESTDIR=$(SystemDrive)/Ecere SDK
+ endif
+else
+ ifdef ProgramFiles(x86)
+ export DESTDIR=${ProgramFiles(x86)}/Ecere SDK
+ else
+ ifdef ProgramFiles
+ export DESTDIR=$(ProgramFiles)/Ecere SDK
+ else
+ export DESTDIR=$(SystemDrive)/Ecere SDK
+ endif
+ endif
+endif
+
+endif # DESTDIR
+
+export prefix=
+
ifndef DOCDIR
export DOCDIR=$(DESTDIR)$(prefix)/doc
endif
+ifndef BINDIR
+export BINDIR=$(DESTDIR)$(prefix)/bin
+endif
+
+ifndef LIBDIR
+export LIBDIR=$(BINDIR)
+endif
+export DESTLIBDIR=$(LIBDIR)
+
+ifndef SLIBDIR
+export SLIBDIR=$(DESTDIR)$(prefix)/lib
+endif
+export DESTSLIBDIR=$(SLIBDIR)
+
ifndef SAMPLESDIR
export SAMPLESDIR=$(DESTDIR)$(prefix)/samples
endif
export EXTRASDIR=$(DESTDIR)$(prefix)/extras
endif
+
else # WINDOWS_TARGET
+ifdef OSX_TARGET
+# TODO: OSX soname
+SOV := $(SO)
+else
+SOV := $(SO)$(LIBVER)
+endif
+
+ifndef DESTDIR
+export DESTDIR=
+endif
+
+ifndef prefix
+export prefix=/usr
+endif
+
ifndef DOCDIR
export DOCDIR=$(DESTDIR)$(prefix)/share/ecere/doc
endif
export MANDIR=$(DESTDIR)$(prefix)/share/man/
endif
+ifndef BINDIR
+export BINDIR=$(DESTDIR)$(prefix)/bin
+endif
+
+ifdef LIBDIR
+ export PREFIXLIBDIR=$(LIBDIR)
+else
+ export PREFIXLIBDIR=$(prefix)/lib/$(TARGET_ARCH)
+
+ ifeq "$(wildcard $(prefix)/lib/$(TARGET_ARCH) )" ""
+ export PREFIXLIBDIR=$(prefix)/lib
+
+ ifeq "$(TARGET_ARCH)" "i386-linux-gnu"
+ ifneq "$(wildcard $(prefix)/lib32 )" ""
+ export PREFIXLIBDIR=$(prefix)/lib32
+ endif
+ endif
+
+ endif
+endif
+
export CPPFLAGS
CPPFLAGS += -DDEB_HOST_MULTIARCH=\"$(call escspace,$(PREFIXLIBDIR))\"
+DESTLIBDIR := $(DESTDIR)$(PREFIXLIBDIR)
+ifdef SLIBDIR
+DESTSLIBDIR := $(DESTDIR)$(SLIBDIR)
+else
+DESTSLIBDIR := $(DESTLIBDIR)
+endif
+
ifndef SAMPLESDIR
export SAMPLESDIR=$(DESTDIR)$(prefix)/share/ecere/samples
endif
export EXTRASDIR=$(DESTDIR)$(prefix)/share/ecere/extras
endif
-endif # WINDOWS_TARGET
+endif
OBJDIR := obj$(OBJALT)/
OBJBINDIR := $(OBJDIR)$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/bin/
endif
eda: prepbinaries
+ifdef CROSS_TARGET
+ @$(call echo,Building EDA (host))
+ cd eda && $(MAKE) $(XBOOT)
+endif
@$(call echo,Building EDA...)
cd eda && $(MAKE)
$(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
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))