PROGNAME = @PROGNAME@
LIBNAME  = lib@PROGNAME@
ANAME    = $(LIBNAME).a

CC              = @CC@
AR              = @AR@
INSTALL         = @INSTALL@
INSTALL_DATA    = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
MKDIR_P         = @MKDIR_P@

prefix      = @prefix@
exec_prefix = @exec_prefix@
bindir      = @bindir@
libdir      = @libdir@
datarootdir = @datarootdir@
mandir      = @mandir@

USE_GCOV = @USE_GCOV@

CFLAGS = -Wall @CFLAGS@ @COVERAGE_CFLAGS@
LFLAGS = @COVERAGE_LFLAGS@

TEST_CFLAGS = @CFLAGS@ @CHECK_CFLAGS@
TEST_LFLAGS = @CHECK_LIBS@ @COVERAGE_LFLAGS@

OBJECTS = transliteration.o transcription.o utf8.o velthuis.o

TEST_OBJECTS = tests/main.o tests/translit.o tests/transcript.o 	\
	tests/velthuis.o tests/utf8.o tests/integration.o

AUX_FILES = Makefile configure aclocal.m4 install-sh config.h* *.log	\
	*.status *.cache

all: $(PROGNAME) tests/test $(PROGNAME).1.gz

include $(wildcard *.d tests/*.d)

$(PROGNAME): main.o $(ANAME)
	$(QUIET_LD) $(CC) $^ -o $@ $(LFLAGS)

$(ANAME): $(OBJECTS)
	$(QUIET_AR) $(AR) rcs $@ $^

test: all
	tests/test

%.o: %.c
	$(QUIET_CC) $(CC) -MMD -MP -c $< -o $@ $(CFLAGS)

tests/%.o: tests/%.c
	$(QUIET_CC) $(CC) -MMD -MP -c $< -o $@ $(TEST_CFLAGS)

tests/test: $(OBJECTS) $(TEST_OBJECTS)
	$(QUIET_LD) $(CC) $^ -o $@ $(TEST_LFLAGS)

%.1.gz: %.1
	$(QUIET_GEN) cat $< | gzip -f >$@

install:
	$(MKDIR_P) $(bindir) $(libdir) $(mandir)/man1
	$(INSTALL_PROGRAM) $(PROGNAME) $(bindir)
	$(INSTALL_DATA) $(ANAME) $(libdir)
	$(INSTALL_DATA) $(PROGNAME).1.gz $(mandir)/man1

uninstall:
	$(RM) $(bindir)/$(PROGNAME)
	$(RM) $(libdir)/$(ANAME)
	$(RM) $(mandir)/man1/$(PROGNAME).1.gz

clean:
	$(RM) $(PROGNAME) tests/test $(PROGNAME).1.gz
	$(RM) -r *.a *.o */*.o */*.d *.d *.gcda *.gcno tests/coverage

clean-aux:
	$(RM) -r $(AUX_FILES)

distclean: clean clean-aux

ifeq ($(USE_GCOV),yes)
coverage:
	$(MAKE) test
	$(MKDIR_P) tests/coverage
	lcov --no-external -c -d $(shell pwd) -o tests/coverage/coverage.info
	genhtml -o tests/coverage -t "IAST Test Coverage" \
		tests/coverage/coverage.info
endif


ifndef V
QUIET_CC    = @echo "  CC     $@";
QUIET_LD    = @echo "  CCLD   $@";
QUIET_AR    = @echo "  AR     $@";
QUIET_GEN   = @echo "  GEN    $@";
endif