# -*- makefile -*- # # This is the Makefile.config file to use for a "clean" distribution. # # This file specifies where Munin will look for things after you've # run 'make' in the source directory. Modify it to suit your needs. # DESTDIR is meant only for use when making Munin packages. Unless # you're doing packaging do NOT set it. # DESTDIR is empty during building, and optionally set to point to # a shadow tree during make install. # Note: There is a need for a VARDIR, with DBDIR, PLUGSTATE, HTMLDIR # and LOGDIR as subdirectories. Today, DBDIR contains configured # domains, as well as PLUGSTATE, and we risk collisions. # # the base of the Munin installation. # PREFIX = $(DESTDIR)/usr # Where Munin keeps its configurations (server.conf, client.conf, ++) CONFDIR = $(DESTDIR)/etc/munin # Server only - where to put munin-cron BINDIR = $(PREFIX)/bin # Client only - where to put munin-node, munin-node-configure, and munin-run SBINDIR = $(PREFIX)/sbin # Where to put text and html documentation DOCDIR = $(PREFIX)/doc/packages # Where to put man pages MANDIR = $(PREFIX)/share/man # Where to put internal binaries and plugin repository LIBDIR = $(PREFIX)/lib/munin # Server only - Output directory HTMLDIR = $(DESTDIR)/srv/www/htdocs/munin CGIDIR = $(DESTDIR)/srv/www/cgi-bin # Server only - spool directory for data gathered from nodes by # munin-gather - experimental. Place on ramdisk to make munin # scale better. On many versions of Linux as well as on Solaris # /tmp will be a ramdisk. SSPOOLDIR = $(DESTDIR)/var/lib/spool/munin # Suggested directory name for a pulic ramdisk based tmp directory. # SSPOOLDIR := /tmp/muninspool # Client only - Where to put RRD files and other intenal data DBDIR = $(DESTDIR)/var/lib/munin # Client only - Where plugins should put their states. Must be writable by # group "munin", and should be preserved between reboots PLUGSTATE = $(DBDIR)/plugin-state # Where Munin should place its logs. LOGDIR = $(DESTDIR)/var/log/munin # Location of PID files and other statefiles. On the server, must be # writable by the user "munin". STATEDIR = $(DESTDIR)/var/run/munin # The perl interpreter to use PERL := $(shell which perl) # The python interpreter to use (used by some plugins) PYTHON := /usr/bin/env python # The ruby interpreter to use (used by some plugins) RUBY := /usr/bin/env ruby # The java runtime to use (used by some plugins) JAVARUN := /usr/bin/java # The java library dir to use (used by some plugins) # this is needed in order to be able to install # java libraries in a custom location. Many distrubutions # enforce a spesific location for java libraries. JAVALIBDIR:= $(LIBDIR) # A modern (posix) shell. We're not looking for arrays, but $() and # other modern stuff is expected. On a posix-system the expression # below will find the right shell. Most Unixes released the last 10 # years are POSIX compliant enough for this to work (he said bravely). # # On Linux /bin/sh, SunOS/Solaris /usr/xpg4/bin/sh or /bin/ksh # In general: bash or ksh will work # GOODSH := $(shell PATH=`getconf PATH` sh -c 'type sh | sed "s/.* //"') # Path of bash for bash specific plugins BASH := /bin/bash # Server only - Where to install the perl libraries PERLSITELIB := $(shell $(PERL) -V:sitelib | cut -d"'" -f2) #PERLLIB = $(DESTDIR)$(PERLSITELIB) PERLLIB = $(DESTDIR)$(shell ( $(PERL) -V:vendorlib | egrep -v "UNKNOWN|=''" || $(PERL) -V:sitelib) | cut -d\' -f 2) # Client only - Install plugins for this architecture OSTYPE := $(shell uname | tr '[A-Z]' '[a-z]') # How to figure out the hostname. (Only used in default configuration # files) HOSTNAME := $(shell hostname) # What is the safest way to create a tempfile. # Default is to figure it out by testing various methods. # Replace this with a known platform-specific method MKTEMP := $(shell ./test-mktemp) # Munin version number. VERSION := $(shell ./getversion) # User to run munin as USER := munin GROUP := munin # Default user to run the plugins as PLUGINUSER := nobody # Which command to use to check if the USER and GROUP to run Munin as, exists. # These will work on most modern OSes: # GETENT := $(shell which getent || which true 2>/dev/null) CHECKUSER:= true CHECKGROUP:= true #CHECKUSER := $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2")) #CHECKGROUP := $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2")) # For OSX, comment out the previous two lines and comment in these # #CHECKUSER := $(shell nicl . -read /users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2")) #CHECKGROUP := $(shell nicl . -read /groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2")) # For OSX 10.5 (Leopard), use the following two lines instead of what's above # #CHECKUSER := $(shell dscl . -read /Users/$(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2")) #CHECKGROUP := $(shell dscl . -read /Groups/$(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2")) # For HP-UX, use these instead: # #CHECKUSER := $(shell pwget -n $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistent. Create the user and retry; exit 2")) #CHECKGROUP := $(shell grget -n $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistent. Create the group and retry; exit 2")) CHOWN := echo Not done: chown CHMOD := echo Not done: chmod CHGRP := echo Not done: chgrp # Java compiler stuff - only needed on the buildhost JC := javac JFLAGS := -g -source 1.5 -target 1.5 JAR := jar # Check if the java compiler works JCVALID := $(shell $(JC) -version >/dev/null 2>/dev/null && echo "yes") # Check whether setruid functionality can be used 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;' )