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

SRC = 	main.cc\
		config.cc
OBJ = 	main.o \
		config.o
TARGET=langdrill
TARGET_RC=langdrill.rc
TARGET_RC_LOCAL=.$(TARGET)
MAN_PAGE=../docs/langdrill.1

DRILL_DEF=default.drill
DRILL_SUP=romaji.drill

DEF_FLAGS=-DTARGET='"$(TARGET)"' \
	-DTARGET_RC='"$(TARGET_RC)"' \
	-DTARGET_RC_LOCAL='"$(TARGET_RC_LOCAL)"' \
	-DTARGET_RC_DIR='"$(TARGET_RC_DIR)"' \
	-DDRILL_DEF='"$(DRILL_DEF)"' \
	-DDRILL_DIR='"$(DRILL_DIR)"' 

###### 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/vdk/langdrill
	BIN_DIR=$(DESTDIR)/usr/bin
	MAN_DIR=$(DESTDIR)/usr/share/man/man1
	TARGET_RC_DIR=$(DESTDIR)/etc
	CFLAGS =  `vdk-config --cflags` $(DEF_FLAGS)
else
	MY_MESSAGE_OF_THE_DAY=">>" $(TARGET) compilled for NON-Debian GNU/Linux system. "<<"
	DRILL_DIR=$(DESTDIR)/usr/local/share/vdk/langdrill
	BIN_DIR=$(DESTDIR)/usr/local/bin
	MAN_DIR=$(DESTDIR)/usr/local/man/man1
	TARGET_RC_DIR=$(DESTDIR)/usr/local/etc
	CFLAGS =  -g `vdk-config --cflags` $(DEF_FLAGS)
endif

CC = g++
LFLAGS = `vdk-config --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) $(TARGET_RC_DIR)
	install ./$(TARGET) $(BIN_DIR)
	install -m644 ./$(TARGET_RC_LOCAL) $(TARGET_RC_DIR)/$(TARGET_RC)
	install -m644 $(DRILL_DEF) $(DRILL_DIR)
	install -m644 $(MAN_PAGE) $(MAN_DIR)
	install -m644 $(DRILL_SUP) $(DRILL_DIR)
