#
# Copyright (c) 2013-2020 Red Hat.
# Copyright (c) 2000,2003,2004 Silicon Graphics, Inc.  All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#

TOPDIR = ../..
include $(TOPDIR)/src/include/builddefs
-include ./GNUlocaldefs

CPMDAS = root pmcd \
	linux_proc linux_xfs linux_zfs linux \
	darwin freebsd netbsd solaris aix windows \
	sample simple trivial sendmail mailq txmon \
	apache cisco trace shping mounts weblog \
	mmv lmsensors process roomtemp summary etw \
	lustrecomm infiniband logger bash systemd \
	gfs2 jbd2 cifs rpm nvidia perfevent \
	dm pipe openbsd docker smart podman statsd \
	hacluster linux_sockets

PLPMDAS = bonding netfilter zimbra postgresql \
	dbping memcache mysql oracle vmware kvm \
	named news pdns samba dtsrun postfix gpsd \
	rsyslog snmp nginx nfsclient \
	ds389 ds389log activemq lustre gpfs slurm \
	bind2 redis nutcracker

PYPMDAS = bcc gluster zswap unbound mic haproxy \
	json libvirt lio openmetrics elasticsearch \
	bpftrace mssql netcheck rabbitmq openvswitch

SUBDIRS = $(CPMDAS) $(PLPMDAS) $(PYPMDAS)
LDIRT = pmcd.conf

HAVE_UNIX_DOMAIN_SOCKETS = $(shell grep 'define HAVE_STRUCT_SOCKADDR_UN' $(TOPDIR)/src/include/pcp/config.h >/dev/null && echo yes)

default :: default_pcp

default_pcp : $(SUBDIRS)
	@echo '# Performance Metrics Domain Specifications' > pmcd.conf
	@echo '# ' >> pmcd.conf
	@echo '# This file is automatically generated during the build' >> pmcd.conf
	@echo '# Name  Id      IPC     IPC Params      File/Cmd' >> pmcd.conf
	$(SUBDIRS_MAKERULE)
	@echo >> pmcd.conf
	@echo '[access]' >> pmcd.conf
	@echo 'disallow ".*" : store;' >> pmcd.conf
	@echo 'disallow ":*" : store;' >> pmcd.conf
ifeq "$(HAVE_UNIX_DOMAIN_SOCKETS)" "yes"
	@echo 'allow "local:*" : all;' >> pmcd.conf
else
	@echo 'allow "localhost" : all;' >> pmcd.conf
endif

install :: install_pcp

install_pcp :: $(SUBDIRS)
	$(SUBDIRS_MAKERULE)

install_pcp :: default_pcp
	$(INSTALL) -m 755 -d `dirname $(PCP_PMCDCONF_PATH)`
	$(INSTALL) -m 644 pmcd.conf $(PCP_PMCDCONF_PATH)

include $(BUILDRULES)
