#
# run with "make"

# --------------------- customization ---------------------------
# directories specified below must alreay exist

# main directory.  Default is the current directory
MAINDIR:sh = cd ..; pwd 

# directory for binary files ( C++ programs only)
BINDIR = $(MAINDIR)/bin

# directory of dictionary files
VORTDIR = $(MAINDIR)/vortaro


INPUT_VORTARO  = $(VORTDIR)/esp-angla-vortoj.txt
SUPPL_VORTARO  = $(VORTDIR)/suppl.vortaro

LISP_FILTER    = $(VORTDIR)/filter.lisp.txt
CC_FILTER      = $(VORTDIR)/filter.cc.txt

LISP_EXCLUDE   = $(VORTDIR)/exclude.lisp.txt
CC_EXCLUDE     = $(VORTDIR)/exclude.cc.txt

LISP_VORTARO   = $(VORTDIR)/lex.for.lisp
CC_VORTARO     = $(VORTDIR)/lex.for.cc


# ---------------------------------------


# gnu C++ compiler
CC = g++ 

INCLUDE_PATH =  -I$(MAINDIR)/tools 

LIBS = $(MAINDIR)/tools/*.o 


# ------------------------------------------------------------------

CFLAGS =  -c  \
              \
        -DINPUT_VORTARO=\"$(INPUT_VORTARO)\" \
        -DSUPPL_VORTARO=\"$(SUPPL_VORTARO)\" \
        -DLISP_FILTER=\"$(LISP_FILTER)\"   \
        -DLISP_EXCLUDE=\"$(LISP_EXCLUDE)\" \
        -DLISP_VORTARO=\"$(LISP_VORTARO)\" \
        -DCC_FILTER=\"$(CC_FILTER)\"   \
        -DCC_EXCLUDE=\"$(CC_EXCLUDE)\" \
        -DCC_VORTARO=\"$(CC_VORTARO)\" \
                 \
        $(INCLUDE_PATH) 


LDFLAGS =              

CPP_OBJECTS = \
		buildlex.o \
                lispify.o \
                glue.o \
		common.o

MODULES = lispify buildlex glue


                        
all: $(MODULES)

FORCE:

lispify: lispify.o common.o 
	@echo 
	@echo "Linking lispify "
	@$(CC) $(LDFLAGS) lispify.o common.o $(LIBS) -o lispify 
	@cp lispify $(BINDIR)
	@echo

buildlex: buildlex.o common.o  
	@echo
	@echo "Linking buildlex "
	@$(CC) $(LDFLAGS) buildlex.o common.o $(LIBS) -o buildlex 
	@cp buildlex $(BINDIR) 
	@echo

glue: glue.o common.o  
	@echo
	@echo "Linking glue "
	@$(CC) $(LDFLAGS) glue.o common.o $(LIBS) -o glue 
	@cp glue $(BINDIR) 
	@echo

.cc.o:
	@echo
	@echo "Compiling $< "
	@$(CC) $(CFLAGS) $<


clean: FORCE
	@for file in $(CPP_OBJECTS) $(MODULES) ; do \
	echo removing file $$file;    \
	/bin/rm -f $$file;  done
	@for file in  $(MODULES) ; do \
	echo removing file $(BINDIR)/$$file;    \
	/bin/rm -f $(BINDIR)/$$file;  done

