COMPILER = gcc
DEBUG = -Wall -g
INCLUDE = ./include
ENGINE_INCLUDE = ../../../include
LIBS = `pkg-config --libs glib-2.0 gmodule-2.0 gnome-vfs-2.0` -lz
FLAGS = `pkg-config --cflags glib-2.0 gmodule-2.0 gnome-vfs-2.0` -I${INCLUDE} -I${ENGINE_INCLUDE}
SOURCES = ./src
MAIN_BINARIES = ../../../bin
BINARIES = ./bin
PRECOMPILED = ./precompiled

first-target: library

build: library

all: clean library test check

clean:
		@-rm -f ${BINARIES}/*
		@-rm -f ${SOURCES}/*~
		@-rm -f *~
		@-rm -f ${INCLUDE}/*~
		@-rm -f ${SOURCES}/engine_stardict.so
		@echo -e -n "Project 'StarDictEngine' directories has been cleaned.\n"
	
test:  ${SOURCES}/test.c
		@${COMPILER} ${LIBS} ${FLAGS} ${DEBUG} -o ${BINARIES}/test ${SOURCES}/test.c
		@echo -e -n "Building test program for 'StarDictEngine' finished.\n"
		
check: test
		@run-standalone.sh ${BINARIES}/test


library: ${BINARIES}/engine_stardict.o			
		@${COMPILER} ${DEBUG} -shared -fPIC ${FLAGS} ${LIBS} ${BINARIES}/engine_stardict.o \
		${PRECOMPILED}/`arch`/*.o -o ${BINARIES}/engine_stardict.so
		@cp ${BINARIES}/engine_stardict.so ${MAIN_BINARIES}
		@echo -e -n "'StarDictEngine' build finished.\n"
			
${BINARIES}/engine_stardict.o: ${SOURCES}/engine_stardict.c
		@${COMPILER} ${DEBUG} ${FLAGS} -c -fPIC ${SOURCES}/engine_stardict.c -o ${BINARIES}/engine_stardict.o
	
	
final: clean
		@${COMPILER} -DNOLOGS -Wall -O3 ${FLAGS} -c -fPIC ${SOURCES}/engine_stardict.c -o ${BINARIES}/engine_stardict.o
		@${COMPILER} -DNOLOGS -Wall -g -shared -fPIC ${FLAGS} ${LIBS} ${BINARIES}/engine_stardict.o \
		${SOURCES}/`arch`/*.o -o ${BINARIES}/engine_stardict.so
		@cp ${BINARIES}/engine_stardict.so ../bin
		@echo -e -n "'StarDictEngine' build finished. (Final version - optimized)\n"
	
	
	
	
	
	
	