PAR=-Wno-deprecated -O2 -fpermissive -static
PAR2=-c -Wno-deprecated -O2 -fpermissive -static
LIB_PATH=../lib
COMMON_PATH=../common
CMDLINE_FILE='"../lem/cmdline.h"'


lem: main.cc lem.o auttools.o word.o cmdline.c common_lem.o common.o symtab.o
	g++ $(PAR) -D _CMDLINE_FILE=$(CMDLINE_FILE) \
	main.cc lem.o $(LIB_PATH)/auttools.o \
	$(LIB_PATH)/word.o cmdline.c common.o common_lem.o \
	symtab.o -o lem

lem.o: lem.h lem.cc
	g++ $(PAR2) -D _CMDLINE_FILE=$(CMDLINE_FILE) lem.cc

# alphabet.o: $(LIB_PATH)/alphabet.h $(LIB_PATH)/alphabet.cc
# 	g++ $(PAR2) $(LIB_PATH)/alphabet.cc

# auttools.o: $(LIB_PATH)/auttools.h $(LIB_PATH)/auttools.cc
# 	g++ $(PAR2) $(LIB_PATH)/auttools.cc

# word.o: $(LIB_PATH)/word.h $(LIB_PATH)/word.cc
# 	g++ $(PAR2) $(LIB_PATH)/word.cc

# erro.o: $(LIB_PATH)/erro.h $(LIB_PATH)/erro.cc
# 	g++ $(PAR2) $(LIB_PATH)/erro.cc

common.o: cmdline_common
	g++ $(PAR2) -D _CMDLINE_FILE=$(CMDLINE_FILE) $(COMMON_PATH)/common.cc

common_lem.o: cmdline.h common_lem.h common_lem.cc
	g++ $(PAR2) -D _CMDLINE_FILE=$(CMDLINE_FILE) common_lem.cc

cmdline.c cmdline.h: cmdline.ggo
	gengetopt -i cmdline.ggo --conf-parser

cmdline.ggo: cmdline_lem.ggo $(COMMON_PATH)/cmdline_common.ggo
	cat cmdline_lem.ggo ../common/cmdline_common.ggo > cmdline.ggo

symtab.o: $(LIB_PATH)/symtab.h $(LIB_PATH)/symtab.cc
	g++ $(PAR2) $(LIB_PATH)/symtab.cc

clean: clean.cmdline
	rm *.o || true
	rm lem || true

clean.cmdline:
	rm cmdline.* || true

copy:
ifdef UTT_BIN_DIR
	cp lem $(UTT_BIN_DIR)
endif

include $(COMMON_PATH)/common.mk
include $(LIB_PATH)/lib.mk
