export LD_LIBRARY_PATH = ../lib/
CC = gcc
EAR = ../bin/ear
ECP = ../bootstrap/bin/ecp
ECC = ../bootstrap/bin/ecc
ECS = ../bootstrap/bin/ecs
ECFLAGS = -defaultns ecere
CFLAGS = -isystem /usr/X11R6/include/ -fmessage-length=0 -O2 -ffast-math -fvisibility=hidden -w -fPIC -Isrc/gfx/drivers/harfbuzz -DBUILDING_ECERE_COM
OFLAGS = -L/usr/X11R6/lib/
LIBS = -lX11 -lXext -lGL -lcurses -lpthread -lm -lXrender -lfontconfig -ljpeg -lpng -lz -lgif -lfreetype -shared
OBJECTS = \
	release/Archive.o release/BufferedFile.o release/Date.o release/DualPipe.o \
	release/EARArchive.o release/File.o release/FileMonitor.o release/GlobalAppSettings.o \
	release/memory.o release/Mutex.o release/Semaphore.o release/System.o release/TempFile.o \
	release/Thread.o release/Time.o release/unicode.o release/units.o release/_File.o \
	release/_DualPipe.o release/_System.o release/Cube.o release/SkyBox.o release/Sphere.o \
	release/Object3DSFormat.o release/Camera.o release/Matrix.o release/Mesh.o release/Object.o \
	release/Plane.o release/Quaternion.o release/Vector3D.o release/BMPFormat.o \
	release/GIFFormat.o release/JPEGFormat.o release/PCXFormat.o release/PNGFormat.o \
	release/RGBFormat.o release/harfbuzz-arabic.o release/harfbuzz-buffer.o \
	release/harfbuzz-gdef.o release/harfbuzz-global.o release/harfbuzz-gpos.o \
	release/harfbuzz-gsub.o release/harfbuzz-hangul.o release/harfbuzz-hebrew.o \
	release/harfbuzz-indic.o release/harfbuzz-khmer.o release/harfbuzz-myanmar.o \
	release/harfbuzz-open.o release/harfbuzz-shaper.o release/harfbuzz-stream.o \
	release/harfbuzz-tibetan.o release/Direct3D8DisplayDriver.o \
	release/Direct3D9DisplayDriver.o release/DirectDrawDisplayDriver.o \
	release/GDIDisplayDriver.o release/lfbBlit.o release/lfbConvert.o \
	release/LFBDisplayDriver.o release/NCursesDisplayDriver.o \
	release/OpenGLDisplayDriver.o release/Win32BitmapPrinterDisplayDriver.o \
	release/Win32ConsoleDisplayDriver.o release/Win32PrinterDisplayDriver.o \
	release/XDisplayDriver.o release/Bitmap.o release/BitmapResource.o release/Color.o \
	release/Display.o release/DisplaySystem.o release/FontResource.o release/Resource.o \
	release/Surface.o release/Button.o release/CalendarControl.o release/DataBox.o \
	release/DropBox.o release/EditBox.o release/Label.o release/ListBox.o release/Menu.o \
	release/Picture.o release/ProgressBar.o release/ScrollBar.o release/StatusBar.o \
	release/TabControl.o release/ColorPicker.o release/FileDialog.o release/FindDialog.o \
	release/GoToDialog.o release/MessageBox.o release/ReplaceDialog.o release/WindowList.o \
	release/NCursesInterface.o release/Win32Interface.o release/Win32ConsoleInterface.o \
	release/XInterface.o release/TVisionSkin.o release/WindowsSkin.o release/Anchor.o \
	release/ClipBoard.o release/Cursor.o release/Desktop3D.o release/FormDesigner.o \
	release/GuiApplication.o release/Interface.o release/Key.o release/Skin.o release/Timer.o \
	release/typeEdit.o release/Window.o release/dcom.o release/HTTPFile.o release/network.o \
	release/NetworkClientFile.o release/Service.o release/Socket.o release/Array.o \
	release/AVLTree.o release/BuiltInContainer.o release/Container.o release/CustomAVLTree.o \
	release/LinkList.o release/List.o release/Map.o release/BinaryTree.o release/BTNode.o \
	release/dataTypes.o release/instance.o release/String.o release/OldList.o release/_instance.o release/ecere.main.o

COBJECTS = \
	release/Archive.c release/BufferedFile.c release/Date.c release/DualPipe.c \
	release/EARArchive.c release/File.c release/FileMonitor.c release/GlobalAppSettings.c \
	release/memory.c release/Mutex.c release/Semaphore.c release/System.c release/TempFile.c \
	release/Thread.c release/Time.c release/unicode.c release/units.c release/Cube.c release/SkyBox.c \
	release/Sphere.c release/Object3DSFormat.c release/Camera.c release/Matrix.c release/Mesh.c \
	release/Object.c release/Plane.c release/Quaternion.c release/Vector3D.c release/BMPFormat.c \
	release/GIFFormat.c release/JPEGFormat.c release/PCXFormat.c release/PNGFormat.c \
	release/RGBFormat.c release/Direct3D8DisplayDriver.c release/Direct3D9DisplayDriver.c \
	release/DirectDrawDisplayDriver.c release/GDIDisplayDriver.c release/lfbBlit.c \
	release/lfbConvert.c release/LFBDisplayDriver.c release/NCursesDisplayDriver.c \
	release/OpenGLDisplayDriver.c release/Win32BitmapPrinterDisplayDriver.c \
	release/Win32ConsoleDisplayDriver.c release/Win32PrinterDisplayDriver.c \
	release/XDisplayDriver.c release/Bitmap.c release/BitmapResource.c release/Color.c \
	release/Display.c release/DisplaySystem.c release/FontResource.c release/Resource.c \
	release/Surface.c release/Button.c release/CalendarControl.c release/DataBox.c \
	release/DropBox.c release/EditBox.c release/Label.c release/ListBox.c release/Menu.c \
	release/Picture.c release/ProgressBar.c release/ScrollBar.c release/StatusBar.c \
	release/TabControl.c release/ColorPicker.c release/FileDialog.c release/FindDialog.c \
	release/GoToDialog.c release/MessageBox.c release/ReplaceDialog.c release/WindowList.c \
	release/NCursesInterface.c release/Win32Interface.c release/Win32ConsoleInterface.c \
	release/XInterface.c release/TVisionSkin.c release/WindowsSkin.c release/Anchor.c \
	release/ClipBoard.c release/Cursor.c release/Desktop3D.c release/FormDesigner.c \
	release/GuiApplication.c release/Interface.c release/Key.c release/Skin.c release/Timer.c \
	release/typeEdit.c release/Window.c release/dcom.c release/HTTPFile.c release/network.c \
	release/NetworkClientFile.c release/Service.c release/Socket.c release/Array.c \
	release/AVLTree.c release/BuiltInContainer.c release/Container.c release/CustomAVLTree.c \
	release/LinkList.c release/List.c release/Map.c release/BinaryTree.c release/BTNode.c \
	release/dataTypes.c release/instance.c release/String.c release/OldList.c 

SYMBOLS = \
	release/Archive.sym release/BufferedFile.sym release/Date.sym release/DualPipe.sym \
	release/EARArchive.sym release/File.sym release/FileMonitor.sym \
	release/GlobalAppSettings.sym release/memory.sym release/Mutex.sym release/Semaphore.sym \
	release/System.sym release/TempFile.sym release/Thread.sym release/Time.sym \
	release/unicode.sym release/units.sym release/Cube.sym release/SkyBox.sym release/Sphere.sym \
	release/Object3DSFormat.sym release/Camera.sym release/Matrix.sym release/Mesh.sym \
	release/Object.sym release/Plane.sym release/Quaternion.sym release/Vector3D.sym \
	release/BMPFormat.sym release/GIFFormat.sym release/JPEGFormat.sym release/PCXFormat.sym \
	release/PNGFormat.sym release/RGBFormat.sym release/Direct3D8DisplayDriver.sym \
	release/Direct3D9DisplayDriver.sym release/DirectDrawDisplayDriver.sym \
	release/GDIDisplayDriver.sym release/lfbBlit.sym release/lfbConvert.sym \
	release/LFBDisplayDriver.sym release/NCursesDisplayDriver.sym \
	release/OpenGLDisplayDriver.sym release/Win32BitmapPrinterDisplayDriver.sym \
	release/Win32ConsoleDisplayDriver.sym release/Win32PrinterDisplayDriver.sym \
	release/XDisplayDriver.sym release/Bitmap.sym release/BitmapResource.sym release/Color.sym \
	release/Display.sym release/DisplaySystem.sym release/FontResource.sym \
	release/Resource.sym release/Surface.sym release/Button.sym release/CalendarControl.sym \
	release/DataBox.sym release/DropBox.sym release/EditBox.sym release/Label.sym \
	release/ListBox.sym release/Menu.sym release/Picture.sym release/ProgressBar.sym \
	release/ScrollBar.sym release/StatusBar.sym release/TabControl.sym release/ColorPicker.sym \
	release/FileDialog.sym release/FindDialog.sym release/GoToDialog.sym \
	release/MessageBox.sym release/ReplaceDialog.sym release/WindowList.sym \
	release/NCursesInterface.sym release/Win32Interface.sym \
	release/Win32ConsoleInterface.sym release/XInterface.sym release/TVisionSkin.sym \
	release/WindowsSkin.sym release/Anchor.sym release/ClipBoard.sym release/Cursor.sym \
	release/Desktop3D.sym release/FormDesigner.sym release/GuiApplication.sym \
	release/Interface.sym release/Key.sym release/Skin.sym release/Timer.sym release/typeEdit.sym \
	release/Window.sym release/dcom.sym release/HTTPFile.sym release/network.sym \
	release/NetworkClientFile.sym release/Service.sym release/Socket.sym release/Array.sym \
	release/AVLTree.sym release/BuiltInContainer.sym release/Container.sym \
	release/CustomAVLTree.sym release/LinkList.sym release/List.sym release/Map.sym \
	release/BinaryTree.sym release/BTNode.sym release/dataTypes.sym release/instance.sym \
	release/String.sym release/OldList.sym 

IMPORTS = \
	release/Archive.imp release/BufferedFile.imp release/Date.imp release/DualPipe.imp \
	release/EARArchive.imp release/File.imp release/FileMonitor.imp \
	release/GlobalAppSettings.imp release/memory.imp release/Mutex.imp release/Semaphore.imp \
	release/System.imp release/TempFile.imp release/Thread.imp release/Time.imp \
	release/unicode.imp release/units.imp release/Cube.imp release/SkyBox.imp release/Sphere.imp \
	release/Object3DSFormat.imp release/Camera.imp release/Matrix.imp release/Mesh.imp \
	release/Object.imp release/Plane.imp release/Quaternion.imp release/Vector3D.imp \
	release/BMPFormat.imp release/GIFFormat.imp release/JPEGFormat.imp release/PCXFormat.imp \
	release/PNGFormat.imp release/RGBFormat.imp release/Direct3D8DisplayDriver.imp \
	release/Direct3D9DisplayDriver.imp release/DirectDrawDisplayDriver.imp \
	release/GDIDisplayDriver.imp release/lfbBlit.imp release/lfbConvert.imp \
	release/LFBDisplayDriver.imp release/NCursesDisplayDriver.imp \
	release/OpenGLDisplayDriver.imp release/Win32BitmapPrinterDisplayDriver.imp \
	release/Win32ConsoleDisplayDriver.imp release/Win32PrinterDisplayDriver.imp \
	release/XDisplayDriver.imp release/Bitmap.imp release/BitmapResource.imp release/Color.imp \
	release/Display.imp release/DisplaySystem.imp release/FontResource.imp \
	release/Resource.imp release/Surface.imp release/Button.imp release/CalendarControl.imp \
	release/DataBox.imp release/DropBox.imp release/EditBox.imp release/Label.imp \
	release/ListBox.imp release/Menu.imp release/Picture.imp release/ProgressBar.imp \
	release/ScrollBar.imp release/StatusBar.imp release/TabControl.imp release/ColorPicker.imp \
	release/FileDialog.imp release/FindDialog.imp release/GoToDialog.imp \
	release/MessageBox.imp release/ReplaceDialog.imp release/WindowList.imp \
	release/NCursesInterface.imp release/Win32Interface.imp \
	release/Win32ConsoleInterface.imp release/XInterface.imp release/TVisionSkin.imp \
	release/WindowsSkin.imp release/Anchor.imp release/ClipBoard.imp release/Cursor.imp \
	release/Desktop3D.imp release/FormDesigner.imp release/GuiApplication.imp \
	release/Interface.imp release/Key.imp release/Skin.imp release/Timer.imp release/typeEdit.imp \
	release/Window.imp release/dcom.imp release/HTTPFile.imp release/network.imp \
	release/NetworkClientFile.imp release/Service.imp release/Socket.imp release/Array.imp \
	release/AVLTree.imp release/BuiltInContainer.imp release/Container.imp \
	release/CustomAVLTree.imp release/LinkList.imp release/List.imp release/Map.imp \
	release/BinaryTree.imp release/BTNode.imp release/dataTypes.imp release/instance.imp \
	release/String.imp release/OldList.imp 

RESOURCES = \
	Resources/actions/editFind.png Resources/actions/folderNew.png \
	Resources/actions/goDown.png Resources/actions/goHome.png \
	Resources/actions/goNext.png Resources/actions/goPrevious.png \
	Resources/actions/goUp.png Resources/actions/listAdd.png \
	Resources/actions/listRemove.png Resources/actions/viewRefresh.png \
	Resources/actions/windowNew.png Resources/constructs/class.png \
	Resources/constructs/data.png Resources/constructs/dataPrivate.png \
	Resources/constructs/dataType.png Resources/constructs/enum.png \
	Resources/constructs/enumValue.png Resources/constructs/event.png \
	Resources/constructs/library.png Resources/constructs/method.png \
	Resources/constructs/methodPrivate.png Resources/constructs/namespace.png \
	Resources/constructs/property.png Resources/constructs/propertyPrivate.png \
	Resources/controls/button.png Resources/controls/calendar.png \
	Resources/controls/checkBox.png Resources/controls/dataBox.png \
	Resources/controls/dropBox.png Resources/controls/editBox.png \
	Resources/controls/groupBox.png Resources/controls/label.png \
	Resources/controls/listBox.png Resources/controls/menu.png \
	Resources/controls/optionBox.png Resources/controls/progressBar.png \
	Resources/controls/scrollBarHorizontal.png \
	Resources/controls/scrollBarVertical.png Resources/controls/statusBar.png \
	Resources/cursors/arrow.png Resources/cursors/cross.png \
	Resources/cursors/iBeam.png Resources/cursors/move.png \
	Resources/cursors/sizeEastWest.png \
	Resources/cursors/sizeNortEastSouthWest.png \
	Resources/cursors/sizeNorthSouth.png \
	Resources/cursors/sizeNortWestSouthEast.png Resources/devices/computer.png \
	Resources/devices/driveHardDisk.png \
	Resources/devices/driveRemovableMedia.png \
	Resources/devices/mediaFloppy.png Resources/devices/mediaOptical.png \
	Resources/elements/areaClose.png Resources/elements/areaMaximize.png \
	Resources/elements/areaMinimize.png Resources/elements/areaRestore.png \
	Resources/elements/arrowDown.png Resources/elements/arrowLeft.png \
	Resources/elements/arrowRight.png Resources/elements/arrowUp.png \
	Resources/elements/checkBoxChecked.png \
	Resources/elements/checkBoxDisabled.png \
	Resources/elements/checkBoxDisabledChecked.png \
	Resources/elements/checkBox.png Resources/elements/optionBoxDisabled.png \
	Resources/elements/optionBoxDisabledSelected.png \
	Resources/elements/optionBoxDown.png \
	Resources/elements/optionBoxSelectedDown.png \
	Resources/elements/optionBoxSelectedUp.png \
	Resources/elements/optionBoxUp.png Resources/elements/orderAscending.png \
	Resources/elements/orderCategorized.png \
	Resources/elements/orderDescending.png Resources/emblems/unreadable.png \
	Resources/mimeTypes/file.png Resources/mimeTypes/image.png \
	Resources/mimeTypes/package.png Resources/mimeTypes/packageOpticalDisc.png \
	Resources/mimeTypes/packageSoftware.png Resources/mimeTypes/text.png \
	Resources/mimeTypes/textCHeader.png Resources/mimeTypes/textCSource.png \
	Resources/mimeTypes/textC++Header.png \
	Resources/mimeTypes/textC++Source.png \
	Resources/mimeTypes/textEcereHeader.png \
	Resources/mimeTypes/textEcereProject.png \
	Resources/mimeTypes/textEcereSource.png \
	Resources/mimeTypes/textEcereWorkspace.png \
	Resources/mimeTypes/textHyperTextMarkup.png \
	Resources/places/driveRemote.png Resources/places/folder.png \
	Resources/places/folderRemote.png Resources/places/networkServer.png \
	Resources/places/networkWorkgroup.png Resources/status/audioVolumeHigh.png \
	Resources/status/folderOpen.png \
	Resources/unicode/derivedGeneralCategoryStripped.txt

all: release/libecere.so ecereCOM/libecereCOM.so

release/ecere.main.ec: $(SYMBOLS) $(COBJECTS)
	$(ECS) -dynamiclib $(SYMBOLS) $(IMPORTS) -symbols release -o release/ecere.main.ec

release/ecere.main.c: release/ecere.main.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c release/ecere.main.ec -o release/ecere.main.sym -symbols release
	$(ECC) $(ECFLAGS) $(CFLAGS) -c release/ecere.main.ec -o release/ecere.main.c -symbols release

ecereCOM/libecereCOM.so:
	@echo Building Core eC runtime...
	make -f Makefile.ecereCOM

release/libecere.so:  $(SYMBOLS) $(OBJECTS) $(RESOURCES)
	$(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o release/libecere.so
	strip release/libecere.so
	cp release/libecere.so ../lib/
	@echo Building Ecere Archiver...
	cd ../ear && make
	$(EAR) aw release/libecere.so Resources/actions/editFind.png Resources/actions/folderNew.png Resources/actions/goDown.png Resources/actions/goHome.png Resources/actions/goNext.png Resources/actions/goPrevious.png Resources/actions/goUp.png Resources/actions/listAdd.png Resources/actions/listRemove.png Resources/actions/viewRefresh.png "actions"
	$(EAR) aw release/libecere.so Resources/actions/windowNew.png "actions"
	$(EAR) aw release/libecere.so Resources/constructs/class.png Resources/constructs/data.png Resources/constructs/dataPrivate.png Resources/constructs/dataType.png Resources/constructs/enum.png Resources/constructs/enumValue.png Resources/constructs/event.png Resources/constructs/library.png Resources/constructs/method.png Resources/constructs/methodPrivate.png "constructs"
	$(EAR) aw release/libecere.so Resources/constructs/namespace.png Resources/constructs/property.png Resources/constructs/propertyPrivate.png "constructs"
	$(EAR) aw release/libecere.so Resources/controls/button.png Resources/controls/calendar.png Resources/controls/checkBox.png Resources/controls/dataBox.png Resources/controls/dropBox.png Resources/controls/editBox.png Resources/controls/groupBox.png Resources/controls/label.png Resources/controls/listBox.png Resources/controls/menu.png "controls"
	$(EAR) aw release/libecere.so Resources/controls/optionBox.png Resources/controls/progressBar.png Resources/controls/scrollBarHorizontal.png Resources/controls/scrollBarVertical.png Resources/controls/statusBar.png "controls"
	$(EAR) aw release/libecere.so Resources/cursors/arrow.png Resources/cursors/cross.png Resources/cursors/iBeam.png Resources/cursors/move.png Resources/cursors/sizeEastWest.png Resources/cursors/sizeNortEastSouthWest.png Resources/cursors/sizeNorthSouth.png Resources/cursors/sizeNortWestSouthEast.png "cursors"
	$(EAR) aw release/libecere.so Resources/devices/computer.png Resources/devices/driveHardDisk.png Resources/devices/driveRemovableMedia.png Resources/devices/mediaFloppy.png Resources/devices/mediaOptical.png "devices"
	$(EAR) aw release/libecere.so Resources/elements/areaClose.png Resources/elements/areaMaximize.png Resources/elements/areaMinimize.png Resources/elements/areaRestore.png Resources/elements/arrowDown.png Resources/elements/arrowLeft.png Resources/elements/arrowRight.png Resources/elements/arrowUp.png Resources/elements/checkBoxChecked.png Resources/elements/checkBoxDisabled.png "elements"
	$(EAR) aw release/libecere.so Resources/elements/checkBoxDisabledChecked.png Resources/elements/checkBox.png Resources/elements/optionBoxDisabled.png Resources/elements/optionBoxDisabledSelected.png Resources/elements/optionBoxDown.png Resources/elements/optionBoxSelectedDown.png Resources/elements/optionBoxSelectedUp.png Resources/elements/optionBoxUp.png Resources/elements/orderAscending.png Resources/elements/orderCategorized.png "elements"
	$(EAR) aw release/libecere.so Resources/elements/orderDescending.png "elements"
	$(EAR) aw release/libecere.so Resources/emblems/unreadable.png "emblems"
	$(EAR) aw release/libecere.so Resources/mimeTypes/file.png Resources/mimeTypes/image.png Resources/mimeTypes/package.png Resources/mimeTypes/packageOpticalDisc.png Resources/mimeTypes/packageSoftware.png Resources/mimeTypes/text.png Resources/mimeTypes/textCHeader.png Resources/mimeTypes/textCSource.png Resources/mimeTypes/textC++Header.png Resources/mimeTypes/textC++Source.png "mimeTypes"
	$(EAR) aw release/libecere.so Resources/mimeTypes/textEcereHeader.png Resources/mimeTypes/textEcereProject.png Resources/mimeTypes/textEcereSource.png Resources/mimeTypes/textEcereWorkspace.png Resources/mimeTypes/textHyperTextMarkup.png "mimeTypes"
	$(EAR) aw release/libecere.so Resources/places/driveRemote.png Resources/places/folder.png Resources/places/folderRemote.png Resources/places/networkServer.png Resources/places/networkWorkgroup.png "places"
	$(EAR) aw release/libecere.so Resources/status/audioVolumeHigh.png Resources/status/folderOpen.png "status"
	$(EAR) aw release/libecere.so Resources/unicode/derivedGeneralCategoryStripped.txt "unicode"
	cp release/libecere.so ../lib/

# SYMBOL RULES

release/Archive.sym: src/sys/Archive.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/Archive.ec -o release/Archive.sym

release/BufferedFile.sym: src/sys/BufferedFile.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/BufferedFile.ec -o release/BufferedFile.sym

release/Date.sym: src/sys/Date.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/Date.ec -o release/Date.sym

release/DualPipe.sym: src/sys/DualPipe.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/DualPipe.ec -o release/DualPipe.sym

release/EARArchive.sym: src/sys/EARArchive.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/EARArchive.ec -o release/EARArchive.sym

release/File.sym: src/sys/File.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/File.ec -o release/File.sym

release/FileMonitor.sym: src/sys/FileMonitor.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/FileMonitor.ec -o release/FileMonitor.sym

release/GlobalAppSettings.sym: src/sys/GlobalAppSettings.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/GlobalAppSettings.ec -o release/GlobalAppSettings.sym

release/memory.sym: src/sys/memory.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/memory.ec -o release/memory.sym

release/Mutex.sym: src/sys/Mutex.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/Mutex.ec -o release/Mutex.sym

release/Semaphore.sym: src/sys/Semaphore.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/Semaphore.ec -o release/Semaphore.sym

release/System.sym: src/sys/System.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/System.ec -o release/System.sym

release/TempFile.sym: src/sys/TempFile.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/TempFile.ec -o release/TempFile.sym

release/Thread.sym: src/sys/Thread.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/Thread.ec -o release/Thread.sym

release/Time.sym: src/sys/Time.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/Time.ec -o release/Time.sym

release/unicode.sym: src/sys/unicode.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/unicode.ec -o release/unicode.sym

release/units.sym: src/sys/units.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/sys/units.ec -o release/units.sym

release/Cube.sym: src/gfx/3D/meshes/Cube.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/Cube.ec -o release/Cube.sym

release/SkyBox.sym: src/gfx/3D/meshes/SkyBox.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/SkyBox.ec -o release/SkyBox.sym

release/Sphere.sym: src/gfx/3D/meshes/Sphere.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/Sphere.ec -o release/Sphere.sym

release/Object3DSFormat.sym: src/gfx/3D/models/Object3DSFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/models/Object3DSFormat.ec -o release/Object3DSFormat.sym

release/Camera.sym: src/gfx/3D/Camera.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Camera.ec -o release/Camera.sym

release/Matrix.sym: src/gfx/3D/Matrix.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Matrix.ec -o release/Matrix.sym

release/Mesh.sym: src/gfx/3D/Mesh.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Mesh.ec -o release/Mesh.sym

release/Object.sym: src/gfx/3D/Object.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Object.ec -o release/Object.sym

release/Plane.sym: src/gfx/3D/Plane.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Plane.ec -o release/Plane.sym

release/Quaternion.sym: src/gfx/3D/Quaternion.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Quaternion.ec -o release/Quaternion.sym

release/Vector3D.sym: src/gfx/3D/Vector3D.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Vector3D.ec -o release/Vector3D.sym

release/BMPFormat.sym: src/gfx/bitmaps/BMPFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/BMPFormat.ec -o release/BMPFormat.sym

release/GIFFormat.sym: src/gfx/bitmaps/GIFFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/GIFFormat.ec -o release/GIFFormat.sym

release/JPEGFormat.sym: src/gfx/bitmaps/JPEGFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/JPEGFormat.ec -o release/JPEGFormat.sym

release/PCXFormat.sym: src/gfx/bitmaps/PCXFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/PCXFormat.ec -o release/PCXFormat.sym

release/PNGFormat.sym: src/gfx/bitmaps/PNGFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/PNGFormat.ec -o release/PNGFormat.sym

release/RGBFormat.sym: src/gfx/bitmaps/RGBFormat.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/RGBFormat.ec -o release/RGBFormat.sym

release/Direct3D8DisplayDriver.sym: src/gfx/drivers/Direct3D8DisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Direct3D8DisplayDriver.ec -o release/Direct3D8DisplayDriver.sym

release/Direct3D9DisplayDriver.sym: src/gfx/drivers/Direct3D9DisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Direct3D9DisplayDriver.ec -o release/Direct3D9DisplayDriver.sym

release/DirectDrawDisplayDriver.sym: src/gfx/drivers/DirectDrawDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/DirectDrawDisplayDriver.ec -o release/DirectDrawDisplayDriver.sym

release/GDIDisplayDriver.sym: src/gfx/drivers/GDIDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/GDIDisplayDriver.ec -o release/GDIDisplayDriver.sym

release/lfbBlit.sym: src/gfx/drivers/lfbBlit.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/lfbBlit.ec -o release/lfbBlit.sym

release/lfbConvert.sym: src/gfx/drivers/lfbConvert.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/lfbConvert.ec -o release/lfbConvert.sym

release/LFBDisplayDriver.sym: src/gfx/drivers/LFBDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/LFBDisplayDriver.ec -o release/LFBDisplayDriver.sym

release/NCursesDisplayDriver.sym: src/gfx/drivers/NCursesDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/NCursesDisplayDriver.ec -o release/NCursesDisplayDriver.sym

release/OpenGLDisplayDriver.sym: src/gfx/drivers/OpenGLDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/OpenGLDisplayDriver.ec -o release/OpenGLDisplayDriver.sym

release/Win32BitmapPrinterDisplayDriver.sym: src/gfx/drivers/Win32BitmapPrinterDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Win32BitmapPrinterDisplayDriver.ec -o release/Win32BitmapPrinterDisplayDriver.sym

release/Win32ConsoleDisplayDriver.sym: src/gfx/drivers/Win32ConsoleDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Win32ConsoleDisplayDriver.ec -o release/Win32ConsoleDisplayDriver.sym

release/Win32PrinterDisplayDriver.sym: src/gfx/drivers/Win32PrinterDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Win32PrinterDisplayDriver.ec -o release/Win32PrinterDisplayDriver.sym

release/XDisplayDriver.sym: src/gfx/drivers/XDisplayDriver.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/XDisplayDriver.ec -o release/XDisplayDriver.sym

release/Bitmap.sym: src/gfx/Bitmap.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/Bitmap.ec -o release/Bitmap.sym

release/BitmapResource.sym: src/gfx/BitmapResource.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/BitmapResource.ec -o release/BitmapResource.sym

release/Color.sym: src/gfx/Color.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/Color.ec -o release/Color.sym

release/Display.sym: src/gfx/Display.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/Display.ec -o release/Display.sym

release/DisplaySystem.sym: src/gfx/DisplaySystem.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/DisplaySystem.ec -o release/DisplaySystem.sym

release/FontResource.sym: src/gfx/FontResource.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/FontResource.ec -o release/FontResource.sym

release/Resource.sym: src/gfx/Resource.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/Resource.ec -o release/Resource.sym

release/Surface.sym: src/gfx/Surface.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gfx/Surface.ec -o release/Surface.sym

release/Button.sym: src/gui/controls/Button.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Button.ec -o release/Button.sym

release/CalendarControl.sym: src/gui/controls/CalendarControl.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/CalendarControl.ec -o release/CalendarControl.sym

release/DataBox.sym: src/gui/controls/DataBox.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/DataBox.ec -o release/DataBox.sym

release/DropBox.sym: src/gui/controls/DropBox.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/DropBox.ec -o release/DropBox.sym

release/EditBox.sym: src/gui/controls/EditBox.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/EditBox.ec -o release/EditBox.sym

release/Label.sym: src/gui/controls/Label.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Label.ec -o release/Label.sym

release/ListBox.sym: src/gui/controls/ListBox.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/ListBox.ec -o release/ListBox.sym

release/Menu.sym: src/gui/controls/Menu.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Menu.ec -o release/Menu.sym

release/Picture.sym: src/gui/controls/Picture.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Picture.ec -o release/Picture.sym

release/ProgressBar.sym: src/gui/controls/ProgressBar.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/ProgressBar.ec -o release/ProgressBar.sym

release/ScrollBar.sym: src/gui/controls/ScrollBar.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/ScrollBar.ec -o release/ScrollBar.sym

release/StatusBar.sym: src/gui/controls/StatusBar.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/StatusBar.ec -o release/StatusBar.sym

release/TabControl.sym: src/gui/controls/TabControl.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/TabControl.ec -o release/TabControl.sym

release/ColorPicker.sym: src/gui/dialogs/ColorPicker.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/ColorPicker.ec -o release/ColorPicker.sym

release/FileDialog.sym: src/gui/dialogs/FileDialog.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/FileDialog.ec -o release/FileDialog.sym

release/FindDialog.sym: src/gui/dialogs/FindDialog.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/FindDialog.ec -o release/FindDialog.sym

release/GoToDialog.sym: src/gui/dialogs/GoToDialog.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/GoToDialog.ec -o release/GoToDialog.sym

release/MessageBox.sym: src/gui/dialogs/MessageBox.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/MessageBox.ec -o release/MessageBox.sym

release/ReplaceDialog.sym: src/gui/dialogs/ReplaceDialog.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/ReplaceDialog.ec -o release/ReplaceDialog.sym

release/WindowList.sym: src/gui/dialogs/WindowList.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/WindowList.ec -o release/WindowList.sym

release/NCursesInterface.sym: src/gui/drivers/NCursesInterface.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/NCursesInterface.ec -o release/NCursesInterface.sym

release/Win32Interface.sym: src/gui/drivers/Win32Interface.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/Win32Interface.ec -o release/Win32Interface.sym

release/Win32ConsoleInterface.sym: src/gui/drivers/Win32ConsoleInterface.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/Win32ConsoleInterface.ec -o release/Win32ConsoleInterface.sym

release/XInterface.sym: src/gui/drivers/XInterface.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/XInterface.ec -o release/XInterface.sym

release/TVisionSkin.sym: src/gui/skins/TVisionSkin.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/skins/TVisionSkin.ec -o release/TVisionSkin.sym

release/WindowsSkin.sym: src/gui/skins/WindowsSkin.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/skins/WindowsSkin.ec -o release/WindowsSkin.sym

release/Anchor.sym: src/gui/Anchor.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Anchor.ec -o release/Anchor.sym

release/ClipBoard.sym: src/gui/ClipBoard.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/ClipBoard.ec -o release/ClipBoard.sym

release/Cursor.sym: src/gui/Cursor.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Cursor.ec -o release/Cursor.sym

release/Desktop3D.sym: src/gui/Desktop3D.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Desktop3D.ec -o release/Desktop3D.sym

release/FormDesigner.sym: src/gui/FormDesigner.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/FormDesigner.ec -o release/FormDesigner.sym

release/GuiApplication.sym: src/gui/GuiApplication.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/GuiApplication.ec -o release/GuiApplication.sym

release/Interface.sym: src/gui/Interface.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Interface.ec -o release/Interface.sym

release/Key.sym: src/gui/Key.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Key.ec -o release/Key.sym

release/Skin.sym: src/gui/Skin.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Skin.ec -o release/Skin.sym

release/Timer.sym: src/gui/Timer.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Timer.ec -o release/Timer.sym

release/typeEdit.sym: src/gui/typeEdit.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/typeEdit.ec -o release/typeEdit.sym

release/Window.sym: src/gui/Window.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/gui/Window.ec -o release/Window.sym

release/dcom.sym: src/net/dcom.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/net/dcom.ec -o release/dcom.sym

release/HTTPFile.sym: src/net/HTTPFile.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/net/HTTPFile.ec -o release/HTTPFile.sym

release/network.sym: src/net/network.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/net/network.ec -o release/network.sym

release/NetworkClientFile.sym: src/net/NetworkClientFile.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/net/NetworkClientFile.ec -o release/NetworkClientFile.sym

release/Service.sym: src/net/Service.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/net/Service.ec -o release/Service.sym

release/Socket.sym: src/net/Socket.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/net/Socket.ec -o release/Socket.sym

release/Array.sym: src/com/containers/Array.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/Array.ec -o release/Array.sym

release/AVLTree.sym: src/com/containers/AVLTree.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/AVLTree.ec -o release/AVLTree.sym

release/BuiltInContainer.sym: src/com/containers/BuiltInContainer.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/BuiltInContainer.ec -o release/BuiltInContainer.sym

release/Container.sym: src/com/containers/Container.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/Container.ec -o release/Container.sym

release/CustomAVLTree.sym: src/com/containers/CustomAVLTree.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/CustomAVLTree.ec -o release/CustomAVLTree.sym

release/LinkList.sym: src/com/containers/LinkList.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/LinkList.ec -o release/LinkList.sym

release/List.sym: src/com/containers/List.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/List.ec -o release/List.sym

release/Map.sym: src/com/containers/Map.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/containers/Map.ec -o release/Map.sym

release/BinaryTree.sym: src/com/BinaryTree.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/BinaryTree.ec -o release/BinaryTree.sym

release/BTNode.sym: src/com/BTNode.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/BTNode.ec -o release/BTNode.sym

release/dataTypes.sym: src/com/dataTypes.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/dataTypes.ec -o release/dataTypes.sym

release/instance.sym: src/com/instance.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/instance.ec -o release/instance.sym

release/String.sym: src/com/String.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/String.ec -o release/String.sym

release/OldList.sym: src/com/OldList.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c src/com/OldList.ec -o release/OldList.sym

# C OBJECT RULES

release/Archive.c: src/sys/Archive.ec release/Archive.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/Archive.ec -o release/Archive.c -symbols release

release/BufferedFile.c: src/sys/BufferedFile.ec release/BufferedFile.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/BufferedFile.ec -o release/BufferedFile.c -symbols release

release/Date.c: src/sys/Date.ec release/Date.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/Date.ec -o release/Date.c -symbols release

release/DualPipe.c: src/sys/DualPipe.ec release/DualPipe.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/DualPipe.ec -o release/DualPipe.c -symbols release

release/EARArchive.c: src/sys/EARArchive.ec release/EARArchive.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/EARArchive.ec -o release/EARArchive.c -symbols release

release/File.c: src/sys/File.ec release/File.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/File.ec -o release/File.c -symbols release

release/FileMonitor.c: src/sys/FileMonitor.ec release/FileMonitor.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/FileMonitor.ec -o release/FileMonitor.c -symbols release

release/GlobalAppSettings.c: src/sys/GlobalAppSettings.ec release/GlobalAppSettings.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/GlobalAppSettings.ec -o release/GlobalAppSettings.c -symbols release

release/memory.c: src/sys/memory.ec release/memory.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/memory.ec -o release/memory.c -symbols release

release/Mutex.c: src/sys/Mutex.ec release/Mutex.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/Mutex.ec -o release/Mutex.c -symbols release

release/Semaphore.c: src/sys/Semaphore.ec release/Semaphore.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/Semaphore.ec -o release/Semaphore.c -symbols release

release/System.c: src/sys/System.ec release/System.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/System.ec -o release/System.c -symbols release

release/TempFile.c: src/sys/TempFile.ec release/TempFile.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/TempFile.ec -o release/TempFile.c -symbols release

release/Thread.c: src/sys/Thread.ec release/Thread.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/Thread.ec -o release/Thread.c -symbols release

release/Time.c: src/sys/Time.ec release/Time.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/Time.ec -o release/Time.c -symbols release

release/unicode.c: src/sys/unicode.ec release/unicode.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/unicode.ec -o release/unicode.c -symbols release

release/units.c: src/sys/units.ec release/units.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/sys/units.ec -o release/units.c -symbols release

release/Cube.c: src/gfx/3D/meshes/Cube.ec release/Cube.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/Cube.ec -o release/Cube.c -symbols release

release/SkyBox.c: src/gfx/3D/meshes/SkyBox.ec release/SkyBox.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/SkyBox.ec -o release/SkyBox.c -symbols release

release/Sphere.c: src/gfx/3D/meshes/Sphere.ec release/Sphere.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/meshes/Sphere.ec -o release/Sphere.c -symbols release

release/Object3DSFormat.c: src/gfx/3D/models/Object3DSFormat.ec release/Object3DSFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/models/Object3DSFormat.ec -o release/Object3DSFormat.c -symbols release

release/Camera.c: src/gfx/3D/Camera.ec release/Camera.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Camera.ec -o release/Camera.c -symbols release

release/Matrix.c: src/gfx/3D/Matrix.ec release/Matrix.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Matrix.ec -o release/Matrix.c -symbols release

release/Mesh.c: src/gfx/3D/Mesh.ec release/Mesh.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Mesh.ec -o release/Mesh.c -symbols release

release/Object.c: src/gfx/3D/Object.ec release/Object.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Object.ec -o release/Object.c -symbols release

release/Plane.c: src/gfx/3D/Plane.ec release/Plane.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Plane.ec -o release/Plane.c -symbols release

release/Quaternion.c: src/gfx/3D/Quaternion.ec release/Quaternion.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Quaternion.ec -o release/Quaternion.c -symbols release

release/Vector3D.c: src/gfx/3D/Vector3D.ec release/Vector3D.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/3D/Vector3D.ec -o release/Vector3D.c -symbols release

release/BMPFormat.c: src/gfx/bitmaps/BMPFormat.ec release/BMPFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/BMPFormat.ec -o release/BMPFormat.c -symbols release

release/GIFFormat.c: src/gfx/bitmaps/GIFFormat.ec release/GIFFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/GIFFormat.ec -o release/GIFFormat.c -symbols release

release/JPEGFormat.c: src/gfx/bitmaps/JPEGFormat.ec release/JPEGFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/JPEGFormat.ec -o release/JPEGFormat.c -symbols release

release/PCXFormat.c: src/gfx/bitmaps/PCXFormat.ec release/PCXFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/PCXFormat.ec -o release/PCXFormat.c -symbols release

release/PNGFormat.c: src/gfx/bitmaps/PNGFormat.ec release/PNGFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/PNGFormat.ec -o release/PNGFormat.c -symbols release

release/RGBFormat.c: src/gfx/bitmaps/RGBFormat.ec release/RGBFormat.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/bitmaps/RGBFormat.ec -o release/RGBFormat.c -symbols release

release/Direct3D8DisplayDriver.c: src/gfx/drivers/Direct3D8DisplayDriver.ec release/Direct3D8DisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Direct3D8DisplayDriver.ec -o release/Direct3D8DisplayDriver.c -symbols release

release/Direct3D9DisplayDriver.c: src/gfx/drivers/Direct3D9DisplayDriver.ec release/Direct3D9DisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Direct3D9DisplayDriver.ec -o release/Direct3D9DisplayDriver.c -symbols release

release/DirectDrawDisplayDriver.c: src/gfx/drivers/DirectDrawDisplayDriver.ec release/DirectDrawDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/DirectDrawDisplayDriver.ec -o release/DirectDrawDisplayDriver.c -symbols release

release/GDIDisplayDriver.c: src/gfx/drivers/GDIDisplayDriver.ec release/GDIDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/GDIDisplayDriver.ec -o release/GDIDisplayDriver.c -symbols release

release/lfbBlit.c: src/gfx/drivers/lfbBlit.ec release/lfbBlit.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/lfbBlit.ec -o release/lfbBlit.c -symbols release

release/lfbConvert.c: src/gfx/drivers/lfbConvert.ec release/lfbConvert.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/lfbConvert.ec -o release/lfbConvert.c -symbols release

release/LFBDisplayDriver.c: src/gfx/drivers/LFBDisplayDriver.ec release/LFBDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/LFBDisplayDriver.ec -o release/LFBDisplayDriver.c -symbols release

release/NCursesDisplayDriver.c: src/gfx/drivers/NCursesDisplayDriver.ec release/NCursesDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/NCursesDisplayDriver.ec -o release/NCursesDisplayDriver.c -symbols release

release/OpenGLDisplayDriver.c: src/gfx/drivers/OpenGLDisplayDriver.ec release/OpenGLDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/OpenGLDisplayDriver.ec -o release/OpenGLDisplayDriver.c -symbols release

release/Win32BitmapPrinterDisplayDriver.c: src/gfx/drivers/Win32BitmapPrinterDisplayDriver.ec release/Win32BitmapPrinterDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Win32BitmapPrinterDisplayDriver.ec -o release/Win32BitmapPrinterDisplayDriver.c -symbols release

release/Win32ConsoleDisplayDriver.c: src/gfx/drivers/Win32ConsoleDisplayDriver.ec release/Win32ConsoleDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Win32ConsoleDisplayDriver.ec -o release/Win32ConsoleDisplayDriver.c -symbols release

release/Win32PrinterDisplayDriver.c: src/gfx/drivers/Win32PrinterDisplayDriver.ec release/Win32PrinterDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/Win32PrinterDisplayDriver.ec -o release/Win32PrinterDisplayDriver.c -symbols release

release/XDisplayDriver.c: src/gfx/drivers/XDisplayDriver.ec release/XDisplayDriver.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/drivers/XDisplayDriver.ec -o release/XDisplayDriver.c -symbols release

release/Bitmap.c: src/gfx/Bitmap.ec release/Bitmap.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/Bitmap.ec -o release/Bitmap.c -symbols release

release/BitmapResource.c: src/gfx/BitmapResource.ec release/BitmapResource.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/BitmapResource.ec -o release/BitmapResource.c -symbols release

release/Color.c: src/gfx/Color.ec release/Color.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/Color.ec -o release/Color.c -symbols release

release/Display.c: src/gfx/Display.ec release/Display.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/Display.ec -o release/Display.c -symbols release

release/DisplaySystem.c: src/gfx/DisplaySystem.ec release/DisplaySystem.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/DisplaySystem.ec -o release/DisplaySystem.c -symbols release

release/FontResource.c: src/gfx/FontResource.ec release/FontResource.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/FontResource.ec -o release/FontResource.c -symbols release

release/Resource.c: src/gfx/Resource.ec release/Resource.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/Resource.ec -o release/Resource.c -symbols release

release/Surface.c: src/gfx/Surface.ec release/Surface.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gfx/Surface.ec -o release/Surface.c -symbols release

release/Button.c: src/gui/controls/Button.ec release/Button.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Button.ec -o release/Button.c -symbols release

release/CalendarControl.c: src/gui/controls/CalendarControl.ec release/CalendarControl.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/CalendarControl.ec -o release/CalendarControl.c -symbols release

release/DataBox.c: src/gui/controls/DataBox.ec release/DataBox.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/DataBox.ec -o release/DataBox.c -symbols release

release/DropBox.c: src/gui/controls/DropBox.ec release/DropBox.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/DropBox.ec -o release/DropBox.c -symbols release

release/EditBox.c: src/gui/controls/EditBox.ec release/EditBox.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/EditBox.ec -o release/EditBox.c -symbols release

release/Label.c: src/gui/controls/Label.ec release/Label.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Label.ec -o release/Label.c -symbols release

release/ListBox.c: src/gui/controls/ListBox.ec release/ListBox.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/ListBox.ec -o release/ListBox.c -symbols release

release/Menu.c: src/gui/controls/Menu.ec release/Menu.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Menu.ec -o release/Menu.c -symbols release

release/Picture.c: src/gui/controls/Picture.ec release/Picture.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/Picture.ec -o release/Picture.c -symbols release

release/ProgressBar.c: src/gui/controls/ProgressBar.ec release/ProgressBar.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/ProgressBar.ec -o release/ProgressBar.c -symbols release

release/ScrollBar.c: src/gui/controls/ScrollBar.ec release/ScrollBar.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/ScrollBar.ec -o release/ScrollBar.c -symbols release

release/StatusBar.c: src/gui/controls/StatusBar.ec release/StatusBar.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/StatusBar.ec -o release/StatusBar.c -symbols release

release/TabControl.c: src/gui/controls/TabControl.ec release/TabControl.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/controls/TabControl.ec -o release/TabControl.c -symbols release

release/ColorPicker.c: src/gui/dialogs/ColorPicker.ec release/ColorPicker.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/ColorPicker.ec -o release/ColorPicker.c -symbols release

release/FileDialog.c: src/gui/dialogs/FileDialog.ec release/FileDialog.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/FileDialog.ec -o release/FileDialog.c -symbols release

release/FindDialog.c: src/gui/dialogs/FindDialog.ec release/FindDialog.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/FindDialog.ec -o release/FindDialog.c -symbols release

release/GoToDialog.c: src/gui/dialogs/GoToDialog.ec release/GoToDialog.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/GoToDialog.ec -o release/GoToDialog.c -symbols release

release/MessageBox.c: src/gui/dialogs/MessageBox.ec release/MessageBox.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/MessageBox.ec -o release/MessageBox.c -symbols release

release/ReplaceDialog.c: src/gui/dialogs/ReplaceDialog.ec release/ReplaceDialog.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/ReplaceDialog.ec -o release/ReplaceDialog.c -symbols release

release/WindowList.c: src/gui/dialogs/WindowList.ec release/WindowList.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/dialogs/WindowList.ec -o release/WindowList.c -symbols release

release/NCursesInterface.c: src/gui/drivers/NCursesInterface.ec release/NCursesInterface.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/NCursesInterface.ec -o release/NCursesInterface.c -symbols release

release/Win32Interface.c: src/gui/drivers/Win32Interface.ec release/Win32Interface.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/Win32Interface.ec -o release/Win32Interface.c -symbols release

release/Win32ConsoleInterface.c: src/gui/drivers/Win32ConsoleInterface.ec release/Win32ConsoleInterface.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/Win32ConsoleInterface.ec -o release/Win32ConsoleInterface.c -symbols release

release/XInterface.c: src/gui/drivers/XInterface.ec release/XInterface.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/drivers/XInterface.ec -o release/XInterface.c -symbols release

release/TVisionSkin.c: src/gui/skins/TVisionSkin.ec release/TVisionSkin.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/skins/TVisionSkin.ec -o release/TVisionSkin.c -symbols release

release/WindowsSkin.c: src/gui/skins/WindowsSkin.ec release/WindowsSkin.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/skins/WindowsSkin.ec -o release/WindowsSkin.c -symbols release

release/Anchor.c: src/gui/Anchor.ec release/Anchor.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Anchor.ec -o release/Anchor.c -symbols release

release/ClipBoard.c: src/gui/ClipBoard.ec release/ClipBoard.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/ClipBoard.ec -o release/ClipBoard.c -symbols release

release/Cursor.c: src/gui/Cursor.ec release/Cursor.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Cursor.ec -o release/Cursor.c -symbols release

release/Desktop3D.c: src/gui/Desktop3D.ec release/Desktop3D.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Desktop3D.ec -o release/Desktop3D.c -symbols release

release/FormDesigner.c: src/gui/FormDesigner.ec release/FormDesigner.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/FormDesigner.ec -o release/FormDesigner.c -symbols release

release/GuiApplication.c: src/gui/GuiApplication.ec release/GuiApplication.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/GuiApplication.ec -o release/GuiApplication.c -symbols release

release/Interface.c: src/gui/Interface.ec release/Interface.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Interface.ec -o release/Interface.c -symbols release

release/Key.c: src/gui/Key.ec release/Key.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Key.ec -o release/Key.c -symbols release

release/Skin.c: src/gui/Skin.ec release/Skin.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Skin.ec -o release/Skin.c -symbols release

release/Timer.c: src/gui/Timer.ec release/Timer.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Timer.ec -o release/Timer.c -symbols release

release/typeEdit.c: src/gui/typeEdit.ec release/typeEdit.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/typeEdit.ec -o release/typeEdit.c -symbols release

release/Window.c: src/gui/Window.ec release/Window.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/gui/Window.ec -o release/Window.c -symbols release

release/dcom.c: src/net/dcom.ec release/dcom.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/net/dcom.ec -o release/dcom.c -symbols release

release/HTTPFile.c: src/net/HTTPFile.ec release/HTTPFile.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/net/HTTPFile.ec -o release/HTTPFile.c -symbols release

release/network.c: src/net/network.ec release/network.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/net/network.ec -o release/network.c -symbols release

release/NetworkClientFile.c: src/net/NetworkClientFile.ec release/NetworkClientFile.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/net/NetworkClientFile.ec -o release/NetworkClientFile.c -symbols release

release/Service.c: src/net/Service.ec release/Service.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/net/Service.ec -o release/Service.c -symbols release

release/Socket.c: src/net/Socket.ec release/Socket.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/net/Socket.ec -o release/Socket.c -symbols release

release/Array.c: src/com/containers/Array.ec release/Array.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/Array.ec -o release/Array.c -symbols release

release/AVLTree.c: src/com/containers/AVLTree.ec release/AVLTree.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/AVLTree.ec -o release/AVLTree.c -symbols release

release/BuiltInContainer.c: src/com/containers/BuiltInContainer.ec release/BuiltInContainer.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/BuiltInContainer.ec -o release/BuiltInContainer.c -symbols release

release/Container.c: src/com/containers/Container.ec release/Container.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/Container.ec -o release/Container.c -symbols release

release/CustomAVLTree.c: src/com/containers/CustomAVLTree.ec release/CustomAVLTree.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/CustomAVLTree.ec -o release/CustomAVLTree.c -symbols release

release/LinkList.c: src/com/containers/LinkList.ec release/LinkList.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/LinkList.ec -o release/LinkList.c -symbols release

release/List.c: src/com/containers/List.ec release/List.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/List.ec -o release/List.c -symbols release

release/Map.c: src/com/containers/Map.ec release/Map.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/containers/Map.ec -o release/Map.c -symbols release

release/BinaryTree.c: src/com/BinaryTree.ec release/BinaryTree.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/BinaryTree.ec -o release/BinaryTree.c -symbols release

release/BTNode.c: src/com/BTNode.ec release/BTNode.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/BTNode.ec -o release/BTNode.c -symbols release

release/dataTypes.c: src/com/dataTypes.ec release/dataTypes.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/dataTypes.ec -o release/dataTypes.c -symbols release

release/instance.c: src/com/instance.ec release/instance.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/instance.ec -o release/instance.c -symbols release

release/String.c: src/com/String.ec release/String.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/String.ec -o release/String.c -symbols release

release/OldList.c: src/com/OldList.ec release/OldList.sym | $(SYMBOLS)
	$(ECC) $(ECFLAGS) $(CFLAGS) -c src/com/OldList.ec -o release/OldList.c -symbols release

# OBJECT RULES

release/Archive.o: release/Archive.c
	$(CC) $(CFLAGS) -c release/Archive.c -o release/Archive.o

release/BufferedFile.o: release/BufferedFile.c
	$(CC) $(CFLAGS) -c release/BufferedFile.c -o release/BufferedFile.o

release/Date.o: release/Date.c
	$(CC) $(CFLAGS) -c release/Date.c -o release/Date.o

release/DualPipe.o: release/DualPipe.c
	$(CC) $(CFLAGS) -c release/DualPipe.c -o release/DualPipe.o

release/EARArchive.o: release/EARArchive.c
	$(CC) $(CFLAGS) -c release/EARArchive.c -o release/EARArchive.o

release/File.o: release/File.c
	$(CC) $(CFLAGS) -c release/File.c -o release/File.o

release/FileMonitor.o: release/FileMonitor.c
	$(CC) $(CFLAGS) -c release/FileMonitor.c -o release/FileMonitor.o

release/GlobalAppSettings.o: release/GlobalAppSettings.c
	$(CC) $(CFLAGS) -c release/GlobalAppSettings.c -o release/GlobalAppSettings.o

release/memory.o: release/memory.c
	$(CC) $(CFLAGS) -c release/memory.c -o release/memory.o

release/Mutex.o: release/Mutex.c
	$(CC) $(CFLAGS) -c release/Mutex.c -o release/Mutex.o

release/Semaphore.o: release/Semaphore.c
	$(CC) $(CFLAGS) -c release/Semaphore.c -o release/Semaphore.o

release/System.o: release/System.c
	$(CC) $(CFLAGS) -c release/System.c -o release/System.o

release/TempFile.o: release/TempFile.c
	$(CC) $(CFLAGS) -c release/TempFile.c -o release/TempFile.o

release/Thread.o: release/Thread.c
	$(CC) $(CFLAGS) -c release/Thread.c -o release/Thread.o

release/Time.o: release/Time.c
	$(CC) $(CFLAGS) -c release/Time.c -o release/Time.o

release/unicode.o: release/unicode.c
	$(CC) $(CFLAGS) -c release/unicode.c -o release/unicode.o

release/units.o: release/units.c
	$(CC) $(CFLAGS) -c release/units.c -o release/units.o

release/_File.o: src/sys/_File.c
	$(CC) $(CFLAGS) -c src/sys/_File.c -o release/_File.o

release/_DualPipe.o: src/sys/_DualPipe.c
	$(CC) $(CFLAGS) -c src/sys/_DualPipe.c -o release/_DualPipe.o

release/_System.o: src/sys/_System.c
	$(CC) $(CFLAGS) -c src/sys/_System.c -o release/_System.o

release/Cube.o: release/Cube.c
	$(CC) $(CFLAGS) -c release/Cube.c -o release/Cube.o

release/SkyBox.o: release/SkyBox.c
	$(CC) $(CFLAGS) -c release/SkyBox.c -o release/SkyBox.o

release/Sphere.o: release/Sphere.c
	$(CC) $(CFLAGS) -c release/Sphere.c -o release/Sphere.o

release/Object3DSFormat.o: release/Object3DSFormat.c
	$(CC) $(CFLAGS) -c release/Object3DSFormat.c -o release/Object3DSFormat.o

release/Camera.o: release/Camera.c
	$(CC) $(CFLAGS) -c release/Camera.c -o release/Camera.o

release/Matrix.o: release/Matrix.c
	$(CC) $(CFLAGS) -c release/Matrix.c -o release/Matrix.o

release/Mesh.o: release/Mesh.c
	$(CC) $(CFLAGS) -c release/Mesh.c -o release/Mesh.o

release/Object.o: release/Object.c
	$(CC) $(CFLAGS) -c release/Object.c -o release/Object.o

release/Plane.o: release/Plane.c
	$(CC) $(CFLAGS) -c release/Plane.c -o release/Plane.o

release/Quaternion.o: release/Quaternion.c
	$(CC) $(CFLAGS) -c release/Quaternion.c -o release/Quaternion.o

release/Vector3D.o: release/Vector3D.c
	$(CC) $(CFLAGS) -c release/Vector3D.c -o release/Vector3D.o

release/BMPFormat.o: release/BMPFormat.c
	$(CC) $(CFLAGS) -c release/BMPFormat.c -o release/BMPFormat.o

release/GIFFormat.o: release/GIFFormat.c
	$(CC) $(CFLAGS) -c release/GIFFormat.c -o release/GIFFormat.o

release/JPEGFormat.o: release/JPEGFormat.c
	$(CC) $(CFLAGS) -c release/JPEGFormat.c -o release/JPEGFormat.o

release/PCXFormat.o: release/PCXFormat.c
	$(CC) $(CFLAGS) -c release/PCXFormat.c -o release/PCXFormat.o

release/PNGFormat.o: release/PNGFormat.c
	$(CC) $(CFLAGS) -c release/PNGFormat.c -o release/PNGFormat.o

release/RGBFormat.o: release/RGBFormat.c
	$(CC) $(CFLAGS) -c release/RGBFormat.c -o release/RGBFormat.o

release/harfbuzz-arabic.o: src/gfx/drivers/harfbuzz/harfbuzz-arabic.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-arabic.c -o release/harfbuzz-arabic.o

release/harfbuzz-buffer.o: src/gfx/drivers/harfbuzz/harfbuzz-buffer.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-buffer.c -o release/harfbuzz-buffer.o

release/harfbuzz-gdef.o: src/gfx/drivers/harfbuzz/harfbuzz-gdef.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-gdef.c -o release/harfbuzz-gdef.o

release/harfbuzz-global.o: src/gfx/drivers/harfbuzz/harfbuzz-global.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-global.c -o release/harfbuzz-global.o

release/harfbuzz-gpos.o: src/gfx/drivers/harfbuzz/harfbuzz-gpos.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-gpos.c -o release/harfbuzz-gpos.o

release/harfbuzz-gsub.o: src/gfx/drivers/harfbuzz/harfbuzz-gsub.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-gsub.c -o release/harfbuzz-gsub.o

release/harfbuzz-hangul.o: src/gfx/drivers/harfbuzz/harfbuzz-hangul.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-hangul.c -o release/harfbuzz-hangul.o

release/harfbuzz-hebrew.o: src/gfx/drivers/harfbuzz/harfbuzz-hebrew.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-hebrew.c -o release/harfbuzz-hebrew.o

release/harfbuzz-indic.o: src/gfx/drivers/harfbuzz/harfbuzz-indic.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-indic.c -o release/harfbuzz-indic.o

release/harfbuzz-khmer.o: src/gfx/drivers/harfbuzz/harfbuzz-khmer.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-khmer.c -o release/harfbuzz-khmer.o

release/harfbuzz-myanmar.o: src/gfx/drivers/harfbuzz/harfbuzz-myanmar.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-myanmar.c -o release/harfbuzz-myanmar.o

release/harfbuzz-open.o: src/gfx/drivers/harfbuzz/harfbuzz-open.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-open.c -o release/harfbuzz-open.o

release/harfbuzz-shaper.o: src/gfx/drivers/harfbuzz/harfbuzz-shaper.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-shaper.c -o release/harfbuzz-shaper.o

release/harfbuzz-stream.o: src/gfx/drivers/harfbuzz/harfbuzz-stream.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-stream.c -o release/harfbuzz-stream.o

release/harfbuzz-tibetan.o: src/gfx/drivers/harfbuzz/harfbuzz-tibetan.c
	$(CC) $(CFLAGS) -c src/gfx/drivers/harfbuzz/harfbuzz-tibetan.c -o release/harfbuzz-tibetan.o

release/Direct3D8DisplayDriver.o: release/Direct3D8DisplayDriver.c
	$(CC) $(CFLAGS) -c release/Direct3D8DisplayDriver.c -o release/Direct3D8DisplayDriver.o

release/Direct3D9DisplayDriver.o: release/Direct3D9DisplayDriver.c
	$(CC) $(CFLAGS) -c release/Direct3D9DisplayDriver.c -o release/Direct3D9DisplayDriver.o

release/DirectDrawDisplayDriver.o: release/DirectDrawDisplayDriver.c
	$(CC) $(CFLAGS) -c release/DirectDrawDisplayDriver.c -o release/DirectDrawDisplayDriver.o

release/GDIDisplayDriver.o: release/GDIDisplayDriver.c
	$(CC) $(CFLAGS) -c release/GDIDisplayDriver.c -o release/GDIDisplayDriver.o

release/lfbBlit.o: release/lfbBlit.c
	$(CC) $(CFLAGS) -c release/lfbBlit.c -o release/lfbBlit.o

release/lfbConvert.o: release/lfbConvert.c
	$(CC) $(CFLAGS) -c release/lfbConvert.c -o release/lfbConvert.o

release/LFBDisplayDriver.o: release/LFBDisplayDriver.c
	$(CC) $(CFLAGS) -c release/LFBDisplayDriver.c -o release/LFBDisplayDriver.o

release/NCursesDisplayDriver.o: release/NCursesDisplayDriver.c
	$(CC) $(CFLAGS) -c release/NCursesDisplayDriver.c -o release/NCursesDisplayDriver.o

release/OpenGLDisplayDriver.o: release/OpenGLDisplayDriver.c
	$(CC) $(CFLAGS) -c release/OpenGLDisplayDriver.c -o release/OpenGLDisplayDriver.o

release/Win32BitmapPrinterDisplayDriver.o: release/Win32BitmapPrinterDisplayDriver.c
	$(CC) $(CFLAGS) -c release/Win32BitmapPrinterDisplayDriver.c -o release/Win32BitmapPrinterDisplayDriver.o

release/Win32ConsoleDisplayDriver.o: release/Win32ConsoleDisplayDriver.c
	$(CC) $(CFLAGS) -c release/Win32ConsoleDisplayDriver.c -o release/Win32ConsoleDisplayDriver.o

release/Win32PrinterDisplayDriver.o: release/Win32PrinterDisplayDriver.c
	$(CC) $(CFLAGS) -c release/Win32PrinterDisplayDriver.c -o release/Win32PrinterDisplayDriver.o

release/XDisplayDriver.o: release/XDisplayDriver.c
	$(CC) $(CFLAGS) -c release/XDisplayDriver.c -o release/XDisplayDriver.o

release/Bitmap.o: release/Bitmap.c
	$(CC) $(CFLAGS) -c release/Bitmap.c -o release/Bitmap.o

release/BitmapResource.o: release/BitmapResource.c
	$(CC) $(CFLAGS) -c release/BitmapResource.c -o release/BitmapResource.o

release/Color.o: release/Color.c
	$(CC) $(CFLAGS) -c release/Color.c -o release/Color.o

release/Display.o: release/Display.c
	$(CC) $(CFLAGS) -c release/Display.c -o release/Display.o

release/DisplaySystem.o: release/DisplaySystem.c
	$(CC) $(CFLAGS) -c release/DisplaySystem.c -o release/DisplaySystem.o

release/FontResource.o: release/FontResource.c
	$(CC) $(CFLAGS) -c release/FontResource.c -o release/FontResource.o

release/Resource.o: release/Resource.c
	$(CC) $(CFLAGS) -c release/Resource.c -o release/Resource.o

release/Surface.o: release/Surface.c
	$(CC) $(CFLAGS) -c release/Surface.c -o release/Surface.o

release/Button.o: release/Button.c
	$(CC) $(CFLAGS) -c release/Button.c -o release/Button.o

release/CalendarControl.o: release/CalendarControl.c
	$(CC) $(CFLAGS) -c release/CalendarControl.c -o release/CalendarControl.o

release/DataBox.o: release/DataBox.c
	$(CC) $(CFLAGS) -c release/DataBox.c -o release/DataBox.o

release/DropBox.o: release/DropBox.c
	$(CC) $(CFLAGS) -c release/DropBox.c -o release/DropBox.o

release/EditBox.o: release/EditBox.c
	$(CC) $(CFLAGS) -c release/EditBox.c -o release/EditBox.o

release/Label.o: release/Label.c
	$(CC) $(CFLAGS) -c release/Label.c -o release/Label.o

release/ListBox.o: release/ListBox.c
	$(CC) $(CFLAGS) -c release/ListBox.c -o release/ListBox.o

release/Menu.o: release/Menu.c
	$(CC) $(CFLAGS) -c release/Menu.c -o release/Menu.o

release/Picture.o: release/Picture.c
	$(CC) $(CFLAGS) -c release/Picture.c -o release/Picture.o

release/ProgressBar.o: release/ProgressBar.c
	$(CC) $(CFLAGS) -c release/ProgressBar.c -o release/ProgressBar.o

release/ScrollBar.o: release/ScrollBar.c
	$(CC) $(CFLAGS) -c release/ScrollBar.c -o release/ScrollBar.o

release/StatusBar.o: release/StatusBar.c
	$(CC) $(CFLAGS) -c release/StatusBar.c -o release/StatusBar.o

release/TabControl.o: release/TabControl.c
	$(CC) $(CFLAGS) -c release/TabControl.c -o release/TabControl.o

release/ColorPicker.o: release/ColorPicker.c
	$(CC) $(CFLAGS) -c release/ColorPicker.c -o release/ColorPicker.o

release/FileDialog.o: release/FileDialog.c
	$(CC) $(CFLAGS) -c release/FileDialog.c -o release/FileDialog.o

release/FindDialog.o: release/FindDialog.c
	$(CC) $(CFLAGS) -c release/FindDialog.c -o release/FindDialog.o

release/GoToDialog.o: release/GoToDialog.c
	$(CC) $(CFLAGS) -c release/GoToDialog.c -o release/GoToDialog.o

release/MessageBox.o: release/MessageBox.c
	$(CC) $(CFLAGS) -c release/MessageBox.c -o release/MessageBox.o

release/ReplaceDialog.o: release/ReplaceDialog.c
	$(CC) $(CFLAGS) -c release/ReplaceDialog.c -o release/ReplaceDialog.o

release/WindowList.o: release/WindowList.c
	$(CC) $(CFLAGS) -c release/WindowList.c -o release/WindowList.o

release/NCursesInterface.o: release/NCursesInterface.c
	$(CC) $(CFLAGS) -c release/NCursesInterface.c -o release/NCursesInterface.o

release/Win32Interface.o: release/Win32Interface.c
	$(CC) $(CFLAGS) -c release/Win32Interface.c -o release/Win32Interface.o

release/Win32ConsoleInterface.o: release/Win32ConsoleInterface.c
	$(CC) $(CFLAGS) -c release/Win32ConsoleInterface.c -o release/Win32ConsoleInterface.o

release/XInterface.o: release/XInterface.c
	$(CC) $(CFLAGS) -c release/XInterface.c -o release/XInterface.o

release/TVisionSkin.o: release/TVisionSkin.c
	$(CC) $(CFLAGS) -c release/TVisionSkin.c -o release/TVisionSkin.o

release/WindowsSkin.o: release/WindowsSkin.c
	$(CC) $(CFLAGS) -c release/WindowsSkin.c -o release/WindowsSkin.o

release/Anchor.o: release/Anchor.c
	$(CC) $(CFLAGS) -c release/Anchor.c -o release/Anchor.o

release/ClipBoard.o: release/ClipBoard.c
	$(CC) $(CFLAGS) -c release/ClipBoard.c -o release/ClipBoard.o

release/Cursor.o: release/Cursor.c
	$(CC) $(CFLAGS) -c release/Cursor.c -o release/Cursor.o

release/Desktop3D.o: release/Desktop3D.c
	$(CC) $(CFLAGS) -c release/Desktop3D.c -o release/Desktop3D.o

release/FormDesigner.o: release/FormDesigner.c
	$(CC) $(CFLAGS) -c release/FormDesigner.c -o release/FormDesigner.o

release/GuiApplication.o: release/GuiApplication.c
	$(CC) $(CFLAGS) -c release/GuiApplication.c -o release/GuiApplication.o

release/Interface.o: release/Interface.c
	$(CC) $(CFLAGS) -c release/Interface.c -o release/Interface.o

release/Key.o: release/Key.c
	$(CC) $(CFLAGS) -c release/Key.c -o release/Key.o

release/Skin.o: release/Skin.c
	$(CC) $(CFLAGS) -c release/Skin.c -o release/Skin.o

release/Timer.o: release/Timer.c
	$(CC) $(CFLAGS) -c release/Timer.c -o release/Timer.o

release/typeEdit.o: release/typeEdit.c
	$(CC) $(CFLAGS) -c release/typeEdit.c -o release/typeEdit.o

release/Window.o: release/Window.c
	$(CC) $(CFLAGS) -c release/Window.c -o release/Window.o

release/dcom.o: release/dcom.c
	$(CC) $(CFLAGS) -c release/dcom.c -o release/dcom.o

release/HTTPFile.o: release/HTTPFile.c
	$(CC) $(CFLAGS) -c release/HTTPFile.c -o release/HTTPFile.o

release/network.o: release/network.c
	$(CC) $(CFLAGS) -c release/network.c -o release/network.o

release/NetworkClientFile.o: release/NetworkClientFile.c
	$(CC) $(CFLAGS) -c release/NetworkClientFile.c -o release/NetworkClientFile.o

release/Service.o: release/Service.c
	$(CC) $(CFLAGS) -c release/Service.c -o release/Service.o

release/Socket.o: release/Socket.c
	$(CC) $(CFLAGS) -c release/Socket.c -o release/Socket.o

release/Array.o: release/Array.c
	$(CC) $(CFLAGS) -c release/Array.c -o release/Array.o

release/AVLTree.o: release/AVLTree.c
	$(CC) $(CFLAGS) -c release/AVLTree.c -o release/AVLTree.o

release/BuiltInContainer.o: release/BuiltInContainer.c
	$(CC) $(CFLAGS) -c release/BuiltInContainer.c -o release/BuiltInContainer.o

release/Container.o: release/Container.c
	$(CC) $(CFLAGS) -c release/Container.c -o release/Container.o

release/CustomAVLTree.o: release/CustomAVLTree.c
	$(CC) $(CFLAGS) -c release/CustomAVLTree.c -o release/CustomAVLTree.o

release/LinkList.o: release/LinkList.c
	$(CC) $(CFLAGS) -c release/LinkList.c -o release/LinkList.o

release/List.o: release/List.c
	$(CC) $(CFLAGS) -c release/List.c -o release/List.o

release/Map.o: release/Map.c
	$(CC) $(CFLAGS) -c release/Map.c -o release/Map.o

release/BinaryTree.o: release/BinaryTree.c
	$(CC) $(CFLAGS) -c release/BinaryTree.c -o release/BinaryTree.o

release/BTNode.o: release/BTNode.c
	$(CC) $(CFLAGS) -c release/BTNode.c -o release/BTNode.o

release/dataTypes.o: release/dataTypes.c
	$(CC) $(CFLAGS) -c release/dataTypes.c -o release/dataTypes.o

release/instance.o: release/instance.c
	$(CC) $(CFLAGS) -c release/instance.c -o release/instance.o

release/String.o: release/String.c
	$(CC) $(CFLAGS) -c release/String.c -o release/String.o

release/OldList.o: release/OldList.c
	$(CC) $(CFLAGS) -c release/OldList.c -o release/OldList.o

release/_instance.o: src/com/_instance.c
	$(CC) $(CFLAGS) -c src/com/_instance.c -o release/_instance.o

release/ecere.main.o: release/ecere.main.c
	$(CC) $(CFLAGS) -c release/ecere.main.c -o release/ecere.main.o

clean:
	rm -f release/libecere.so $(OBJECTS) $(IMPORTS) $(SYMBOLS) $(COBJECTS) release/ecere.main.c release/ecere.main.ec release/ecere.main.imp release/ecere.main.sym
	make -f Makefile.ecereCOM clean
	make -f Makefile.vanilla clean
