buildsystem,ide,epj2make; sorted out platform variables and uses. now using HOST_PLAT...
[sdk] / ecere / Makefile.vanilla
index 421b6fd..4b1811b 100644 (file)
@@ -39,32 +39,33 @@ OBJECTS1 = \
        $(OBJ)System.c.o \
        $(OBJ)i18n.o \
        $(OBJ)BMPFormat.o \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-freetype.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-unicode-tables.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-unicode.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-arabic.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-buffer.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-gdef.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-gpos.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-gsub.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-hangul.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-hebrew.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-indic.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-khmer.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-myanmar.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-open.o)
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-freetype.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-unicode-tables.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-unicode.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-arabic.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-buffer.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-gdef.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-gpos.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-gsub.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-hangul.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-hebrew.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-indic.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-khmer.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-myanmar.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-open.o)
 OBJECTS2 = \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-shaper.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-stream.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-tibetan.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-impl.o) \
-       $(if $(WINDOWS),,$(OBJ)harfbuzz-thai.o) \
-       $(if $(WINDOWS),$(OBJ)GDIDisplayDriver.o,) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-shaper.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-stream.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-tibetan.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-impl.o) \
+       $(if $(WINDOWS_TARGET),,$(OBJ)harfbuzz-thai.o) \
+       $(if $(WINDOWS_TARGET),$(OBJ)GDIDisplayDriver.o,) \
        $(OBJ)lfbBlit.o \
        $(OBJ)lfbConvert.o \
        $(OBJ)LFBDisplayDriver.o \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesDisplayDriver.o,) \
-       $(if $(LINUX),$(OBJ)XDisplayDriver.o,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesDisplayDriver.o,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaOpenGLDisplayDriver.o,) \
+       $(if $(LINUX_TARGET),$(OBJ)XDisplayDriver.o,) \
        $(OBJ)Bitmap.o \
        $(OBJ)BitmapResource.o \
        $(OBJ)Color.o \
@@ -92,14 +93,18 @@ OBJECTS2 = \
        $(OBJ)ColorPicker.o \
        $(OBJ)FileDialog.o \
        $(OBJ)FindDialog.o \
-       $(OBJ)GoToDialog.o \
-       $(OBJ)MessageBox.o \
-       $(OBJ)ReplaceDialog.o
+       $(OBJ)GoToDialog.o
 OBJECTS3 = \
+       $(OBJ)MessageBox.o \
+       $(OBJ)ReplaceDialog.o \
        $(OBJ)WindowList.o \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesInterface.o,) \
-       $(if $(WINDOWS),$(OBJ)Win32Interface.o,) \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)XInterface.o,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaDispatch.o,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaEcereBridge.o,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaInterface.o,) \
+       $(if $(OSX_TARGET),$(OBJ)EcereView.o,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesInterface.o,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)Win32Interface.o,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)XInterface.o,) \
        $(OBJ)WindowsSkin.o \
        $(OBJ)Anchor.o \
        $(OBJ)ClipBoard.o \
@@ -152,12 +157,13 @@ COBJECTS1 = \
        $(OBJ)units.c \
        $(OBJ)i18n.c \
        $(OBJ)BMPFormat.c \
-       $(if $(WINDOWS),$(OBJ)GDIDisplayDriver.c,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)GDIDisplayDriver.c,) \
        $(OBJ)lfbBlit.c \
        $(OBJ)lfbConvert.c \
        $(OBJ)LFBDisplayDriver.c \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesDisplayDriver.c,) \
-       $(if $(LINUX),$(OBJ)XDisplayDriver.c,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesDisplayDriver.c,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaOpenGLDisplayDriver.c,) \
+       $(if $(LINUX_TARGET),$(OBJ)XDisplayDriver.c,) \
        $(OBJ)Bitmap.c \
        $(OBJ)BitmapResource.c \
        $(OBJ)Color.c \
@@ -175,10 +181,10 @@ COBJECTS1 = \
        $(OBJ)ListBox.c \
        $(OBJ)Menu.c \
        $(OBJ)Picture.c \
-       $(OBJ)ProgressBar.c \
-       $(OBJ)ScrollBar.c \
-       $(OBJ)StatusBar.c
+       $(OBJ)ProgressBar.c
 COBJECTS2 = \
+       $(OBJ)ScrollBar.c \
+       $(OBJ)StatusBar.c \
        $(OBJ)Stacker.c \
        $(OBJ)PathBox.c \
        $(OBJ)ToolTip.c \
@@ -190,9 +196,11 @@ COBJECTS2 = \
        $(OBJ)MessageBox.c \
        $(OBJ)ReplaceDialog.c \
        $(OBJ)WindowList.c \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesInterface.c,) \
-       $(if $(WINDOWS),$(OBJ)Win32Interface.c,) \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)XInterface.c,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaDispatch.c,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaInterface.c,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesInterface.c,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)Win32Interface.c,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)XInterface.c,) \
        $(OBJ)WindowsSkin.c \
        $(OBJ)Anchor.c \
        $(OBJ)ClipBoard.c \
@@ -220,7 +228,7 @@ COBJECTS2 = \
        $(OBJ)String.c \
        $(OBJ)OldList.c
 
-SYMBOLS = $(SYMBOLS1) $(SYMBOLS2)
+SYMBOLS = $(SYMBOLS1) $(SYMBOLS2) $(SYMBOLS3)
 SYMBOLS1 = \
        $(OBJ)Archive.sym \
        $(OBJ)BufferedFile.sym \
@@ -243,12 +251,13 @@ SYMBOLS1 = \
        $(OBJ)units.sym \
        $(OBJ)i18n.sym \
        $(OBJ)BMPFormat.sym \
-       $(if $(WINDOWS),$(OBJ)GDIDisplayDriver.sym,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)GDIDisplayDriver.sym,) \
        $(OBJ)lfbBlit.sym \
        $(OBJ)lfbConvert.sym \
        $(OBJ)LFBDisplayDriver.sym \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesDisplayDriver.sym,) \
-       $(if $(LINUX),$(OBJ)XDisplayDriver.sym,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesDisplayDriver.sym,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaOpenGLDisplayDriver.sym,) \
+       $(if $(LINUX_TARGET),$(OBJ)XDisplayDriver.sym,) \
        $(OBJ)Bitmap.sym \
        $(OBJ)BitmapResource.sym \
        $(OBJ)Color.sym \
@@ -264,9 +273,9 @@ SYMBOLS1 = \
        $(OBJ)EditBox.sym \
        $(OBJ)Label.sym \
        $(OBJ)ListBox.sym \
-       $(OBJ)Menu.sym \
-       $(OBJ)Picture.sym
+       $(OBJ)Menu.sym
 SYMBOLS2 = \
+       $(OBJ)Picture.sym \
        $(OBJ)ProgressBar.sym \
        $(OBJ)ScrollBar.sym \
        $(OBJ)StatusBar.sym \
@@ -281,9 +290,11 @@ SYMBOLS2 = \
        $(OBJ)MessageBox.sym \
        $(OBJ)ReplaceDialog.sym \
        $(OBJ)WindowList.sym \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesInterface.sym,) \
-       $(if $(WINDOWS),$(OBJ)Win32Interface.sym,) \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)XInterface.sym,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaDispatch.sym,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaInterface.sym,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesInterface.sym,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)Win32Interface.sym,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)XInterface.sym,) \
        $(OBJ)WindowsSkin.sym \
        $(OBJ)Anchor.sym \
        $(OBJ)ClipBoard.sym \
@@ -305,13 +316,14 @@ SYMBOLS2 = \
        $(OBJ)List.sym \
        $(OBJ)Map.sym \
        $(OBJ)BinaryTree.sym \
-       $(OBJ)BTNode.sym \
+       $(OBJ)BTNode.sym
+SYMBOLS3 = \
        $(OBJ)dataTypes.sym \
        $(OBJ)instance.sym \
        $(OBJ)String.sym \
        $(OBJ)OldList.sym
 
-IMPORTS = $(IMPORTS1) $(IMPORTS2)
+IMPORTS = $(IMPORTS1) $(IMPORTS2) $(IMPORTS3)
 IMPORTS1 = \
        $(OBJ)Archive.imp \
        $(OBJ)BufferedFile.imp \
@@ -334,12 +346,13 @@ IMPORTS1 = \
        $(OBJ)units.imp \
        $(OBJ)i18n.imp \
        $(OBJ)BMPFormat.imp \
-       $(if $(WINDOWS),$(OBJ)GDIDisplayDriver.imp,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)GDIDisplayDriver.imp,) \
        $(OBJ)lfbBlit.imp \
        $(OBJ)lfbConvert.imp \
        $(OBJ)LFBDisplayDriver.imp \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesDisplayDriver.imp,) \
-       $(if $(LINUX),$(OBJ)XDisplayDriver.imp,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesDisplayDriver.imp,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaOpenGLDisplayDriver.imp,) \
+       $(if $(LINUX_TARGET),$(OBJ)XDisplayDriver.imp,) \
        $(OBJ)Bitmap.imp \
        $(OBJ)BitmapResource.imp \
        $(OBJ)Color.imp \
@@ -355,9 +368,9 @@ IMPORTS1 = \
        $(OBJ)EditBox.imp \
        $(OBJ)Label.imp \
        $(OBJ)ListBox.imp \
-       $(OBJ)Menu.imp \
-       $(OBJ)Picture.imp
+       $(OBJ)Menu.imp
 IMPORTS2 = \
+       $(OBJ)Picture.imp \
        $(OBJ)ProgressBar.imp \
        $(OBJ)ScrollBar.imp \
        $(OBJ)StatusBar.imp \
@@ -372,9 +385,11 @@ IMPORTS2 = \
        $(OBJ)MessageBox.imp \
        $(OBJ)ReplaceDialog.imp \
        $(OBJ)WindowList.imp \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)NCursesInterface.imp,) \
-       $(if $(WINDOWS),$(OBJ)Win32Interface.imp,) \
-       $(if $(or $(LINUX),$(OSX)),$(OBJ)XInterface.imp,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaDispatch.imp,) \
+       $(if $(OSX_TARGET),$(OBJ)CocoaInterface.imp,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)NCursesInterface.imp,) \
+       $(if $(WINDOWS_TARGET),$(OBJ)Win32Interface.imp,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),$(OBJ)XInterface.imp,) \
        $(OBJ)WindowsSkin.imp \
        $(OBJ)Anchor.imp \
        $(OBJ)ClipBoard.imp \
@@ -396,7 +411,8 @@ IMPORTS2 = \
        $(OBJ)List.imp \
        $(OBJ)Map.imp \
        $(OBJ)BinaryTree.imp \
-       $(OBJ)BTNode.imp \
+       $(OBJ)BTNode.imp
+IMPORTS3 = \
        $(OBJ)dataTypes.imp \
        $(OBJ)instance.imp \
        $(OBJ)String.imp \
@@ -428,32 +444,33 @@ SOURCES1 = \
        src/sys/System.c \
        src/sys/i18n.ec \
        src/gfx/bitmaps/BMPFormat.ec \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/unicode/harfbuzz-freetype.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode-tables.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-arabic.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-buffer.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-gdef.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-gpos.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-gsub.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-hangul.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-hebrew.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-indic.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-khmer.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-myanmar.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-open.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-shaper.c)
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/unicode/harfbuzz-freetype.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode-tables.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/unicode/harfbuzz-unicode.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-arabic.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-buffer.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-gdef.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-gpos.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-gsub.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-hangul.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-hebrew.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-indic.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-khmer.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-myanmar.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-open.c) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-shaper.c)
 SOURCES2 = \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-stream.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-tibetan.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-impl.c) \
-       $(if $(WINDOWS),,src/gfx/drivers/harfbuzz/harfbuzz-thai.c) \
-       $(if $(WINDOWS),src/gfx/drivers/GDIDisplayDriver.ec,) \
+       $(if $(WINDOWS_TARGET),,src/gfx/drivers/harfbuzz/harfbuzz-stream.c) \
+       $(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 $(WINDOWS_TARGET),src/gfx/drivers/GDIDisplayDriver.ec,) \
        src/gfx/drivers/lfbBlit.ec \
        src/gfx/drivers/lfbConvert.ec \
        src/gfx/drivers/LFBDisplayDriver.ec \
-       $(if $(or $(LINUX),$(OSX)),src/gfx/drivers/NCursesDisplayDriver.ec,) \
-       $(if $(LINUX),src/gfx/drivers/XDisplayDriver.ec,) \
+       $(if $(or $(LINUX_TARGET),$(OSX_TARGET)),src/gfx/drivers/NCursesDisplayDriver.ec,) \
+       $(if $(OSX_TARGET),src/gfx/drivers/CocoaOpenGLDisplayDriver.ec,) \
+       $(if $(LINUX_TARGET),src/gfx/drivers/XDisplayDriver.ec,) \
        src/gfx/Bitmap.ec \
        src/gfx/BitmapResource.ec \
        src/gfx/Color.ec \
@@ -483,12 +500,16 @@ SOURCES2 = \
        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
+       src/gui/dialogs/ReplaceDialog.ec
 SOURCES3 = \
-       $(if $(or $(LINUX),$(OSX)),src/gui/drivers/NCursesInterface.ec,) \
-       $(if $(WINDOWS),src/gui/drivers/Win32Interface.ec,) \
-       $(if $(or $(LINUX),$(OSX)),src/gui/drivers/XInterface.ec,) \
+       src/gui/dialogs/WindowList.ec \
+       $(if $(OSX_TARGET),src/gui/drivers/cocoa/CocoaDispatch.ec,) \
+       $(if $(OSX_TARGET),src/gui/drivers/cocoa/CocoaEcereBridge.m,) \
+       $(if $(OSX_TARGET),src/gui/drivers/cocoa/CocoaInterface.ec,) \
+       $(if $(OSX_TARGET),src/gui/drivers/cocoa/EcereView.m,) \
+       $(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,) \
        src/gui/skins/WindowsSkin.ec \
        src/gui/Anchor.ec \
        src/gui/ClipBoard.ec \
@@ -619,10 +640,17 @@ RESOURCES3 = \
        $(RES)places/brokenFolder.png \
        $(RES)status/audioVolumeHigh.png \
        $(RES)status/folderOpen.png \
-       $(RES)unicode/derivedGeneralCategoryStripped.txt
+       $(RES)unicode/derivedGeneralCategoryStripped.txt \
+       locale/zh_CN/LC_MESSAGES/ecere.mo
+
+ifndef DEBIAN_PACKAGE
+CFLAGS =
+endif
+OFLAGS =
 
 # CROSS-PLATFORM MAGIC
 
+include ../crossplatform.mk
 include ../include.mk
 
 # TOOLCHAIN
@@ -634,7 +662,7 @@ EAR := $(call psep,../obj/$(PLATFORM)/bin/ear)
 
 # FLAGS
 
-CFLAGS = -fmessage-length=0 -Os -m32 $(FPIC) -w \
+CFLAGS += -fmessage-length=0 -Os -m32 $(FPIC) -w \
         -DBUILDING_ECERE_COM -DECERE_STATIC -DECERE_VANILLA -DNOBLENDING \
         -Isrc/gfx/drivers/harfbuzz
 
@@ -647,17 +675,17 @@ LIBS = $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
 UPXFLAGS = -9 -q
 
 # HARD CODED PLATFORM-SPECIFIC OPTIONS
-ifdef LINUX
+ifdef LINUX_TARGET
 OFLAGS += -Wl,--no-undefined
 endif
 
-ifdef OSX
+ifdef OSX_TARGET
 OFLAGS += -framework cocoa -framework OpenGL
 endif
 
 # PLATFORM-SPECIFIC OPTIONS
 
-ifdef WINDOWS
+ifdef WINDOWS_TARGET
 
 CFLAGS += \
         -I../deps/DirectX-9.0/include \
@@ -669,14 +697,14 @@ CFLAGS += \
         -I../deps/glext
 
 else
-ifdef LINUX
+ifdef LINUX_TARGET
 
 CFLAGS += \
         -I/usr/include/freetype2 \
         -I../deps/libungif-4.1.1/lib
 
 else
-ifdef OSX
+ifdef OSX_TARGET
 
 CFLAGS += \
         -I/usr/include/freetype2 \
@@ -770,7 +798,7 @@ $(OBJ)units.sym: src/sys/units.ec
        $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/units.ec -o $(OBJ)units.sym
 
 $(OBJ)i18n.sym: src/sys/i18n.ec
-       $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/i18n.ec -o $(OBJ)i18n.sym
+       $(ECP) -DECERE_COM_MODULE $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/sys/i18n.ec -o $(OBJ)i18n.sym
 
 $(OBJ)BMPFormat.sym: src/gfx/bitmaps/BMPFormat.ec
        $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/BMPFormat.ec -o $(OBJ)BMPFormat.sym
@@ -790,6 +818,9 @@ $(OBJ)LFBDisplayDriver.sym: src/gfx/drivers/LFBDisplayDriver.ec
 $(OBJ)NCursesDisplayDriver.sym: src/gfx/drivers/NCursesDisplayDriver.ec
        $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/NCursesDisplayDriver.ec -o $(OBJ)NCursesDisplayDriver.sym
 
+$(OBJ)CocoaOpenGLDisplayDriver.sym: src/gfx/drivers/CocoaOpenGLDisplayDriver.ec
+       $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/CocoaOpenGLDisplayDriver.ec -o $(OBJ)CocoaOpenGLDisplayDriver.sym
+
 $(OBJ)XDisplayDriver.sym: src/gfx/drivers/XDisplayDriver.ec
        $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/XDisplayDriver.ec -o $(OBJ)XDisplayDriver.sym
 
@@ -886,6 +917,12 @@ $(OBJ)ReplaceDialog.sym: src/gui/dialogs/ReplaceDialog.ec
 $(OBJ)WindowList.sym: src/gui/dialogs/WindowList.ec
        $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/WindowList.ec -o $(OBJ)WindowList.sym
 
+$(OBJ)CocoaDispatch.sym: src/gui/drivers/cocoa/CocoaDispatch.ec
+       $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/cocoa/CocoaDispatch.ec -o $(OBJ)CocoaDispatch.sym
+
+$(OBJ)CocoaInterface.sym: src/gui/drivers/cocoa/CocoaInterface.ec
+       $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/cocoa/CocoaInterface.ec -o $(OBJ)CocoaInterface.sym
+
 $(OBJ)NCursesInterface.sym: src/gui/drivers/NCursesInterface.ec
        $(ECP) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/NCursesInterface.ec -o $(OBJ)NCursesInterface.sym
 
@@ -1033,7 +1070,7 @@ $(OBJ)units.c: src/sys/units.ec $(OBJ)units.sym | $(SYMBOLS)
        $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/units.ec -o $(OBJ)units.c -symbols $(OBJ)
 
 $(OBJ)i18n.c: src/sys/i18n.ec $(OBJ)i18n.sym | $(SYMBOLS)
-       $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/i18n.ec -o $(OBJ)i18n.c -symbols $(OBJ)
+       $(ECC) -DECERE_COM_MODULE $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/sys/i18n.ec -o $(OBJ)i18n.c -symbols $(OBJ)
 
 $(OBJ)BMPFormat.c: src/gfx/bitmaps/BMPFormat.ec $(OBJ)BMPFormat.sym | $(SYMBOLS)
        $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gfx/bitmaps/BMPFormat.ec -o $(OBJ)BMPFormat.c -symbols $(OBJ)
@@ -1053,6 +1090,9 @@ $(OBJ)LFBDisplayDriver.c: src/gfx/drivers/LFBDisplayDriver.ec $(OBJ)LFBDisplayDr
 $(OBJ)NCursesDisplayDriver.c: src/gfx/drivers/NCursesDisplayDriver.ec $(OBJ)NCursesDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/NCursesDisplayDriver.ec -o $(OBJ)NCursesDisplayDriver.c -symbols $(OBJ)
 
+$(OBJ)CocoaOpenGLDisplayDriver.c: src/gfx/drivers/CocoaOpenGLDisplayDriver.ec $(OBJ)CocoaOpenGLDisplayDriver.sym | $(SYMBOLS)
+       $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/CocoaOpenGLDisplayDriver.ec -o $(OBJ)CocoaOpenGLDisplayDriver.c -symbols $(OBJ)
+
 $(OBJ)XDisplayDriver.c: src/gfx/drivers/XDisplayDriver.ec $(OBJ)XDisplayDriver.sym | $(SYMBOLS)
        $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gfx/drivers/XDisplayDriver.ec -o $(OBJ)XDisplayDriver.c -symbols $(OBJ)
 
@@ -1149,6 +1189,12 @@ $(OBJ)ReplaceDialog.c: src/gui/dialogs/ReplaceDialog.ec $(OBJ)ReplaceDialog.sym
 $(OBJ)WindowList.c: src/gui/dialogs/WindowList.ec $(OBJ)WindowList.sym | $(SYMBOLS)
        $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gui/dialogs/WindowList.ec -o $(OBJ)WindowList.c -symbols $(OBJ)
 
+$(OBJ)CocoaDispatch.c: src/gui/drivers/cocoa/CocoaDispatch.ec $(OBJ)CocoaDispatch.sym | $(SYMBOLS)
+       $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gui/drivers/cocoa/CocoaDispatch.ec -o $(OBJ)CocoaDispatch.c -symbols $(OBJ)
+
+$(OBJ)CocoaInterface.c: src/gui/drivers/cocoa/CocoaInterface.ec $(OBJ)CocoaInterface.sym | $(SYMBOLS)
+       $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gui/drivers/cocoa/CocoaInterface.ec -o $(OBJ)CocoaInterface.c -symbols $(OBJ)
+
 $(OBJ)NCursesInterface.c: src/gui/drivers/NCursesInterface.ec $(OBJ)NCursesInterface.sym | $(SYMBOLS)
        $(ECC) $(CECFLAGS) $(ECFLAGS) $(CFLAGS) $(FVISIBILITY) -c src/gui/drivers/NCursesInterface.ec -o $(OBJ)NCursesInterface.c -symbols $(OBJ)
 
@@ -1305,7 +1351,7 @@ $(OBJ)System.c.o: src/sys/System.c
        $(CC) $(CFLAGS) -c src/sys/System.c -o $(OBJ)System.c.o
 
 $(OBJ)i18n.o: $(OBJ)i18n.c
-       $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)i18n.c -o $(OBJ)i18n.o
+       $(CC) -DECERE_COM_MODULE $(CFLAGS) $(FVISIBILITY) -c $(OBJ)i18n.c -o $(OBJ)i18n.o
 
 $(OBJ)BMPFormat.o: $(OBJ)BMPFormat.c
        $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)BMPFormat.c -o $(OBJ)BMPFormat.o
@@ -1382,6 +1428,9 @@ $(OBJ)LFBDisplayDriver.o: $(OBJ)LFBDisplayDriver.c
 $(OBJ)NCursesDisplayDriver.o: $(OBJ)NCursesDisplayDriver.c
        $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)NCursesDisplayDriver.c -o $(OBJ)NCursesDisplayDriver.o
 
+$(OBJ)CocoaOpenGLDisplayDriver.o: $(OBJ)CocoaOpenGLDisplayDriver.c
+       $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)CocoaOpenGLDisplayDriver.c -o $(OBJ)CocoaOpenGLDisplayDriver.o
+
 $(OBJ)XDisplayDriver.o: $(OBJ)XDisplayDriver.c
        $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)XDisplayDriver.c -o $(OBJ)XDisplayDriver.o
 
@@ -1478,6 +1527,18 @@ $(OBJ)ReplaceDialog.o: $(OBJ)ReplaceDialog.c
 $(OBJ)WindowList.o: $(OBJ)WindowList.c
        $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)WindowList.c -o $(OBJ)WindowList.o
 
+$(OBJ)CocoaDispatch.o: $(OBJ)CocoaDispatch.c
+       $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)CocoaDispatch.c -o $(OBJ)CocoaDispatch.o
+
+$(OBJ)CocoaEcereBridge.o: src/gui/drivers/cocoa/CocoaEcereBridge.m
+       $(CC) $(CFLAGS) -c src/gui/drivers/cocoa/CocoaEcereBridge.m -o $(OBJ)CocoaEcereBridge.o
+
+$(OBJ)CocoaInterface.o: $(OBJ)CocoaInterface.c
+       $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)CocoaInterface.c -o $(OBJ)CocoaInterface.o
+
+$(OBJ)EcereView.o: src/gui/drivers/cocoa/EcereView.m
+       $(CC) $(CFLAGS) -c src/gui/drivers/cocoa/EcereView.m -o $(OBJ)EcereView.o
+
 $(OBJ)NCursesInterface.o: $(OBJ)NCursesInterface.c
        $(CC) $(CFLAGS) $(FVISIBILITY) -c $(OBJ)NCursesInterface.c -o $(OBJ)NCursesInterface.o
 
@@ -1580,8 +1641,10 @@ clean: objdir
        $(call rmq,$(COBJECTS2))
        $(call rmq,$(IMPORTS1))
        $(call rmq,$(IMPORTS2))
+       $(call rmq,$(IMPORTS3))
        $(call rmq,$(SYMBOLS1))
        $(call rmq,$(SYMBOLS2))
+       $(call rmq,$(SYMBOLS3))
 
 realclean:
        $(call rmrq,$(OBJ))