GTK_CFLAGS=`pkg-config --cflags gtk+-2.0`
GTK_LIBS=`pkg-config --cflags --libs gtk+-2.0`

LIBS=-lreadline -lm -lpthread $(GTK_LIBS)

CC=gcc -Wall
_USEFULFLAGS=-pipe
USEFULFLAGS=$(_USEFULFLAGS) $(GTK_CFLAGS)

FUNC_DIR=functions

FUNC_OBJ=$(FUNC_DIR)/*/*.o $(FUNC_DIR)/locale/*/*.o 

sudokugen: sudokufunctions sudoku.o gtk_main
	$(CC) $(LIBS) $(_USEFULFLAGS) sudoku.o $(FUNC_OBJ) -o GSudoku-c

sudokufunctions: functions/Makefile functions/*/*.c functions/locale/*/*.c
	cd functions; make; cd ..

sudoku_gtk.o: sudoku_gtk.c inc/sudoku.h
	$(CC) $(USEFULFLAGS) -c sudoku_gtk.c

gtk_main: sudoku_gtk.o
	$(CC) $(LIBS) $(_USEFULFLAGS) sudoku_gtk.o $(FUNC_OBJ) -o GSudoku

sudoku.o: sudoku.c inc/sudoku.h
	$(CC) $(_USEFULFLAGS) -c sudoku.c

clean:
	rm -f $(FUNC_OBJ) sudoku.o sudoku_gtk.o
	find . -name '*~' -exec rm {} \;

cleanall: clean
	rm -f GSudoku-c GSudoku