###### Files & Directories
DESTDIR=
MY_DEBIAN_SYSTEM=


SRC = 	main.cc\
		config.cc
OBJ = 	main.o \
		config.o
TARGET = langdrill
MAN_PAGE = ../docs/langdrill.1

DRILL_DEF = default.drill
DRILL_SUP = romaji.drill french.drill

DEF_FLAGS = -DTARGET='"$(TARGET)"' \
	-DDRILL_DEF='"$(DRILL_DEF)"' \
	-DDRILL_DIR='"$(DRILL_DIR)"' \
	-I /usr/include/gtk-2.0/

###### Test for Debian GNU/Linux
# If your system is not Debian GNU/Linux please modify the values after
# "else" statement. Modifying the values before else is useless, unless
# you also set MY_DEBIAN_SYSTEM=1
ifeq ($(MY_DEBIAN_SYSTEM),1)
	MY_MESSAGE_OF_THE_DAY=">>" $(TARGET) compilled for Debian GNU/Linux system. "<<"
	DRILL_DIR=$(DESTDIR)/usr/share/langdrill
	BIN_DIR=$(DESTDIR)/usr/bin
	MAN_DIR=$(DESTDIR)/usr/share/man/man1
	CFLAGS = -Wall `vdk-config-2 --cflags` $(DEF_FLAGS)
else
	MY_MESSAGE_OF_THE_DAY=">>" $(TARGET) compilled for NON-Debian GNU/Linux system. "<<"
	DRILL_DIR=$(DESTDIR)/usr/local/share/langdrill
	BIN_DIR=$(DESTDIR)/usr/local/bin
	MAN_DIR=$(DESTDIR)/usr/local/man/man1
	CFLAGS = -Wall -g `vdk-config-2 --cflags` $(DEF_FLAGS)
endif

CC = g++
LFLAGS = `vdk-config-2 --libs` 


####### Implicit rules

.SUFFIXES: .cc

.cc.o: $(SRC)
	$(CC) $(CFLAGS) -c $*.cc -o $@

####### Build rules

all: $(TARGET)

tarclean:
	rm -f $(TARGET) core

clean:
	rm -f $(OBJ) 

distclean: clean
	rm -f $(TARGET) core *~

$(TARGET): tarclean $(OBJ)
	@echo $(MY_MESSAGE_OF_THE_DAY)
	$(CC) $(CFLAGS) -o $(TARGET) $(OBJ) $(LFLAGS)

run:	tarclean $(OBJ)
	@echo $(MY_MESSAGE_OF_THE_DAY)
	$(CC) $(CFLAGS) -o $(TARGET) $(OBJ) $(LFLAGS)
	./$(TARGET)

build: clean tarclean $(OBJ)
	@echo $(MY_MESSAGE_OF_THE_DAY)
	$(CC) $(CFLAGS) -o $(TARGET) $(OBJ) $(LFLAGS)

install: all
	install -d $(BIN_DIR) $(DRILL_DIR) $(MAN_DIR)
	install ./$(TARGET) $(BIN_DIR)
	install -m644 $(DRILL_DEF) $(DRILL_DIR)
	install -m644 $(MAN_PAGE) $(MAN_DIR)
	install -m644 $(DRILL_SUP) $(DRILL_DIR)
