PROGRAM = regexplore

PROJECT_BINDIR = ../../../bin

CFLAGS = -g -Wall -Wstrict-prototypes

LDFLAGS = -g


.PHONY: default
default: $(PROGRAM)_stdio $(PROGRAM)_readline

regexplore_readline.o: regexplore.c getopt_longer.h
	@echo $(CC) $(CFLAGS) -DUSE_READLINE -c $< -o $@ ;\
	if ! $(CC) $(CFLAGS) -DUSE_READLINE -c $< -o $@ ;\
	then \
		echo "compilation of readline version failed" 2>&1 ;\
	    echo "  install libreadline package and try again" 2>&1 ;\
		echo "  or stick with the stdio version" 2>&1 ;\
	fi

regexplore_stdio.o: regexplore.c getopt_longer.h
	$(CC) $(CFLAGS) -c $< -o $@

getopt_longer.o: getopt_longer.c getopt_longer.h
	$(CC) $(CFLAGS) -c $<

$(PROGRAM)_readline: regexplore_readline.o getopt_longer.o
	$(CC) $(LDFLAGS) $^ -o $@ -lreadline

$(PROGRAM)_stdio: regexplore_stdio.o getopt_longer.o
	$(CC) $(LDFLAGS) $^ -o $@

.PHONY: clean
clean:
	rm -f *.o core *~

.PHONY: immaculate
immaculate: clean
	rm -f $(PROGRAM)_stdio $(PROGRAM)_readline

.PHONY: install
install: \
	$(PROJECT_BINDIR)/$(PROGRAM) \
	$(MY_BINDIR)/$(PROGRAM)

# Install for both general use ($(MY_BINDIR)) and local use within the
# project directory hierarchy ($(PROJECT_BINDIR)).
$(PROJECT_BINDIR)/$(PROGRAM) $(MY_BINDIR)/$(PROGRAM): $(PROGRAM)_stdio
	@if [ -x $(PROGRAM)_readline ] ;\
	then \
		echo install -p -m 0755 $(PROGRAM)_readline $@ ;\
		install -p -m 0755 $(PROGRAM)_readline $@ ;\
	else \
		echo install -p -m 0755 $(PROGRAM)_stdio $@ ;\
		install -p -m 0755 $(PROGRAM)_stdio $@ ;\
	fi
