# ==============================================================================
# portsreinstall installation makefile
# Copyright (C) 2010-2018 Mamoru Sakaue, MwGhennndo, All Rights Reserved.
# ==============================================================================

PROGNAME=	portsreinstall

PREFIX?=	/usr/local
INSTALL_SCRIPT=	install
INSTALL_DIR=	install -d
INSTALL_NOEXEC=	install -m 444
INSTALL_CONF=	install -m 644
RM=	rm -f
RMDIR=	rm -fr
GZIP=	gzip -f

BINS=\
	bin/$(PROGNAME) \
	bin/$(PROGNAME)-chroot
LIBS=\
	lib/libcommand.sh \
	lib/libcommand_do.sh \
	lib/libcommand_flexconf.sh \
	lib/libcommand_forget.sh \
	lib/libcommand_pkgs.sh \
	lib/libcommand_show.sh \
	lib/libconf.sh \
	lib/libdatabase_build.sh \
	lib/libdatabase_maintain.sh \
	lib/libdatabase_query.sh \
	lib/libdatabase_record.sh \
	lib/libdeinstall.sh \
	lib/libfileedit.sh \
	lib/libmain.sh \
	lib/libmessage.sh \
	lib/libmisc.sh \
	lib/liboptions.sh \
	lib/libpkgsys.sh \
	lib/libprogram.sh \
	lib/libreinstall.sh \
	lib/libstr.sh \
	lib/libtemp.sh \
	lib/libusage.sh
LIBS_MAIN=\
	lib/main/libcommand.sh \
	lib/main/liboptions.sh \
	lib/main/libtemp.sh \
	lib/main/libusage.sh
LIBS_CHROOT=\
	lib/chroot/libcommand.sh \
	lib/chroot/libcommand_do.sh \
	lib/chroot/libdatabase_maintain.sh \
	lib/chroot/libfs.sh \
	lib/chroot/libmain.sh \
	lib/chroot/libmessage.sh \
	lib/chroot/liboptions.sh \
	lib/chroot/libusage.sh
LIBS_CHROOT_MOUNT=\
	lib/chroot-mount/libcommand.sh \
	lib/chroot-mount/libconf.sh \
	lib/chroot-mount/libdatabase_maintain.sh \
	lib/chroot-mount/libmain.sh \
	lib/chroot-mount/libmessage.sh \
	lib/chroot-mount/liboptions.sh \
	lib/chroot-mount/libtemp.sh \
	lib/chroot-mount/libusage.sh
LIBS_UPGRADE=\
	lib/upgrade/libcommand.sh \
	lib/upgrade/libcommand_do.sh \
	lib/upgrade/libmain.sh \
	lib/upgrade/libmessage.sh \
	lib/upgrade/liboptions.sh \
	lib/upgrade/libusage.sh
LIBEXECS=\
	libexec/order_dependencies.awk
PROGNAMES_DISPATCH=\
	share/bin/$(PROGNAME)-upgrade \
	share/bin/$(PROGNAME)-chroot-mount

all:

install:
	$(INSTALL_DIR) $(PREFIX)/bin
	$(INSTALL_SCRIPT) $(BINS) $(PREFIX)/bin
	$(INSTALL_DIR) $(PREFIX)/lib/$(PROGNAME)
	$(INSTALL_NOEXEC) $(LIBS) $(PREFIX)/lib/$(PROGNAME)
	$(INSTALL_DIR) $(PREFIX)/lib/$(PROGNAME)/main
	$(INSTALL_NOEXEC) $(LIBS_MAIN) $(PREFIX)/lib/$(PROGNAME)/main
	$(INSTALL_DIR) $(PREFIX)/lib/$(PROGNAME)/chroot
	$(INSTALL_NOEXEC) $(LIBS_CHROOT) $(PREFIX)/lib/$(PROGNAME)/chroot
	$(INSTALL_DIR) $(PREFIX)/lib/$(PROGNAME)/chroot-mount
	$(INSTALL_NOEXEC) $(LIBS_CHROOT_MOUNT) $(PREFIX)/lib/$(PROGNAME)/chroot-mount
	$(INSTALL_DIR) $(PREFIX)/lib/$(PROGNAME)/upgrade
	$(INSTALL_NOEXEC) $(LIBS_UPGRADE) $(PREFIX)/lib/$(PROGNAME)/upgrade
	$(INSTALL_DIR) $(PREFIX)/libexec/$(PROGNAME)
	$(INSTALL_SCRIPT) $(LIBEXECS) $(PREFIX)/libexec/$(PROGNAME)
	$(INSTALL_DIR) $(PREFIX)/man/man8
	$(INSTALL_NOEXEC) man/$(PROGNAME).8 $(PREFIX)/man/man8
	$(GZIP) ${PREFIX}/man/man8/$(PROGNAME).8
	$(INSTALL_NOEXEC) man/$(PROGNAME)-chroot.8 $(PREFIX)/man/man8
	$(GZIP) ${PREFIX}/man/man8/$(PROGNAME)-chroot.8
	$(INSTALL_NOEXEC) man/$(PROGNAME)-chroot-mount.8 $(PREFIX)/man/man8
	$(GZIP) ${PREFIX}/man/man8/$(PROGNAME)-chroot-mount.8
	$(INSTALL_NOEXEC) man/$(PROGNAME)-upgrade.8 $(PREFIX)/man/man8
	$(GZIP) ${PREFIX}/man/man8/$(PROGNAME)-upgrade.8
	$(INSTALL_DIR) $(PREFIX)/share/$(PROGNAME)/bin
	$(INSTALL_SCRIPT) $(PROGNAMES_DISPATCH) $(PREFIX)/share/$(PROGNAME)/bin
	$(INSTALL_DIR) $(PREFIX)/etc
	$(INSTALL_CONF) etc/$(PROGNAME).conf $(PREFIX)/etc/$(PROGNAME).conf.sample
	if [ ! -e $(PREFIX)/etc/$(PROGNAME).conf ]; then $(INSTALL_CONF) etc/$(PROGNAME).conf $(PREFIX)/etc; fi

clean:

deinstall:
	$(RM) ${PREFIX}/bin/$(PROGNAME)
	$(RMDIR) $(PREFIX)/lib/$(PROGNAME)
	$(RMDIR) $(PREFIX)/libexec/$(PROGNAME)
	$(RMDIR) $(PREFIX)/share/$(PROGNAME)
	$(RM) ${PREFIX}/man/man8/$(PROGNAME).8.gz
	$(RM) ${PREFIX}/man/man8/$(PROGNAME)-chroot.8.gz
	$(RM) ${PREFIX}/man/man8/$(PROGNAME)-chroot-mount.8.gz
	$(RM) ${PREFIX}/man/man8/$(PROGNAME)-upgrade.8.gz
	if diff -q $(PREFIX)/etc/$(PROGNAME).conf $(PREFIX)/etc/$(PROGNAME).conf.sample > /dev/null 2> /dev/null; then $(RM) $(PREFIX)/etc/$(PROGNAME).conf; fi
	$(RM) ${PREFIX}/etc/$(PROGNAME).conf.sample
