export LD_LIBRARY_PATH = ../../lib/
CC = gcc
ECC = ../../bootstrap/bin/ecc
ECP = ../../bootstrap/bin/ecp
ECS = ../../bootstrap/bin/ecs
EAR = ../../bin/ear
ECFLAGS = 
CFLAGS = -fmessage-length=0 -Os -fvisibility=hidden -Wall -fPIC -DECERE_STATIC
OFLAGS = -L../../ecere/vanilla -L/usr/X11R6/lib/
UPXFLAGS = -9
LIBS = -lecereVanilla -lz -lfontconfig -lXrender -lXext -lcurses -lm -ldl -lpthread -lX11 -lfreetype
OBJECTS = \
	release/extract.o release/extract.main.o

COBJECTS = \
	release/extract.c 

SYMBOLS = \
	release/extract.sym 

IMPORTS = \
	release/extract.imp 

RESOURCES = \
	../../ecere/VanillaResources/ecere/elements/areaClose.png \
	../../ecere/VanillaResources/ecere/elements/areaMaximize.png \
	../../ecere/VanillaResources/ecere/elements/areaMinimize.png \
	../../ecere/VanillaResources/ecere/elements/areaRestore.png \
	../../ecere/VanillaResources/ecere/elements/arrowDown.png \
	../../ecere/VanillaResources/ecere/elements/arrowLeft.png \
	../../ecere/VanillaResources/ecere/elements/arrowRight.png \
	../../ecere/VanillaResources/ecere/elements/arrowUp.png \
	../../ecere/VanillaResources/ecere/elements/optionBoxDisabledSelected.bmp \
	../../ecere/VanillaResources/ecere/elements/optionBoxDown.bmp \
	../../ecere/VanillaResources/ecere/elements/optionBoxSelected.bmp \
	../../ecere/VanillaResources/ecere/elements/optionBoxSelectedDown.bmp \
	../../ecere/VanillaResources/ecere/elements/optionBoxUp.bmp \
	../../ecere/Resources/unicode/derivedGeneralCategoryStripped.txt \
	../../ecere/VanillaResources/ecere/actions/folderNew.png \
	../../ecere/VanillaResources/ecere/actions/goUp.png \
	../../ecere/VanillaResources/ecere/devices/computer.png \
	../../ecere/VanillaResources/ecere/devices/driveHardDisk.png \
	../../ecere/VanillaResources/ecere/devices/driveRemovableMedia.png \
	../../ecere/VanillaResources/ecere/devices/mediaFloppy.png \
	../../ecere/VanillaResources/ecere/devices/mediaOptical.png \
	../../ecere/VanillaResources/ecere/mimeTypes/file.png \
	../../ecere/VanillaResources/ecere/places/driveRemote.png \
	../../ecere/VanillaResources/ecere/places/folder.png \
	../../ecere/VanillaResources/ecere/places/folderRemote.png \
	../../ecere/VanillaResources/ecere/places/networkServer.png \
	../../ecere/VanillaResources/ecere/places/networkWorkgroup.png \
	../../ecere/VanillaResources/ecere/status/folderOpen.png 

all: release/extract

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

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

	$(ECC) $(ECFLAGS) $(CFLAGS) -c release/extract.main.ec -o release/extract.main.c -symbols release

ecereVanilla:
	@echo Building Vanilla version of Ecere...
	cd ../../ecere/ && make -f Makefile.vanilla

release/extract:  $(SYMBOLS) $(OBJECTS) $(RESOURCES) ecereVanilla
	$(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o release/extract
	strip release/extract
	upx $(UPXFLAGS) release/extract || echo "upx not installed; not compressing."
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/elements/areaClose.png ../../ecere/VanillaResources/ecere/elements/areaMaximize.png ../../ecere/VanillaResources/ecere/elements/areaMinimize.png ../../ecere/VanillaResources/ecere/elements/areaRestore.png ../../ecere/VanillaResources/ecere/elements/arrowDown.png ../../ecere/VanillaResources/ecere/elements/arrowLeft.png ../../ecere/VanillaResources/ecere/elements/arrowRight.png ../../ecere/VanillaResources/ecere/elements/arrowUp.png ../../ecere/VanillaResources/ecere/elements/optionBoxDisabledSelected.bmp ../../ecere/VanillaResources/ecere/elements/optionBoxDown.bmp "ecere/elements"
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/elements/optionBoxSelected.bmp ../../ecere/VanillaResources/ecere/elements/optionBoxSelectedDown.bmp ../../ecere/VanillaResources/ecere/elements/optionBoxUp.bmp "ecere/elements"
	$(EAR) aw release/extract ../../ecere/Resources/unicode/derivedGeneralCategoryStripped.txt "ecere/unicode"
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/actions/folderNew.png ../../ecere/VanillaResources/ecere/actions/goUp.png "ecere/actions"
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/devices/computer.png ../../ecere/VanillaResources/ecere/devices/driveHardDisk.png ../../ecere/VanillaResources/ecere/devices/driveRemovableMedia.png ../../ecere/VanillaResources/ecere/devices/mediaFloppy.png ../../ecere/VanillaResources/ecere/devices/mediaOptical.png "ecere/devices"
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/mimeTypes/file.png "ecere/mimeTypes"
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/places/driveRemote.png ../../ecere/VanillaResources/ecere/places/folder.png ../../ecere/VanillaResources/ecere/places/folderRemote.png ../../ecere/VanillaResources/ecere/places/networkServer.png ../../ecere/VanillaResources/ecere/places/networkWorkgroup.png "ecere/places"
	$(EAR) aw release/extract ../../ecere/VanillaResources/ecere/status/folderOpen.png "ecere/status"

# SYMBOL RULES

release/extract.sym: extract.ec
	$(ECP) $(ECFLAGS) $(CFLAGS) -c extract.ec -o release/extract.sym

# C OBJECT RULES

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

# OBJECT RULES

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

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

clean:
	rm -f release/extract $(OBJECTS) $(IMPORTS) $(SYMBOLS) $(COBJECTS) release/extract.main.c release/extract.main.ec release/extract.main.imp release/extract.main.sym
