## I got so sick of trying to either patch or workaround the upstream
## makefile, that I decided to just replace it completely.

PROGRAM = crawl
DOS_BASES += crash-d libdos
W32_BASES += crash-w libw32c
UNIX_BASES += crash-u libunix
GUI_BASES += libgui $(basename $(wildcard tile*.cc))
BAD_BASES = $(DOS_BASES) $(W32_BASES) $(UNIX_BASES) $(GUI_BASES)

ALL_BASES = $(basename $(wildcard *.cc))
OUR_BASES = $(filter-out acr $(PROGRAM) $(BAD_BASES),$(ALL_BASES))
OUR_BASES += $(UNIX_BASES) util/levcomp.tab util/levcomp.lex

LDFLAGS += -rdynamic -lncursesw
LDFLAGS += `pkg-config --libs lua5.1 sqlite3 libpcre`
CXXFLAGS += -Wall -Wno-parentheses -fsigned-char
CXXFLAGS += -DUNIX -DCLUA_BINDINGS -DREGEX_PCRE -DSAVE_PACKAGE_TAR
CXXFLAGS += -Iutil -I. -I/usr/include/ncursesw
CXXFLAGS += `pkg-config --cflags lua5.1 sqlite3 libpcre`
CXXFLAGS += -DUNICODE_GLYPHS '-DUNICODE_LOCALE=""'
CXXFLAGS += '-DSAVE_DIR_PATH="/var/games/crawl"'
CXXFLAGS += '-DDATA_DIR_PATH="/usr/share/games/crawl"'

all: $(PROGRAM)
$(PROGRAM): $(addsuffix .o,$(OUR_BASES))
$(PROGRAM).cc: acr.cc
	ln -s $< $@
%.tab.cc: %.ypp
	bison -y --defines=$*.tab.h -b $* -o$@ $<
%.lex.cc: %.lpp
	flex -o$@ $<
clean:
	rm -f $(addsuffix .o, $(ALL_BASES))
	rm -f util/*.tab.* util/*.lex.*
distclean: clean
	rm -f $(PROGRAM) $(PROGRAM).cc # $(PROGRAM).cc is a symlink to acr.cc.
	rm -f bones.* morgue.txt scores *.sav core *.0* *.lab
