#!/usr/bin/make -f

CFLAGS = -Wall -Wextra -Werror -g
#LDFLAGS = -s

PREFIX  = /usr/local

ifdef WINDIR
LDLIBS  = -lws2_32
EXE     = .exe
else
EXE     = 
endif

ELFS    = arcs sshc
SCRIPTS = conflicts pacify git_history git_commit_all
EXES    = $(ELFS) $(SCRIPTS)

ELFSEXE = $(shell for A in $(ELFS); do echo $$A$(EXE); done)
EXESEXE = $(ELFSEXE) $(SCRIPTS)
MANGZ   = $(shell for A in $(EXES); do echo $$A.1.gz; done)
MANTXT  = $(shell for A in $(EXES); do echo $$A.1.txt; done)

build: $(ELFSEXE) $(MANGZ) $(MANTXT)

arcs$(EXE): arcs.c arcs_backend.c arcs_backend.h
	$(CC) $(CFLAGS) $(LDFLAGS) -o arcs$(EXE) arcs_backend.c arcs.c $(LDLIBS)

sshc$(EXE): sshc.c
	$(CC) $(CFLAGS) $(LDFLAGS) -o sshc$(EXE) sshc.c

install: build instdirs
	install $(EXESEXE) "$(PREFIX)/bin"
	install -m 644 $(MANGZ) "$(PREFIX)/share/man/man1/"

uninstall:
	for I in $(EXESEXE); do rm -f "$(PREFIX)/bin/$$I"; done
	for I in $(MANGZ); do rm -f "$(PREFIX)/share/man/man1/$$I"; done

devinst: build instdirs
	for I in $(EXESEXE); do ln -sf "$$PWD/$$I" "$(PREFIX)/bin"; done
	for I in $(MANGZ); do ln -sf "$$PWD/$$I" "$(PREFIX)/share/man/man1"; done

clean:
	rm -f $(ELFSEXE) $(MANGZ) $(MANTXT)
	for I in $(ELFS); do rm -f .$$I.exe; done
	for I in $(MANGZ) $(MANTXT); do rm -f .$$I; done

instdirs:
	mkdir -p "$(PREFIX)/bin" "$(PREFIX)/share/man/man1/"

distclean: clean

deb:
	debuild -b

debclean:
	fakeroot debian/rules clean

sic: build
	sudo $(MAKE) install
	$(MAKE) clean

%.1.gz: %.1
	gzip -c $< >.$@
	ln -sf .$@ $@

%.1.txt: %.1
	man -l $< >.$@
	ln -sf .$@ $@

.PHONY: build install uninstall clean distclean deb cleandeb install distclean sic instdirs

