Changeset 1902
- Timestamp:
- 03/16/09 13:53:31 (3 years ago)
- Files:
-
- trunk/Makefile (modified) (3 diffs)
- trunk/Makefile.config (modified) (2 diffs)
- trunk/Makefile.config-dist (modified) (3 diffs)
- trunk/Makefile.config-maint (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/Makefile
r1895 r1902 8 8 include Makefile.config 9 9 10 RELEASE = $(shell cat RELEASE)10 RELEASE := $(shell cat RELEASE) 11 11 INSTALL_PLUGINS ?= "auto manual contrib snmpauto" 12 INSTALL = ./install-sh13 DIR = $(shell /bin/pwd | sed 's/^.*\///')14 INFILES = $(shell find . -name '*.in' | sed 's/\.\/\(.*\)\.in$$/build\/\1/')15 PLUGINS = $(wildcard node/node.d.$(OSTYPE)/* node/node.d/*)16 MANCENTER = "Munin Documentation"17 MAN8 = node/munin-node node/munin-run \12 INSTALL := ./install-sh 13 DIR := $(shell /bin/pwd | sed 's/^.*\///') 14 INFILES := $(shell find . -name '*.in' | sed 's/\.\/\(.*\)\.in$$/build\/\1/') 15 PLUGINS := $(wildcard node/node.d.$(OSTYPE)/* node/node.d/*) 16 MANCENTER := "Munin Documentation" 17 MAN8 := node/munin-node node/munin-run \ 18 18 node/munin-node-configure-snmp \ 19 19 node/munin-node-configure \ … … 21 21 server/munin-limits server/munin-html \ 22 22 server/munin-gather 23 PODMAN8 = server/munin-cron24 PODMAN5 = server/munin.conf node/munin-node.conf23 PODMAN8 := server/munin-cron 24 PODMAN5 := server/munin.conf node/munin-node.conf 25 25 26 26 default: build … … 268 268 269 269 270 271 272 273 270 build/%: %.in 274 271 @echo "$< -> $@" 275 272 @mkdir -p build/`dirname $<` 276 @sed -e 's|@@PREFIX@@|$(PREFIX)|g' \277 -e 's|@@CONFDIR@@|$(CONFDIR)|g'\278 -e 's|@@BINDIR@@|$(BINDIR)|g'\279 -e 's|@@SBINDIR@@|$(SBINDIR)|g'\280 -e 's|@@DOCDIR@@|$(DOCDIR)|g'\281 -e 's|@@LIBDIR@@|$(LIBDIR)|g'\282 -e 's|@@MANDIR@@|$(MANDIR)|g'\283 -e 's|@@LOGDIR@@|$(LOGDIR)|g'\284 -e 's|@@HTMLDIR@@|$(HTMLDIR)|g'\285 -e 's|@@DBDIR@@|$(DBDIR)|g'\286 -e 's|@@STATEDIR@@|$(STATEDIR)|g'\287 -e 's|@@PERL@@|$(PERL)|g'\288 -e 's|@@PERLLIB@@|$(PERLLIB)|g'\289 -e 's|@@PYTHON@@|$(PYTHON)|g'\290 -e 's|@@OSTYPE@@|$(OSTYPE)|g'\291 -e 's|@@HOSTNAME@@|$(HOSTNAME)|g'\292 -e 's|@@MKTEMP@@|$(MKTEMP)|g'\293 -e 's|@@VERSION@@|$(VERSION)|g'\294 -e 's|@@PLUGSTATE@@|$(PLUGSTATE)|g'\295 -e 's|@@CGIDIR@@|$(CGIDIR)|g'\296 -e 's|@@USER@@|$(USER)|g'\297 -e 's|@@GROUP@@|$(GROUP)|g'\298 -e 's|@@PLUGINUSER@@|$(PLUGINUSER)|g'\299 -e 's|@@GOODSH@@|$(GOODSH)|g'\300 -e 's|@@BASH@@|$(BASH)|g'\301 -e 's|@@HASSETR@@|$(HASSETR)|g'\302 -e 's|@@SSPOOLDIR@@|$(SSPOOLDIR)|g'\303 $< > $@;273 @sed -e 's|@@PREFIX@@|$(PREFIX)|g' \ 274 -e 's|@@CONFDIR@@|$(CONFDIR)|g' \ 275 -e 's|@@BINDIR@@|$(BINDIR)|g' \ 276 -e 's|@@SBINDIR@@|$(SBINDIR)|g' \ 277 -e 's|@@DOCDIR@@|$(DOCDIR)|g' \ 278 -e 's|@@LIBDIR@@|$(LIBDIR)|g' \ 279 -e 's|@@MANDIR@@|$(MANDIR)|g' \ 280 -e 's|@@LOGDIR@@|$(LOGDIR)|g' \ 281 -e 's|@@HTMLDIR@@|$(HTMLDIR)|g' \ 282 -e 's|@@DBDIR@@|$(DBDIR)|g' \ 283 -e 's|@@STATEDIR@@|$(STATEDIR)|g' \ 284 -e 's|@@PERL@@|$(PERL)|g' \ 285 -e 's|@@PERLLIB@@|$(PERLLIB)|g' \ 286 -e 's|@@PYTHON@@|$(PYTHON)|g' \ 287 -e 's|@@OSTYPE@@|$(OSTYPE)|g' \ 288 -e 's|@@HOSTNAME@@|$(HOSTNAME)|g' \ 289 -e 's|@@MKTEMP@@|$(MKTEMP)|g' \ 290 -e 's|@@VERSION@@|$(VERSION)|g' \ 291 -e 's|@@PLUGSTATE@@|$(PLUGSTATE)|g' \ 292 -e 's|@@CGIDIR@@|$(CGIDIR)|g' \ 293 -e 's|@@USER@@|$(USER)|g' \ 294 -e 's|@@GROUP@@|$(GROUP)|g' \ 295 -e 's|@@PLUGINUSER@@|$(PLUGINUSER)|g' \ 296 -e 's|@@GOODSH@@|$(GOODSH)|g' \ 297 -e 's|@@BASH@@|$(BASH)|g' \ 298 -e 's|@@HASSETR@@|$(HASSETR)|g' \ 299 -e 's|@@SSPOOLDIR@@|$(SSPOOLDIR)|g' \ 300 $< > $@; 304 301 305 302 trunk/Makefile.config
r1848 r1902 22 22 # Then override 23 23 24 PREFIX = $(DESTDIR)/usr25 CONFDIR = $(DESTDIR)/etc/munin26 DOCDIR = $(PREFIX)/share/doc/munin27 MANDIR = $(PREFIX)/share/man28 SSPOOLDIR = /tmp/muninspool24 PREFIX := $(DESTDIR)/usr 25 CONFDIR := $(DESTDIR)/etc/munin 26 DOCDIR := $(PREFIX)/share/doc/munin 27 MANDIR := $(PREFIX)/share/man 28 SSPOOLDIR := /tmp/muninspool 29 29 30 30 31 31 # Where to put internal binaries and plugin repository 32 LIBDIR = $(PREFIX)/share/munin32 LIBDIR := $(PREFIX)/share/munin 33 33 34 34 # Server only - Output directory 35 HTMLDIR = /var/www/munin36 CGIDIR = $(HTMLDIR)/../cgi35 HTMLDIR := /var/www/munin 36 CGIDIR := $(HTMLDIR)/../cgi 37 37 38 38 # Client only - Where to put RRD files and other intenal data 39 DBDIR = $(DESTDIR)/var/lib/munin39 DBDIR := $(DESTDIR)/var/lib/munin 40 40 41 41 # Client only - Where plugins should put their states. Must be writable by 42 42 # group "munin", and should be preserved between reboots 43 PLUGSTATE = $(DBDIR)/plugin-state43 PLUGSTATE := $(DBDIR)/plugin-state 44 44 45 45 # Where Munin should place its logs. 46 LOGDIR = $(DESTDIR)/var/log/munin46 LOGDIR := $(DESTDIR)/var/log/munin 47 47 48 48 # Location of PID files and other statefiles. On the server, must be 49 49 # writable by the user "munin". 50 STATEDIR = $(DESTDIR)/var/run/munin50 STATEDIR := $(DESTDIR)/var/run/munin 51 51 52 52 # The perl interpreter to use 53 PERL = $(shell which perl)53 PERL := $(shell which perl) 54 54 55 55 # The python interpreter to use (used by some plugins) 56 PYTHON = /usr/bin/env python56 PYTHON := /usr/bin/env python 57 57 58 58 # A modern shell. We're not looking for arrays, but $() and other modern … … 61 61 # SunOS/Solaris: /usr/xpg4/bin/sh or /bin/ksh 62 62 # In general: bash or ksh will work 63 GOODSH = /bin/bash63 GOODSH := /bin/bash 64 64 65 65 # Path of bash for bash specific plugins 66 BASH = /bin/bash66 BASH := /bin/bash 67 67 68 68 # Where to install the perl libraries 69 PERLLIB = $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2)69 PERLLIB := $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2) 70 70 71 71 # Client only - Install plugins for this architecture 72 OSTYPE = $(shell uname | tr '[A-Z]' '[a-z]')72 OSTYPE := $(shell uname | tr '[A-Z]' '[a-z]') 73 73 74 74 # How to figure out the hostname. (Only used in default configuration 75 75 # files) 76 HOSTNAME = $(shell hostname)76 HOSTNAME := $(shell hostname) 77 77 78 78 # What is the safest way to create a tempfile. 79 79 # Default is to figure it out by testing various methods. 80 80 # Replace this with a known platform-specific method 81 MKTEMP = $(shell ./test-mktemp)81 MKTEMP := $(shell ./test-mktemp) 82 82 83 83 # Munin version number. 84 VERSION = $(shell ./getversion)84 VERSION := $(shell ./getversion) 85 85 86 86 # User to run munin as 87 USER = munin88 GROUP = munin87 USER := munin 88 GROUP := munin 89 89 90 90 # Default user to run the plugins as 91 PLUGINUSER = nobody91 PLUGINUSER := nobody 92 92 93 93 # Which command to use to check if the USER and GROUP to run Munin as, exists. 94 94 95 GETENT = $(shell which getent || which true 2>/dev/null)96 CHECKUSER = $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))97 CHECKGROUP = $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))95 GETENT := $(shell which getent || which true 2>/dev/null) 96 CHECKUSER := $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) 97 CHECKGROUP := $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) 98 98 99 CHOWN = chown100 CHMOD = chmod101 CHGRP = chgrp99 CHOWN := chown 100 CHMOD := chmod 101 CHGRP := chgrp trunk/Makefile.config-dist
r1881 r1902 14 14 # the base of the Munin installation. 15 15 # 16 PREFIX = $(DESTDIR)/opt/munin16 PREFIX := $(DESTDIR)/opt/munin 17 17 18 18 # Where Munin keeps its configurations (server.conf, client.conf, ++) 19 CONFDIR = $(DESTDIR)/etc/opt/munin19 CONFDIR := $(DESTDIR)/etc/opt/munin 20 20 21 21 # Server only - where to put munin-cron 22 BINDIR = $(PREFIX)/bin22 BINDIR := $(PREFIX)/bin 23 23 24 24 # Client only - where to put munin-node, munin-node-configure, and munin-run 25 SBINDIR = $(PREFIX)/sbin25 SBINDIR := $(PREFIX)/sbin 26 26 27 27 # Where to put text and html documentation 28 DOCDIR = $(PREFIX)/doc28 DOCDIR := $(PREFIX)/doc 29 29 30 30 # Where to put man pages 31 MANDIR = $(PREFIX)/man31 MANDIR := $(PREFIX)/man 32 32 33 33 # Where to put internal binaries and plugin repository 34 LIBDIR = $(PREFIX)/lib34 LIBDIR := $(PREFIX)/lib 35 35 36 36 # Server only - Output directory 37 HTMLDIR = $(PREFIX)/var/www38 CGIDIR = $(HTMLDIR)/cgi37 HTMLDIR := $(PREFIX)/var/www 38 CGIDIR := $(HTMLDIR)/cgi 39 39 40 40 # Server only - spool directory for data gathered from nodes by … … 43 43 # /tmp will be a ramdisk. 44 44 45 SSPOOLDIR = $(PREFIX)/spool45 SSPOOLDIR := $(PREFIX)/spool 46 46 47 47 # Suggested directory name for a pulic ramdisk based tmp directory. 48 # SSPOOLDIR = /tmp/muninspool48 # SSPOOLDIR := /tmp/muninspool 49 49 50 50 # Client only - Where to put RRD files and other intenal data 51 DBDIR = $(DESTDIR)/var/opt/munin51 DBDIR := $(DESTDIR)/var/opt/munin 52 52 53 53 # Client only - Where plugins should put their states. Must be writable by 54 54 # group "munin", and should be preserved between reboots 55 PLUGSTATE = $(DBDIR)/plugin-state55 PLUGSTATE := $(DBDIR)/plugin-state 56 56 57 57 # Where Munin should place its logs. 58 LOGDIR = $(DESTDIR)/var/log/munin58 LOGDIR := $(DESTDIR)/var/log/munin 59 59 60 60 # Location of PID files and other statefiles. On the server, must be 61 61 # writable by the user "munin". 62 STATEDIR = $(DESTDIR)/var/run/munin62 STATEDIR := $(DESTDIR)/var/run/munin 63 63 64 64 # The perl interpreter to use 65 PERL = $(shell which perl)65 PERL := $(shell which perl) 66 66 67 67 # The python interpreter to use (used by some plugins) 68 PYTHON = /usr/bin/env python68 PYTHON := /usr/bin/env python 69 69 70 70 # A modern (posix) shell. We're not looking for arrays, but $() and … … 76 76 # In general: bash or ksh will work 77 77 # 78 GOODSH = $(shell PATH=`getconf PATH` sh -c 'type sh | sed "s/.* //"')78 GOODSH := $(shell PATH=`getconf PATH` sh -c 'type sh | sed "s/.* //"') 79 79 80 80 # Path of bash for bash specific plugins 81 BASH = /bin/bash81 BASH := /bin/bash 82 82 83 83 # Server only - Where to install the perl libraries 84 PERLLIB = $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2)84 PERLLIB := $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2) 85 85 86 86 # Client only - Install plugins for this architecture 87 OSTYPE = $(shell uname | tr '[A-Z]' '[a-z]')87 OSTYPE := $(shell uname | tr '[A-Z]' '[a-z]') 88 88 89 89 # How to figure out the hostname. (Only used in default configuration 90 90 # files) 91 HOSTNAME = $(shell hostname)91 HOSTNAME := $(shell hostname) 92 92 93 93 # What is the safest way to create a tempfile. 94 94 # Default is to figure it out by testing various methods. 95 95 # Replace this with a known platform-specific method 96 MKTEMP = $(shell ./test-mktemp)96 MKTEMP := $(shell ./test-mktemp) 97 97 98 98 # Munin version number. 99 VERSION = $(shell ./getversion)99 VERSION := $(shell ./getversion) 100 100 101 101 # User to run munin as 102 USER = munin103 GROUP = munin102 USER := munin 103 GROUP := munin 104 104 105 105 # Default user to run the plugins as 106 PLUGINUSER = nobody106 PLUGINUSER := nobody 107 107 108 108 # Which command to use to check if the USER and GROUP to run Munin as, exists. 109 109 # These will work on most modern OSes: 110 110 # 111 GETENT = $(shell which getent || which true 2>/dev/null)112 CHECKUSER = $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))113 CHECKGROUP = $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))111 GETENT := $(shell which getent || which true 2>/dev/null) 112 CHECKUSER := $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) 113 CHECKGROUP := $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) 114 114 115 115 # For OSX, comment out the previous two lines and comment in these 116 116 # 117 #CHECKUSER = $(shell nicl . -read /users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))118 #CHECKGROUP = $(shell nicl . -read /groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))117 #CHECKUSER := $(shell nicl . -read /users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) 118 #CHECKGROUP := $(shell nicl . -read /groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) 119 119 120 120 # For OSX 10.5 (Leopard), use the following two lines instead of what's above 121 121 # 122 #CHECKUSER = $(shell dscl . -read /Users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))123 #CHECKGROUP = $(shell dscl . -read /Groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))122 #CHECKUSER := $(shell dscl . -read /Users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) 123 #CHECKGROUP := $(shell dscl . -read /Groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) 124 124 125 125 126 126 # For HP-UX, use these instead: 127 127 # 128 #CHECKUSER = $(shell pwget -n $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))129 #CHECKGROUP = $(shell grget -n $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))128 #CHECKUSER := $(shell pwget -n $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) 129 #CHECKGROUP := $(shell grget -n $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) 130 130 131 CHOWN = chown132 CHMOD = chmod133 CHGRP = chgrp131 CHOWN := chown 132 CHMOD := chmod 133 CHGRP := chgrp 134 134 135 135 # Check whether setruid functionality can be used 136 HASSETR = $(shell perl -e 'use Config; my @vars=("d_setruid", "d_setreuid", "d_setresuid"); foreach my $$var (@vars) { if ($$Config{$$var} eq "define") { print "1\n"; exit 0; } } print "0\n"; exit 0;' )136 HASSETR := $(shell perl -e 'use Config; my @vars=("d_setruid", "d_setreuid", "d_setresuid"); foreach my $$var (@vars) { if ($$Config{$$var} eq "define") { print "1\n"; exit 0; } } print "0\n"; exit 0;' ) trunk/Makefile.config-maint
r1751 r1902 22 22 # Then override 23 23 24 PREFIX = $(DESTDIR)/usr25 CONFDIR = $(DESTDIR)/etc/munin26 DOCDIR = $(PREFIX)/share/doc/munin27 MANDIR = $(PREFIX)/share/man28 SSPOOLDIR = /tmp/muninspool24 PREFIX := $(DESTDIR)/usr 25 CONFDIR := $(DESTDIR)/etc/munin 26 DOCDIR := $(PREFIX)/share/doc/munin 27 MANDIR := $(PREFIX)/share/man 28 SSPOOLDIR := /tmp/muninspool 29 29 30 30 31 31 # Where to put internal binaries and plugin repository 32 LIBDIR = $(PREFIX)/share/munin32 LIBDIR := $(PREFIX)/share/munin 33 33 34 34 # Server only - Output directory 35 HTMLDIR = /var/www/munin36 CGIDIR = $(HTMLDIR)/../cgi35 HTMLDIR := /var/www/munin 36 CGIDIR := $(HTMLDIR)/../cgi 37 37 38 38 # Client only - Where to put RRD files and other intenal data 39 DBDIR = $(DESTDIR)/var/lib/munin39 DBDIR := $(DESTDIR)/var/lib/munin 40 40 41 41 # Client only - Where plugins should put their states. Must be writable by 42 42 # group "munin", and should be preserved between reboots 43 PLUGSTATE = $(DBDIR)/plugin-state43 PLUGSTATE := $(DBDIR)/plugin-state 44 44 45 45 # Where Munin should place its logs. 46 LOGDIR = $(DESTDIR)/var/log/munin46 LOGDIR := $(DESTDIR)/var/log/munin 47 47 48 48 # Location of PID files and other statefiles. On the server, must be 49 49 # writable by the user "munin". 50 STATEDIR = $(DESTDIR)/var/run/munin50 STATEDIR := $(DESTDIR)/var/run/munin 51 51 52 52 # The perl interpreter to use 53 PERL = $(shell which perl)53 PERL := $(shell which perl) 54 54 55 55 # The python interpreter to use (used by some plugins) 56 PYTHON = /usr/bin/env python56 PYTHON := /usr/bin/env python 57 57 58 58 # A modern shell. We're not looking for arrays, but $() and other modern … … 61 61 # SunOS/Solaris: /usr/xpg4/bin/sh or /bin/ksh 62 62 # In general: bash or ksh will work 63 GOODSH = /bin/bash63 GOODSH := /bin/bash 64 64 65 65 # Path of bash for bash specific plugins 66 BASH = /bin/bash66 BASH := /bin/bash 67 67 68 68 # Server only - Where to install the perl libraries 69 PERLLIB = $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2)69 PERLLIB := $(DESTDIR)$(shell $(PERL) -V:sitelib | cut -d"'" -f2) 70 70 71 71 # Client only - Install plugins for this architecture 72 OSTYPE = $(shell uname | tr '[A-Z]' '[a-z]')72 OSTYPE := $(shell uname | tr '[A-Z]' '[a-z]') 73 73 74 74 # How to figure out the hostname. (Only used in default configuration 75 75 # files) 76 HOSTNAME = $(shell hostname)76 HOSTNAME := $(shell hostname) 77 77 78 78 # What is the safest way to create a tempfile. 79 79 # Default is to figure it out by testing various methods. 80 80 # Replace this with a known platform-specific method 81 MKTEMP = $(shell ./test-mktemp)81 MKTEMP := $(shell ./test-mktemp) 82 82 83 83 # Munin version number. 84 VERSION = $(shell ./getversion)84 VERSION := $(shell ./getversion) 85 85 86 86 # User to run munin as 87 USER = munin88 GROUP = munin87 USER := munin 88 GROUP := munin 89 89 90 90 # Default user to run the plugins as 91 PLUGINUSER = nobody91 PLUGINUSER := nobody 92 92 93 93 # Which command to use to check if the USER and GROUP to run Munin as, exists. 94 94 95 GETENT = $(shell which getent || which true 2>/dev/null)96 CHECKUSER = $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2"))97 CHECKGROUP = $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2"))95 GETENT := $(shell which getent || which true 2>/dev/null) 96 CHECKUSER := $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) 97 CHECKGROUP := $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) 98 98 99 CHOWN = chown100 CHMOD = chmod101 CHGRP = chgrp99 CHOWN := chown 100 CHMOD := chmod 101 CHGRP := chgrp
