From 2385e4783a6a7929a7fc892cdb90b84ecdca265f Mon Sep 17 00:00:00 2001 From: B Stack Date: Mon, 13 Jan 2020 08:25:38 -0500 Subject: add Makefile --- Makefile | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6934631 --- /dev/null +++ b/Makefile @@ -0,0 +1,66 @@ +# File: Makefile for systemdtl +# Location: +# Author: bgstack15 +# Startdate: 2020-01-13 +# Title: Makefile for systemdtl source package +# Purpose: To use traditional Unix make utility +# History: +# Usage: +# Reference: +# bgscripts Makefile, beyond-the-titanic Makefile +# Improve: +# Document: +# Dependencies: + +APPNAME = systemctl +PKGNAME = systemdtl +APPVERSION = 0.0.1 +PKGDIR = $(CURDIR) +SRCDIR = $(CURDIR)/src +prefix = /usr +SBINDIR = $(DESTDIR)$(prefix)/sbin +SHAREDIR = $(DESTDIR)$(prefix)/share +CONFIGDIR = $(DESTDIR)/etc +#APPDIR = $(SHAREDIR)/$(APPNAME) +#APPSDIR = $(SHAREDIR)/applications +#DOCDIR = $(SHAREDIR)/doc/$(APPNAME) +#LICENSEDIR = $(SHAREDIR)/licenses/$(APPNAME) + +awkbin :=$(shell which awk) +cpbin :=$(shell which cp) +echobin :=$(shell which echo) +findbin :=$(shell which find) +grepbin :=$(shell which grep) +installbin :=$(shell which install) +rmbin :=$(shell which rm) +sedbin :=$(shell which sed) +sortbin :=$(shell which sort) +truebin :=$(shell which true) + +all: + ${echobin} No compilation required. + +.PHONY: clean install install_files uninstall list + +list: + @$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | ${awkbin} -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | ${sortbin} | ${grepbin} -E -v -e '^[^[:alnum:]]' -e '^$@$$' + +install: install_files + +install_files: + ${echobin} Installing files to ${DESTDIR} + ${installbin} -d ${SBINDIR} ${CONFIGDIR} + ${installbin} -m0755 ${SRCDIR}/sbin/${APPNAME} ${SBINDIR} + ${installbin} -m0644 ${SRCDIR}/etc/${PKGNAME}.conf ${CONFIGDIR} + for word in $$( ${findbin} ${SRCDIR} ! -type d ! -name '*.*' -print ) ; do ${echobin} ${installbin} -m0644 $${word} ${APPDIR} ; done + +uninstall: + ${echobin} SRCDIR=${SRCDIR} + # remove all files whose path match the files from the src/ directory from this install location. + for word in $$( ${findbin} ${DESTDIR} -mindepth 1 ! -type d -printf '%p\n' | ${awkbin} '{print length, $$0 }' | ${sortbin} -rn | ${awkbin} '{print $$2}' ) ; do ${rmbin} $${word} 2>/dev/null || ${truebin} ; done + + # remove all installed directories that are now blank. + for word in $$( ${findbin} ${DESTDIR} -mindepth 1 -type d -printf '%p\n' | ${awkbin} '{print length, $$0 }' | ${sortbin} -rn | ${awkbin} '{print $$2}' ) ; do ${findbin} $${word} -mindepth 1 1>/dev/null 2>&1 | read 1>/dev/null 2>&1 || { rmdir "$${word}" 2>/dev/null || ${truebin} ; } ; done + +clean: + ${echobin} "target $@ not implemented yet! Gotta say unh." -- cgit