aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorB Stack <bgstack15@gmail.com>2020-01-13 08:25:38 -0500
committerB Stack <bgstack15@gmail.com>2020-01-13 08:25:38 -0500
commit2385e4783a6a7929a7fc892cdb90b84ecdca265f (patch)
tree409cc9c36dfe83cd4578825d827c8b1363b8eaa6 /Makefile
parentactually execute action list (diff)
downloadsystemdtl-2385e4783a6a7929a7fc892cdb90b84ecdca265f.tar.gz
systemdtl-2385e4783a6a7929a7fc892cdb90b84ecdca265f.tar.bz2
systemdtl-2385e4783a6a7929a7fc892cdb90b84ecdca265f.zip
add Makefile
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile66
1 files changed, 66 insertions, 0 deletions
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."
bgstack15