summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 8652658dd97f0e8cd1eb2f5ad271db4b21621073 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
CXX ?= $(CROSS_COMPILE)g++

TESTER = testit

TESTADDSEL = testaddsel

DAEMON = ipmid
DAEMON_OBJ  =  ipmid.o \
               ipmiwhitelist.o

LIB_APP_OBJ = apphandler.o     \
              sensorhandler.o  \
              storagehandler.o \
              chassishandler.o \
              dcmihandler.o    \
              ipmisensor.o     \
              storageaddsel.o  \
              transporthandler.o  \
              globalhandler.o  \
              groupext.o

LIB_HOST_SRV_OBJ = host-services.o

TESTADDSEL_OBJ = $(TESTADDSEL).o \
                 storageaddsel.o

TESTER_OBJ = ipmisensor.o 	   \
	     testit.o

LIB_APP     = libapphandler.so
LIB_HOST_SRV = libhostservice.so

INSTALLED_LIBS += $(LIB_APP) $(LIB_HOST_SRV)
INSTALLED_HEADERS = ipmid-api.h

CXXFLAGS += -Wall -Wno-unused-result
CFLAGS += -Wall -Wno-unused-result

INC_FLAG += $(shell pkg-config --cflags --libs libsystemd) -I. -O2
LIB_FLAG += $(shell pkg-config  --libs libsystemd) -rdynamic
IPMID_PATH ?= -DHOST_IPMI_LIB_PATH=\"/usr/lib/host-ipmid/\"

DESTDIR ?= /
SBINDIR ?= /usr/sbin
INCLUDEDIR ?= /usr/include
LIBDIR ?= /usr/lib

WHITELIST_SRC = ipmiwhitelist.C
WHITELIST_CONF ?= host-ipmid-whitelist.conf

all: $(DAEMON) $(LIB_APP) $(LIB_HOST_SRV) $(TESTER)

$(WHITELIST_SRC) : generate_whitelist.sh $(WHITELIST_CONF)
	./$^ > $@

%.o: %.cpp
	$(CXX) -std=c++14 -fpic -c $< $(CXXFLAGS) $(INC_FLAG) $(IPMID_PATH) -o $@

$(LIB_APP): $(LIB_APP_OBJ)
	$(CXX) $^ -shared $(LDFLAGS) $(LIB_FLAG) -o $@ -lmapper

$(LIB_HOST_SRV): $(LIB_HOST_SRV_OBJ)
	$(CXX) $^ -shared $(LDFLAGS) $(LIB_FLAG) -o $@

$(DAEMON): $(DAEMON_OBJ)
	$(CXX) $^ $(LDFLAGS) $(LIB_FLAG) -o $@ -lmapper -ldl

$(TESTER): $(TESTER_OBJ)
	$(CXX) $^ $(LDFLAGS) $(LIB_FLAG) -o $@ -ldl

clean:
	rm -f $(DAEMON) $(TESTER) *.o *.so $(WHITELIST_SRC)

$(TESTADDSEL): $(TESTADDSEL_OBJ)
	$(CXX) $^ $(LDFLAGS) $(LIB_FLAG) -o $@ -ldl

install:
		install -m 0755 -d $(DESTDIR)$(SBINDIR)
		install -m 0755 ipmid $(DESTDIR)$(SBINDIR)
		install -m 0755 -d $(DESTDIR)$(LIBDIR)/host-ipmid
		install -m 0755 $(INSTALLED_LIBS) $(DESTDIR)$(LIBDIR)/host-ipmid
		install -m 0755 -d $(DESTDIR)$(INCLUDEDIR)/host-ipmid
		install -m 0644 $(INSTALLED_HEADERS) $(DESTDIR)$(INCLUDEDIR)/host-ipmid


OpenPOWER on IntegriCloud