srcdir?=$(dir $(abspath $(lastword $(MAKEFILE_LIST)))) exec_prefix?=$(prefix) sbindir?=$(exec_prefix)/sbin sysconfdir?=$(prefix)/etc libdir?=$(prefix)/lib TARGET=ipmi-energy-agent VERSION=$(shell grep IPMI_ENERGY_AGENT_VERSION src/version.h | sed 's/[^"]*"\([0-9]*\.[0-9]*\).*/\1/') TARBALL=$(TARGET)-$(VERSION).tar.bz2 DEPS_ROOT=$(srcdir)/deps OPENIPMI_VERSION=2.0.21 OPENIPMI_PACKAGE=OpenIPMI-$(OPENIPMI_VERSION) OPENIPMI_ROOT=$(DEPS_ROOT)/$(OPENIPMI_PACKAGE) OPENIPMI_LIBDIR=$(OPENIPMI_ROOT)/lib/.libs OPENIPMI_UTILS_LIBDIR=$(OPENIPMI_ROOT)/utils/.libs OPENIPMI_UNIX_LIBDIR=$(OPENIPMI_ROOT)/unix/.libs OPENIPMI_TARGET=$(OPENIPMI_LIBDIR)/libOpenIPMI.a POPT_VERSION=1.16 POPT_PACKAGE=popt-$(POPT_VERSION) POPT_ROOT=$(DEPS_ROOT)/$(POPT_PACKAGE) POPT_LIBDIR=$(POPT_ROOT)/.libs POPT_TARGET=$(POPT_LIBDIR)/libpopt.a ALLINEA_FORGE_PATH?=/opt/arm/forge CFLAGS ?= -g -O2 SOURCES=counters.c ipmi.c main.c simulate.c HEADERS=counters.h ipmi.h main.h options.h simulate.h TESTS=map-test VPATH=src test all: $(TARGET) $(TARGET): $(SOURCES) $(HEADERS) $(CC) $(filter %.c,$^) $(CFLAGS) -o $(TARGET) -lrt -I/usr/include/OpenIPMI -L/usr/lib64/ -lOpenIPMI -lOpenIPMIutils -L/usr/lib64/pkgconfig -lOpenIPMIposix -lm $(filter-out map-test,$(TESTS)): %: %.c $(CC) $< $(CFLAGS) -o $@ map-test: map-test.c map-metric-plugin-api.c $(ALLINEA_FORGE_PATH)/map/metrics/lib-system-energy.so $(ALLINEA_FORGE_PATH)/lib/64/libmap-sampler.so $(CC) $^ $(CFLAGS) -o $@ -I$(ALLINEA_FORGE_PATH)/map/metrics/include -L$(ALLINEA_FORGE_PATH)/map/metrics -l-system-energy -Wl,-rpath -Wl,$(ALLINEA_FORGE_PATH)/map/metrics -Wl,-rpath -Wl,$(ALLINEA_FORGE_PATH)/lib/64 -lrt .PHONY: install uninstall clean tar rpm deb test install: install -d $(DESTDIR)$(sbindir)/ install $(TARGET) $(DESTDIR)$(sbindir)/ install -d $(DESTDIR)$(libdir)/systemd/system/ install -m 0644 lib/systemd/system/ipmi-energy-agent.service $(DESTDIR)$(libdir)/systemd/system/ install -d $(DESTDIR)$(sysconfdir)/init.d/ install -m 0644 etc/init.d/ipmi-energy-agent $(DESTDIR)$(sysconfdir)/init.d/ install -d $(DESTDIR)$(sysconfdir)/default/ install -m 0644 etc/default/ipmi-energy-agent $(DESTDIR)$(sysconfdir)/default/ uninstall: rm -f $(DESTDIR)$(sbindir)/$(TARGET) rm -f $(DESTDIR)$(libdir)/systemd/system/ipmi-energy-agent.service rm -f $(DESTDIR)$(etcdir)/init.d/ipmi-energy-agent clean: rm -f $(TARGET) $(TESTS) rm -rf $(OPENIPMI_ROOT) $(POPT_ROOT) rm -rf debian/ipmi-energy-agent tar: clean cd .. && tar -cjf $(TARBALL) ipmi-energy-agent rpm: tar topdir=$$(mktemp -d); \ mkdir $$topdir/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}; \ rpmbuild -ta --define="_topdir $$topdir" --define="_rpmdir .." --buildroot="$$topdir/BUILDROOT" ../$(TARBALL); \ ret=$$? \ rm -rf $$topdir \ exit $$ret deb: clean debuild -i -us -uc -b test: $(TARGET) $(TESTS) for test in $(filter-out map-test,$(TESTS)); do ./$$test; done PL_FOLDER=$$(mktemp -d); PL_FOLDER="$$PL_FOLDER" ./map-test; ret=$$?; rm -r "$$PL_FOLDER"; exit $$ret