PREFIX     = /usr/local
BIN_DOS    = ${PREFIX}/bin
MAN_DOS    = ${PREFIX}/man
I18N_DOS   = ${PREFIX}/share/locale
LIB_DOS    = /usr/local/lib
INC_DOS    = /usr/local/include
LIBS       = -lintl

DOS_PO     = po
DOS_MAN    = man

CC         = cc
COPTS_SPCL = -O2 -DNDEBUG
COPTS      = -Wall -Wextra -Werror -Wpedantic -Wno-implicit-fallthrough \
		--std=c89 ${COPT_SPCL}
CPPOPTS    = -I${INC_DOS} -DI18N_DOMAINE=\"aplat\" -DI18N_DOS=\"${I18N_DOS}\"
LDOPTS     = -L${LIB_DOS}

FCH_PO    != find ${DOS_PO} -name '*.po'
FCH_MO    != find ${DOS_PO} -name '*.po' | sed 's/\.po$$/\.mo/'

.SUFFIXES: .c .o .po .mo
.c.o:
	${CC} ${COPTS} ${CPPOPTS} -c "$<"

.po.mo:
	msgfmt -o "$@" "$<"

all: aplat traductions

aplat: aplat.o tampon.o
	${CC} ${COPT} ${LDOPTS} -o "$@" aplat.o tampon.o ${LIBS}

traductions: ${FCH_MO}

maj_trad:
	xgettext --from-code=UTF-8 -k_ -o - *.c | \
		msgmerge -qo "${DOS_PO}/modele.pot" "${DOS_PO}/modele.pot" -
	for F in ${FCH_PO} ; \
	do \
		msgmerge -qo "$$F" "$$F" "${DOS_PO}/modele.pot" ; \
	done

inst_aplat:
	mkdir -p "${BIN_DOS}"
	install -m 755 aplat "${BIN_DOS}"/aplat

inst_trad:
	for F in ${FCH_MO} ; \
	do \
		LANGUE="$$(echo "$$F" | sed 's|.*/\(.*\)\..*|\1|')" ; \
		mkdir -p "${I18N_DOS}/$$LANGUE/LC_MESSAGES" ; \
		cp $$F \
			"${I18N_DOS}/$$LANGUE/LC_MESSAGES/aplat.mo" ; \
	done

inst_man:
	mkdir -p ${MAN_DOS}/fr/man1
	cp "${DOS_MAN}/fr/aplat.1" "${MAN_DOS}/fr/man1"
	mkdir -p ${MAN_DOS}/fr/man5
	cp "${DOS_MAN}/fr/aplat.5" "${MAN_DOS}/fr/man5"
	cp "${DOS_MAN}/fr/plat.5" "${MAN_DOS}/fr/man5"

install: all inst_aplat inst_trad inst_man

uninstall:
	rm -f ${BIN_DOS}/aplat
	find "${I18N_DOS}" -type f -name 'aplat.mo' | xargs rm -f
	find "${MAN_DOS}" -type f -name 'a?plat.[123456789]' | xargs rm -f

clean:
	rm -f aplat *.o *.core po/*.mo
