UNAME_S != uname -s
UNAME_M != uname -m
OS = ${UNAME_S}
ARCH = ${UNAME_M}

.if ${UNAME_S} == "OpenBSD"
OS = openbsd
.elif ${UNAME_S} == "NetBSD"
OS = netbsd
.elif ${UNAME_S} == "FreeBSD"
OS = freebsd
.elif ${UNAME_S} == "Linux"
OS = linux
.endif

.if ${UNAME_M} == "x86_64"
ARCH = amd64
.endif

NAME = txtconv
UDDUNAME != cat uddu.c | grep "const char \*sofname" | awk '{print $$5}' |\
	sed "s/\"//g" | sed "s/;//"
UAAUNAME != cat uaau.c | grep "const char \*sofname" | awk '{print $$5}' |\
	sed "s/\"//g" | sed "s/;//"
ADDANAME != cat adda.c | grep "const char \*sofname" | awk '{print $$5}' |\
	sed "s/\"//g" | sed "s/;//"
VERSION != cat common.h | grep "const char \*version" | awk '{print $$5}' |\
	sed "s/\"//g" | sed "s/;//"

PREFIX = /usr/local
.if ${UNAME_S} == "Linux"
PREFIX = /usr
.elif ${UNAME_S} == "Haiku"
PREFIX = /boot/home/config/non-packaged
.endif

MANPREFIX = ${PREFIX}/share/man
.if ${UNAME_S} == "OpenBSD"
MANPREFIX = ${PREFIX}/man
.elif ${UNAME_S} == "Haiku"
MANPREFIX = ${PREFIX}/documentation/man
.endif

CC = cc
CFLAGS = -Wall -Wextra -O3

LDFLAGS = -static -lc
.if ${UNAME_S} == "Haiku" || ${UNAME_S} == "Darwin" || ${UNAME_S} == "SunOS"\
	|| ${UNAME_S} == "Minix"
LDFLAGS = -lc
.endif

all: compile

compile:
	${CC} ${CFLAGS} -o uddu uddu.c ${LDFLAGS}
	strip uddu
	${CC} ${CFLAGS} -o uaau uaau.c ${LDFLAGS}
	strip uaau
	${CC} ${CFLAGS} -o adda adda.c ${LDFLAGS}
	strip adda

clean:
	rm -rf uddu uaau adda

dist: compile
	mkdir -p ${NAME}-${VERSION} release/src\
		release/bin/${VERSION}/${OS}/${ARCH} release/man/${VERSION}
	cp -R LICENSE.txt Makefile README.md CHANGELOG.md\
		*.1 *.c common.h ${NAME}-${VERSION}
	tar zcfv release/src/${NAME}-${VERSION}.tar.gz ${NAME}-${VERSION}
	rm -rf ${NAME}-${VERSION}
	sed "s/VERSION/${VERSION}/g" < uddu.1 > release/man/${VERSION}/uddu.1
	sed "s/VERSION/${VERSION}/g" < uaau.1 > release/man/${VERSION}/uaau.1
	sed "s/VERSION/${VERSION}/g" < adda.1 > release/man/${VERSION}/adda.1
	cp -R uddu uaau adda release/bin/${VERSION}/${OS}/${ARCH}

install:
	mkdir -p ${DESTDIR}${PREFIX}/bin ${DESTDIR}${MANPREFIX}/man1
	cp -rf uddu ${DESTDIR}${PREFIX}/bin
	cp -rf uaau ${DESTDIR}${PREFIX}/bin
	cp -rf adda ${DESTDIR}${PREFIX}/bin
	chmod 755 ${DESTDIR}${PREFIX}/bin/uddu
	chmod 755 ${DESTDIR}${PREFIX}/bin/uaau
	chmod 755 ${DESTDIR}${PREFIX}/bin/adda
	sed "s/VERSION/${VERSION}/g" < uddu.1 > ${DESTDIR}${MANPREFIX}/man1/uddu.1
	sed "s/VERSION/${VERSION}/g" < uaau.1 > ${DESTDIR}${MANPREFIX}/man1/uaau.1
	sed "s/VERSION/${VERSION}/g" < adda.1 > ${DESTDIR}${MANPREFIX}/man1/adda.1
	chmod 644 ${DESTDIR}${MANPREFIX}/man1/uddu.1
	chmod 644 ${DESTDIR}${MANPREFIX}/man1/uaau.1
	chmod 644 ${DESTDIR}${MANPREFIX}/man1/adda.1

uninstall:
	rm -rf ${DESTDIR}${PREFIX}/bin/uddu
	rm -rf ${DESTDIR}${PREFIX}/bin/uaau
	rm -rf ${DESTDIR}${PREFIX}/bin/adda
	rm -rf ${DESTDIR}${MANPREFIX}/man1/uddu.1
	rm -rf ${DESTDIR}${MANPREFIX}/man1/uaau.1
	rm -rf ${DESTDIR}${MANPREFIX}/man1/adda.1

.PHONY: all compile clean dist install uninstall
