# File: Makefile for coupons # Location: coupons source package # Author: bgstack15 # Startdate: 2022-09-09 # Title: Makefile for coupons source package # Purpose: To use traditional Unix make utility # History: # Usage: # Reference: # bgscripts Makefile # Improve: # Document: # Dependencies: # build-devuan: txt2man APPNAME = coupons APPVERSION = 0.0.1 SRCDIR = $(CURDIR) prefix = /usr BINDIR = $(DESTDIR)$(prefix)/bin LIBEXECDIR = $(DESTDIR)$(prefix)/libexec # for debian use /var/cache/apache2 CACHEDIR = $(DESTDIR)/var/cache/httpd # for debian use /etc/apache2/sites-available APACHEDIR = $(DESTDIR)/etc/httpd/conf.d # variables for deplist DEPTYPE = dep SEPARATOR = , awkbin :=$(shell which awk) chmodbin :=$(shell which chmod) cpbin :=$(shell which cp) echobin :=$(shell which echo) falsebin :=$(shell which false) findbin :=$(shell which find) grepbin :=$(shell which grep) gzipbin :=$(shell which gzip) installbin :=$(shell which install) rmbin :=$(shell which rm) rmdirbin :=$(shell which rmdir) sedbin :=$(shell which sed) sortbin :=$(shell which sort) truebin :=$(shell which true) txt2manwrapper :=usr/bin/txt2man-wrapper uniqbin :=$(shell which uniq) xargsbin :=$(shell which xargs) with_man ?= YES with_httpd ?= YES all: build_man ifeq ($(with_man),YES) install: build_man install_files else install: install_files endif .PHONY: clean install install_files build_man uninstall list deplist deplist_opts 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 '^$@$$' deplist: @# deplist 2020-04-18 input must be comma separated @# DEPTYPE( dep , rec , sug ) for depends, recommends, or suggests @if test -z "${DISTRO}" ; then ${echobin} "Please run \`make deplist\` with DISTRO= one of: `make deplist_opts 2>&1 1>/dev/null | ${xargsbin}`. Aborted." 1>&2 ; exit 1 ; fi @if ! ${echobin} "${DEPTYPE}" | grep -qE "^(dep|rec|sug)$$" ; then ${echobin} "Please run \`make deplist\` with DEPTYPE= one of: dep, rec, sug. Undefined will use \`dep\`. Aborted." 1>&2 ; exit 1; fi @${grepbin} -h --exclude-dir='doc' -riIE "\<${DEPTYPE}-" ${SRCDIR} | ${awkbin} -v "domain=${DISTRO}" -v "deptype=${DEPTYPE}" 'tolower($$2) ~ deptype"-"domain {$$1="";$$2="";print}' | tr ',' '\n' | ${sortbin} | ${uniqbin} | ${sedbin} -r -e 's/^\s*//' -e "s/\s*\$$/${SEPARATOR}/" | ${xargsbin} deplist_opts: @# deplist_opts 2020-04-18 find all available dependency domains @${grepbin} -h -o -riIE '\<(dep|rec|sug)-[^\ :]+:' ${SRCDIR} | ${sedbin} -r -e 's/(dep|rec|sug)-//;' -e 's/:$$//;' | ${sortbin} | ${uniqbin} 1>&2 install_files: @ls usr/share/man/man*/*gz 1>/dev/null 2>&1 && echo "Including man pages." || : @${echobin} Installing files to ${DESTDIR} ${installbin} -m 0755 -d ${LIBEXECDIR}/${APPNAME} \ ${LIBEXECDIR}/${APPNAME}/static/images \ ${LIBEXECDIR}/${APPNAME}/templates \ ${CACHEDIR}/${APPNAME} ${BINDIR} ${installbin} -m 0755 -t ${LIBEXECDIR}/${APPNAME} coupons.py coupons_web.py ${installbin} -m 0644 -t ${LIBEXECDIR}/${APPNAME}/static static/*.* ${installbin} -m 0644 -t ${LIBEXECDIR}/${APPNAME}/static/images static/images/* ${installbin} -m 0644 -t ${LIBEXECDIR}/${APPNAME}/templates templates/* ifeq ($(with_httpd),YES) ${installbin} -m 0755 -d ${APACHEDIR} ${installbin} -m 0644 -t ${APACHEDIR} extra/wsgi-coupons.conf @# substitute variables in the apache config file ${sedbin} -i -r -e "/XDG_CACHE_HOME/{s@(XDG_CACHE_HOME )[^ ]+@\1${CACHEDIR}/coupons_web.py@}" -e "/WSGIScriptAlias|\ $@ uninstall: @${echobin} SRCDIR=${SRCDIR} # remove all installed files ${rmbin} -rf ${LIBEXECDIR}/${APPNAME} \ ${CACHEDIR}/${APPNAME} \ ${APACHEDIR}/wsgi-coupons.conf clean: -@#${echobin} "target $@ not implemented yet! Gotta say unh." && ${falsebin} -${rmbin} -f usr/share/man/man*/*.gz || :