tarball/crossplatform.mk: Removing cp/cpr -p flag breaking build on Linux/NTFS
[sdk] / ecere / Makefile.vanilla
old mode 100755 (executable)
new mode 100644 (file)
index c7ec56b..aeaaf47
@@ -1,8 +1,9 @@
-.PHONY: all objdir clean realclean distclean
+.PHONY: all objdir cleantarget clean realclean distclean
 
 # CORE VARIABLES
 
 MODULE := ecere
+VERSION := 0.44
 CONFIG := vanilla
 ifndef COMPILER
 COMPILER := default
@@ -36,6 +37,10 @@ USE_BOOTSTRAP := defined
 include $(_CF_DIR)crossplatform.mk
 include $(_CF_DIR)default.cf
 
+ifdef PREFIXLIBDIR
+CFLAGS += -DDEB_HOST_MULTIARCH=\"$(call escspace,$(PREFIXLIBDIR))\"
+endif
+
 # POST-INCLUDES VARIABLES
 
 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
@@ -73,8 +78,6 @@ _ECSOURCES1 = \
        src/gfx/drivers/lfbConvert.ec \
        src/gfx/drivers/LFBDisplayDriver.ec \
        $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),src/gfx/drivers/NCursesDisplayDriver.ec,) \
-       $(if $(OSX_TARGET),src/gfx/drivers/OpenGLDisplayDriver.ec,) \
-       $(if $(OSX_TARGET),src/gfx/drivers/CocoaOpenGLDisplayDriver.ec,) \
        $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),src/gfx/drivers/XDisplayDriver.ec,) \
        src/gfx/Bitmap.ec \
        src/gfx/BitmapResource.ec \
@@ -96,20 +99,18 @@ _ECSOURCES1 = \
        src/gui/controls/ProgressBar.ec \
        src/gui/controls/ScrollBar.ec \
        src/gui/controls/StatusBar.ec \
-       src/gui/controls/Stacker.ec
-_ECSOURCES2 = \
+       src/gui/controls/Stacker.ec \
        src/gui/controls/PathBox.ec \
        src/gui/controls/ToolTip.ec \
        src/gui/controls/SelectorBar.ec \
-       src/gui/dialogs/ColorPicker.ec \
+       src/gui/dialogs/ColorPicker.ec
+_ECSOURCES2 = \
        src/gui/dialogs/FileDialog.ec \
        src/gui/dialogs/FindDialog.ec \
        src/gui/dialogs/GoToDialog.ec \
        src/gui/dialogs/MessageBox.ec \
        src/gui/dialogs/ReplaceDialog.ec \
        src/gui/dialogs/WindowList.ec \
-       $(if $(OSX_TARGET),src/gui/drivers/cocoa/CocoaDispatch.ec,) \
-       $(if $(OSX_TARGET),src/gui/drivers/cocoa/CocoaInterface.ec,) \
        $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),src/gui/drivers/NCursesInterface.ec,) \
        $(if $(WINDOWS_TARGET),src/gui/drivers/Win32Interface.ec,) \
        $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),src/gui/drivers/XInterface.ec,) \
@@ -189,14 +190,11 @@ _OBJECTS1 = \
 _OBJECTS2 = \
        $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-impl.o) \
        $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-thai.o) \
-       $(if $(OSX_TARGET),$(OBJ)CocoaEcereBridge.o,) \
-       $(if $(OSX_TARGET),$(OBJ)EcereView.o,) \
        $(OBJ)instance.c.o
 
 OBJECTS = $(_OBJECTS) $(ECOBJECTS) $(OBJ)$(MODULE).main$(O)
 
-SOURCES = $(ECSOURCES) $(SOURCES1) $(SOURCES2)
-SOURCES1 = \
+SOURCES = $(ECSOURCES) \
        src/sys/File.c \
        src/sys/DualPipe.c \
        src/sys/System.c \
@@ -219,9 +217,6 @@ SOURCES1 = \
        $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-tibetan.c) \
        $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-impl.c) \
        $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-thai.c) \
-       $(if $(OSX_TARGET),src/gui/drivers/cocoa/CocoaEcereBridge.m,) \
-       $(if $(OSX_TARGET),src/gui/drivers/cocoa/EcereView.m,)
-SOURCES2 = \
        src/com/instance.c
 
 RESOURCES = $(RESOURCES1) $(RESOURCES2) $(RESOURCES3)
@@ -329,9 +324,7 @@ RESOURCES3 = \
        $(RES)places/brokenFolder.png \
        $(RES)status/audioVolumeHigh.png \
        $(RES)status/folderOpen.png \
-       $(RES)unicode/derivedGeneralCategoryStripped.txt \
-       locale/zh_CN/LC_MESSAGES/ecere.mo \
-       locale/es_ES/LC_MESSAGES/ecere.mo
+       $(RES)unicode/derivedGeneralCategoryStripped.txt
 
 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 
@@ -345,26 +338,24 @@ endif
 
 PRJ_CFLAGS += \
         $(if $(WINDOWS_TARGET), \
-                        -I../deps/DirectX-9.0/include \
-                        -I../deps/jpeg-6b \
-                        -I../deps/libpng-1.4.0 \
+                        -I../deps/jpeg-9a \
+                        -I../deps/libpng-1.6.12 \
                         -I../deps/libungif-4.1.1/lib \
-                        -I../deps/zlib \
+                        -I../deps/zlib-1.2.8 \
                         -I../deps/freetype-2.3.12/include \
                         -I../deps/glext,) \
         $(if $(LINUX_TARGET), \
-                        -I/usr/include/freetype2 \
-                        -I../deps/libungif-4.1.1/lib,) \
+                        -I/usr/include/freetype2,) \
         $(if $(OSX_TARGET), \
                         -I/usr/include/freetype2 \
-                         -I$(SYSROOT)/usr/X11/include/freetype2 \
-                         -I$(SYSROOT)/usr/X11/include \
+                        -I$(SYSROOT)/usr/X11/include/freetype2 \
+                        -I$(SYSROOT)/usr/X11/include \
                         -I/usr/X11R6/include/freetype2 \
                         -I/usr/X11R6/include \
-                        -I../deps/jpeg-6b \
+                        -I../deps/jpeg-9a \
                         -I../deps/libpng-1.4.0 \
                         -I../deps/libungif-4.1.1/lib,) \
-        $(if $(DEBUG), -g, -Os) $(FORCE_32_BIT) $(FPIC) -w \
+        $(if $(DEBUG), -g, -Os) $(FPIC) -w \
                         -DBUILDING_ECERE_COM \
                         -DECERE_STATIC \
                         -DECERE_VANILLA \
@@ -377,22 +368,21 @@ CUSTOM1_PRJ_CFLAGS = \
                         -DECERE_COM_MODULE \
         $(PRJ_CFLAGS)
 
-
+ECFLAGS += -module $(MODULE)
 ECFLAGS += \
         -nolinenumbers -defaultns ecere
 
-
 # PLATFORM-SPECIFIC OPTIONS
 
 ifdef WINDOWS_TARGET
 
 ifndef STATIC_LIBRARY_TARGET
 OFLAGS += \
-        -L../deps/zlib/obj/release.$(PLATFORM) \
-        -L../deps/jpeg-6b/obj/release.$(PLATFORM) \
-        -L../deps/libpng-1.4.0/obj/release.$(PLATFORM) \
-        -L../deps/libungif-4.1.1/obj/release.$(PLATFORM) \
-        -L../deps/freetype-2.3.12/obj/release.$(PLATFORM)
+        -L../deps/zlib-1.2.8/obj/release.$(PLATFORM)$(COMPILER_SUFFIX) \
+        -L../deps/jpeg-9a/obj/release.$(PLATFORM)$(COMPILER_SUFFIX) \
+        -L../deps/libpng-1.6.12/obj/release.$(PLATFORM)$(COMPILER_SUFFIX) \
+        -L../deps/libungif-4.1.1/obj/release.$(PLATFORM)$(COMPILER_SUFFIX) \
+        -L../deps/freetype-2.3.12/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)
 LIBS += \
        $(call _L,dxguid) \
        $(call _L,ddraw) \
@@ -416,7 +406,6 @@ ifdef LINUX_TARGET
 
 ifndef STATIC_LIBRARY_TARGET
 OFLAGS += \
-        -L../deps/libungif-4.1.1/obj/release.$(PLATFORM) \
         -L/usr/X11R6/lib
 LIBS += \
        $(call _L,ncurses) \
@@ -424,7 +413,7 @@ LIBS += \
        $(call _L,m) \
        $(call _L,dl) \
        $(call _L,fontconfig) \
-       $(call _L,ungif) \
+       $(call _L,gif) \
        $(call _L,X11) \
        $(call _L,Xext) \
        $(call _L,Xrender) \
@@ -436,10 +425,11 @@ ifdef OSX_TARGET
 
 ifndef STATIC_LIBRARY_TARGET
 OFLAGS += \
+        -L$(SYSROOT)/usr/X11/lib \
         -L/usr/X11R6/lib \
-        -L../deps/jpeg-6b/obj/release.$(PLATFORM) \
-        -L../deps/libpng-1.4.0/obj/release.$(PLATFORM) \
-        -L../deps/libungif-4.1.1/obj/release.$(PLATFORM)
+        -L../deps/jpeg-9a/obj/release.$(PLATFORM)$(COMPILER_SUFFIX) \
+        -L../deps/libpng-1.4.0/obj/release.$(PLATFORM)$(COMPILER_SUFFIX) \
+        -L../deps/libungif-4.1.1/obj/release.$(PLATFORM)$(COMPILER_SUFFIX)
 LIBS += \
        $(call _L,curses) \
        $(call _L,pthread) \
@@ -461,19 +451,15 @@ endif
 
 CECFLAGS += -cpp $(_CPP)
 
-ifndef STATIC_LIBRARY_TARGET
-OFLAGS += $(FORCE_32_BIT)
-endif
-
 # TARGETS
 
 all: objdir $(TARGET)
 
 objdir:
-       $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
+       $(if $(wildcard $(OBJ)),,$(call mkdir,$(OBJ)))
 
 $(OBJ)$(MODULE).main.ec: $(SYMBOLS) $(COBJECTS)
-       $(ECS) $(ECSLIBOPT) $(SYMBOLS) $(IMPORTS) -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(OBJ)$(MODULE).main.ec
+       $(ECS) $(ARCH_FLAGS) $(ECSLIBOPT) $(SYMBOLS) $(IMPORTS) -symbols obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX) -o $(OBJ)$(MODULE).main.ec
 
 $(OBJ)$(MODULE).main.c: $(OBJ)$(MODULE).main.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c $(OBJ)$(MODULE).main.ec -o $(OBJ)$(MODULE).main.sym -symbols $(OBJ)
@@ -504,12 +490,10 @@ endif
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)places/driveRemote.png $(RES)places/folder.png $(RES)places/folderRemote.png $(RES)places/networkServer.png $(RES)places/networkWorkgroup.png $(RES)places/brokenFolder.png "places"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)status/audioVolumeHigh.png $(RES)status/folderOpen.png "status"
        $(EAR) aw$(EARFLAGS) $(TARGET) $(RES)unicode/derivedGeneralCategoryStripped.txt "unicode"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/zh_CN/LC_MESSAGES/ecere.mo "locale/zh_CN/LC_MESSAGES"
-       $(EAR) aw$(EARFLAGS) $(TARGET) locale/es_ES/LC_MESSAGES/ecere.mo "locale/es_ES/LC_MESSAGES"
 else
        $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
 endif
-       $(call cpq,$(TARGET),../obj/$(PLATFORM)/lib/)
+       $(call cp,$(TARGET),../obj/$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/lib/)
 
 # SYMBOL RULES
 
@@ -579,7 +563,7 @@ $(OBJ)Condition.sym: src/sys/Condition.ec
 $(OBJ)BMPFormat.sym: src/gfx/bitmaps/BMPFormat.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/bitmaps/BMPFormat.ec -o $(OBJ)BMPFormat.sym
 
-ifneq "$(WINDOWS_TARGET)" ""
+ifneq ($(WINDOWS_TARGET),)
 $(OBJ)GDIDisplayDriver.sym: src/gfx/drivers/GDIDisplayDriver.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/GDIDisplayDriver.ec -o $(OBJ)GDIDisplayDriver.sym
 endif
@@ -593,22 +577,12 @@ $(OBJ)lfbConvert.sym: src/gfx/drivers/lfbConvert.ec
 $(OBJ)LFBDisplayDriver.sym: src/gfx/drivers/LFBDisplayDriver.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/LFBDisplayDriver.ec -o $(OBJ)LFBDisplayDriver.sym
 
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)NCursesDisplayDriver.sym: src/gfx/drivers/NCursesDisplayDriver.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/NCursesDisplayDriver.ec -o $(OBJ)NCursesDisplayDriver.sym
 endif
 
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)OpenGLDisplayDriver.sym: src/gfx/drivers/OpenGLDisplayDriver.ec
-       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/OpenGLDisplayDriver.ec -o $(OBJ)OpenGLDisplayDriver.sym
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaOpenGLDisplayDriver.sym: src/gfx/drivers/CocoaOpenGLDisplayDriver.ec
-       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/CocoaOpenGLDisplayDriver.ec -o $(OBJ)CocoaOpenGLDisplayDriver.sym
-endif
-
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)XDisplayDriver.sym: src/gfx/drivers/XDisplayDriver.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/XDisplayDriver.ec -o $(OBJ)XDisplayDriver.sym
 endif
@@ -706,27 +680,17 @@ $(OBJ)ReplaceDialog.sym: src/gui/dialogs/ReplaceDialog.ec
 $(OBJ)WindowList.sym: src/gui/dialogs/WindowList.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gui/dialogs/WindowList.ec -o $(OBJ)WindowList.sym
 
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaDispatch.sym: src/gui/drivers/cocoa/CocoaDispatch.ec
-       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/cocoa/CocoaDispatch.ec -o $(OBJ)CocoaDispatch.sym
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaInterface.sym: src/gui/drivers/cocoa/CocoaInterface.ec
-       $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/cocoa/CocoaInterface.ec -o $(OBJ)CocoaInterface.sym
-endif
-
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)NCursesInterface.sym: src/gui/drivers/NCursesInterface.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/NCursesInterface.ec -o $(OBJ)NCursesInterface.sym
 endif
 
-ifneq "$(WINDOWS_TARGET)" ""
+ifneq ($(WINDOWS_TARGET),)
 $(OBJ)Win32Interface.sym: src/gui/drivers/Win32Interface.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/Win32Interface.ec -o $(OBJ)Win32Interface.sym
 endif
 
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)XInterface.sym: src/gui/drivers/XInterface.ec
        $(ECP) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/XInterface.ec -o $(OBJ)XInterface.sym
 endif
@@ -877,7 +841,7 @@ $(OBJ)Condition.c: src/sys/Condition.ec $(OBJ)Condition.sym | $(SYMBOLS)
 $(OBJ)BMPFormat.c: src/gfx/bitmaps/BMPFormat.ec $(OBJ)BMPFormat.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/bitmaps/BMPFormat.ec -o $(OBJ)BMPFormat.c -symbols $(OBJ)
 
-ifneq "$(WINDOWS_TARGET)" ""
+ifneq ($(WINDOWS_TARGET),)
 $(OBJ)GDIDisplayDriver.c: src/gfx/drivers/GDIDisplayDriver.ec $(OBJ)GDIDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/GDIDisplayDriver.ec -o $(OBJ)GDIDisplayDriver.c -symbols $(OBJ)
 endif
@@ -891,22 +855,12 @@ $(OBJ)lfbConvert.c: src/gfx/drivers/lfbConvert.ec $(OBJ)lfbConvert.sym | $(SYMBO
 $(OBJ)LFBDisplayDriver.c: src/gfx/drivers/LFBDisplayDriver.ec $(OBJ)LFBDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/LFBDisplayDriver.ec -o $(OBJ)LFBDisplayDriver.c -symbols $(OBJ)
 
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)NCursesDisplayDriver.c: src/gfx/drivers/NCursesDisplayDriver.ec $(OBJ)NCursesDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/NCursesDisplayDriver.ec -o $(OBJ)NCursesDisplayDriver.c -symbols $(OBJ)
 endif
 
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)OpenGLDisplayDriver.c: src/gfx/drivers/OpenGLDisplayDriver.ec $(OBJ)OpenGLDisplayDriver.sym | $(SYMBOLS)
-       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/OpenGLDisplayDriver.ec -o $(OBJ)OpenGLDisplayDriver.c -symbols $(OBJ)
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaOpenGLDisplayDriver.c: src/gfx/drivers/CocoaOpenGLDisplayDriver.ec $(OBJ)CocoaOpenGLDisplayDriver.sym | $(SYMBOLS)
-       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/CocoaOpenGLDisplayDriver.ec -o $(OBJ)CocoaOpenGLDisplayDriver.c -symbols $(OBJ)
-endif
-
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)XDisplayDriver.c: src/gfx/drivers/XDisplayDriver.ec $(OBJ)XDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/XDisplayDriver.ec -o $(OBJ)XDisplayDriver.c -symbols $(OBJ)
 endif
@@ -1004,27 +958,17 @@ $(OBJ)ReplaceDialog.c: src/gui/dialogs/ReplaceDialog.ec $(OBJ)ReplaceDialog.sym
 $(OBJ)WindowList.c: src/gui/dialogs/WindowList.ec $(OBJ)WindowList.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gui/dialogs/WindowList.ec -o $(OBJ)WindowList.c -symbols $(OBJ)
 
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaDispatch.c: src/gui/drivers/cocoa/CocoaDispatch.ec $(OBJ)CocoaDispatch.sym | $(SYMBOLS)
-       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gui/drivers/cocoa/CocoaDispatch.ec -o $(OBJ)CocoaDispatch.c -symbols $(OBJ)
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaInterface.c: src/gui/drivers/cocoa/CocoaInterface.ec $(OBJ)CocoaInterface.sym | $(SYMBOLS)
-       $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gui/drivers/cocoa/CocoaInterface.ec -o $(OBJ)CocoaInterface.c -symbols $(OBJ)
-endif
-
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)NCursesInterface.c: src/gui/drivers/NCursesInterface.ec $(OBJ)NCursesInterface.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gui/drivers/NCursesInterface.ec -o $(OBJ)NCursesInterface.c -symbols $(OBJ)
 endif
 
-ifneq "$(WINDOWS_TARGET)" ""
+ifneq ($(WINDOWS_TARGET),)
 $(OBJ)Win32Interface.c: src/gui/drivers/Win32Interface.ec $(OBJ)Win32Interface.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gui/drivers/Win32Interface.ec -o $(OBJ)Win32Interface.c -symbols $(OBJ)
 endif
 
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)XInterface.c: src/gui/drivers/XInterface.ec $(OBJ)XInterface.sym | $(SYMBOLS)
        $(ECC) $(CFLAGS) $(CECFLAGS) $(ECFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c src/gui/drivers/XInterface.ec -o $(OBJ)XInterface.c -symbols $(OBJ)
 endif
@@ -1184,64 +1128,102 @@ $(OBJ)Condition.o: $(OBJ)Condition.c
 $(OBJ)BMPFormat.o: $(OBJ)BMPFormat.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)BMPFormat.c -o $(OBJ)BMPFormat.o
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-freetype.o: src/gfx/drivers/harfbuzz/unicode/harfbuzz-freetype.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/unicode/harfbuzz-freetype.c -o $(OBJ)harfbuzz-freetype.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-unicode-tables.o: src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode-tables.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode-tables.c -o $(OBJ)harfbuzz-unicode-tables.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-unicode.o: src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode.c -o $(OBJ)harfbuzz-unicode.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-arabic.o: src/gfx/drivers/harfbuzz/harfbuzz-arabic.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-arabic.c -o $(OBJ)harfbuzz-arabic.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-buffer.o: src/gfx/drivers/harfbuzz/harfbuzz-buffer.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-buffer.c -o $(OBJ)harfbuzz-buffer.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-gdef.o: src/gfx/drivers/harfbuzz/harfbuzz-gdef.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-gdef.c -o $(OBJ)harfbuzz-gdef.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-gpos.o: src/gfx/drivers/harfbuzz/harfbuzz-gpos.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-gpos.c -o $(OBJ)harfbuzz-gpos.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-gsub.o: src/gfx/drivers/harfbuzz/harfbuzz-gsub.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-gsub.c -o $(OBJ)harfbuzz-gsub.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-hangul.o: src/gfx/drivers/harfbuzz/harfbuzz-hangul.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-hangul.c -o $(OBJ)harfbuzz-hangul.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-hebrew.o: src/gfx/drivers/harfbuzz/harfbuzz-hebrew.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-hebrew.c -o $(OBJ)harfbuzz-hebrew.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-indic.o: src/gfx/drivers/harfbuzz/harfbuzz-indic.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-indic.c -o $(OBJ)harfbuzz-indic.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-khmer.o: src/gfx/drivers/harfbuzz/harfbuzz-khmer.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-khmer.c -o $(OBJ)harfbuzz-khmer.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-myanmar.o: src/gfx/drivers/harfbuzz/harfbuzz-myanmar.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-myanmar.c -o $(OBJ)harfbuzz-myanmar.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-open.o: src/gfx/drivers/harfbuzz/harfbuzz-open.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-open.c -o $(OBJ)harfbuzz-open.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-shaper.o: src/gfx/drivers/harfbuzz/harfbuzz-shaper.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-shaper.c -o $(OBJ)harfbuzz-shaper.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-stream.o: src/gfx/drivers/harfbuzz/harfbuzz-stream.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-stream.c -o $(OBJ)harfbuzz-stream.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-tibetan.o: src/gfx/drivers/harfbuzz/harfbuzz-tibetan.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-tibetan.c -o $(OBJ)harfbuzz-tibetan.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-impl.o: src/gfx/drivers/harfbuzz/harfbuzz-impl.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-impl.c -o $(OBJ)harfbuzz-impl.o
+endif
 
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)harfbuzz-thai.o: src/gfx/drivers/harfbuzz/harfbuzz-thai.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-thai.c -o $(OBJ)harfbuzz-thai.o
+endif
 
-ifneq "$(WINDOWS_TARGET)" ""
+ifneq ($(WINDOWS_TARGET),)
 $(OBJ)GDIDisplayDriver.o: $(OBJ)GDIDisplayDriver.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)GDIDisplayDriver.c -o $(OBJ)GDIDisplayDriver.o
 endif
@@ -1255,22 +1237,12 @@ $(OBJ)lfbConvert.o: $(OBJ)lfbConvert.c
 $(OBJ)LFBDisplayDriver.o: $(OBJ)LFBDisplayDriver.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)LFBDisplayDriver.c -o $(OBJ)LFBDisplayDriver.o
 
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)NCursesDisplayDriver.o: $(OBJ)NCursesDisplayDriver.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)NCursesDisplayDriver.c -o $(OBJ)NCursesDisplayDriver.o
 endif
 
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)OpenGLDisplayDriver.o: $(OBJ)OpenGLDisplayDriver.c
-       $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)OpenGLDisplayDriver.c -o $(OBJ)OpenGLDisplayDriver.o
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaOpenGLDisplayDriver.o: $(OBJ)CocoaOpenGLDisplayDriver.c
-       $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)CocoaOpenGLDisplayDriver.c -o $(OBJ)CocoaOpenGLDisplayDriver.o
-endif
-
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)XDisplayDriver.o: $(OBJ)XDisplayDriver.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)XDisplayDriver.c -o $(OBJ)XDisplayDriver.o
 endif
@@ -1368,37 +1340,17 @@ $(OBJ)ReplaceDialog.o: $(OBJ)ReplaceDialog.c
 $(OBJ)WindowList.o: $(OBJ)WindowList.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)WindowList.c -o $(OBJ)WindowList.o
 
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaDispatch.o: $(OBJ)CocoaDispatch.c
-       $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)CocoaDispatch.c -o $(OBJ)CocoaDispatch.o
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaEcereBridge.o: src/gui/drivers/cocoa/CocoaEcereBridge.m
-       $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/cocoa/CocoaEcereBridge.m -o $(OBJ)CocoaEcereBridge.o
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)CocoaInterface.o: $(OBJ)CocoaInterface.c
-       $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)CocoaInterface.c -o $(OBJ)CocoaInterface.o
-endif
-
-ifneq "$(OSX_TARGET)" ""
-$(OBJ)EcereView.o: src/gui/drivers/cocoa/EcereView.m
-       $(CC) $(CFLAGS) $(PRJ_CFLAGS) -c src/gui/drivers/cocoa/EcereView.m -o $(OBJ)EcereView.o
-endif
-
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)NCursesInterface.o: $(OBJ)NCursesInterface.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)NCursesInterface.c -o $(OBJ)NCursesInterface.o
 endif
 
-ifneq "$(WINDOWS_TARGET)" ""
+ifneq ($(WINDOWS_TARGET),)
 $(OBJ)Win32Interface.o: $(OBJ)Win32Interface.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)Win32Interface.c -o $(OBJ)Win32Interface.o
 endif
 
-ifneq "$(or $(LINUX_TARGET),$(OSX_TARGET))" ""
+ifneq ($(or $(LINUX_TARGET),$(OSX_TARGET)),)
 $(OBJ)XInterface.o: $(OBJ)XInterface.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)XInterface.c -o $(OBJ)XInterface.o
 endif
@@ -1487,23 +1439,40 @@ $(OBJ)instance.c.o: src/com/instance.c
 $(OBJ)$(MODULE).main$(O): $(OBJ)$(MODULE).main.c
        $(CC) $(CFLAGS) $(PRJ_CFLAGS) $(FVISIBILITY) -c $(OBJ)$(MODULE).main.c -o $(OBJ)$(MODULE).main$(O)
 
-clean: objdir
-       $(call rmq,$(OBJ)$(MODULE).main.o $(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S) $(TARGET))
-       $(call rmq,$(_OBJECTS1))
-       $(call rmq,$(_OBJECTS2))
-       $(call rmq,$(ECOBJECTS1))
-       $(call rmq,$(ECOBJECTS2))
-       $(call rmq,$(COBJECTS1))
-       $(call rmq,$(COBJECTS2))
-       $(call rmq,$(BOWLS1))
-       $(call rmq,$(BOWLS2))
-       $(call rmq,$(IMPORTS1))
-       $(call rmq,$(IMPORTS2))
-       $(call rmq,$(SYMBOLS1))
-       $(call rmq,$(SYMBOLS2))
-
-realclean: clean
-       $(call rmrq,$(OBJ))
+cleantarget: objdir
+       $(call rm,$(OBJ)$(MODULE).main.o $(OBJ)$(MODULE).main.c $(OBJ)$(MODULE).main.ec $(OBJ)$(MODULE).main$(I) $(OBJ)$(MODULE).main$(S))
+       $(call rm,$(OBJ)symbols.lst)
+       $(call rm,$(OBJ)objects.lst)
+       $(call rm,$(TARGET))
+ifdef SHARED_LIBRARY_TARGET
+ifdef LINUX_TARGET
+ifdef LINUX_HOST
+       $(call rm,$(OBJ)$(LP)$(MODULE)$(SO)$(basename $(VER)))
+       $(call rm,$(OBJ)$(LP)$(MODULE)$(SO))
+endif
+endif
+endif
+
+clean: cleantarget
+       $(call rm,$(_OBJECTS1))
+       $(call rm,$(_OBJECTS2))
+       $(call rm,$(ECOBJECTS1))
+       $(call rm,$(ECOBJECTS2))
+       $(call rm,$(COBJECTS1))
+       $(call rm,$(COBJECTS2))
+       $(call rm,$(BOWLS1))
+       $(call rm,$(BOWLS2))
+       $(call rm,$(IMPORTS1))
+       $(call rm,$(IMPORTS2))
+       $(call rm,$(SYMBOLS1))
+       $(call rm,$(SYMBOLS2))
+
+realclean: cleantarget
+       $(call rmr,$(OBJ))
 
 distclean:
-       $(call rmrq,obj/)
+       $(_MAKE) -f $(_CF_DIR)Cleanfile distclean distclean_all_subdirs
+
+Makefile.vanilla: ;
+$(_CF_DIR)crossplatform.mk: ;
+$(_CF_DIR)default.cf: ;