[ansible][fedora] Update package name
[barometer.git] / src / collectd / Makefile
1 # makefile to manage collectd package
2 #
3
4 # Copyright 2016-2021 Intel Corporation, Anuket and others.
5 # All rights reserved.
6 #
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
10 #
11 # http://www.apache.org/licenses/LICENSE-2.0
12 #
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
18 #
19 #
20 # Contributors:
21 #   Aihua Li, Huawei Technologies.
22 #   Maryam Tahhan, Intel Corporation.
23 #   Emma Foley, Red Hat.
24
25 include ../mk/master.mk
26 include ../package-list.mk
27
28 WORK_DIR = collectd
29 # $COLLECTD_TAG can contain "/", which is being replaced with "-" here
30 TAG_DONE_FLAG := $(WORK_DIR)/.$(subst /,-,$(COLLECTD_TAG)).done
31 BUILD_CMD = ./build.sh
32 CONFIG_CMD =
33 CONFIG_CMD += ./configure
34
35 LIBPQOS_DIR = $(shell echo $$LIBPQOS_DIR)
36 ifeq ($(LIBPQOS_DIR),)
37 LIBPQOS_DIR = /usr
38 endif
39
40 XDG_CACHE_HOME_DIR = $(shell echo $$XDG_CACHE_HOME)
41 ifeq ($(XDG_CACHE_HOME_DIR),)
42 XDG_CACHE_HOME_DIR = $(shell echo $$HOME)
43 endif
44
45 ifeq ($(COLLECTD_FLAVOR),collectd-6)
46 CONFIG_CMD += --enable-cpu
47 CONFIG_CMD += --enable-interface
48 CONFIG_CMD += --enable-memory
49 CONFIG_CMD += --enable-ping
50 CONFIG_CMD += --enable-uptime
51
52 CONFIG_CMD += --disable-aggregation
53 CONFIG_CMD += --disable-amqp
54 CONFIG_CMD += --disable-amqp1
55 #CONFIG_CMD += --disable-apache
56 #CONFIG_CMD += --disable-apcups
57 #CONFIG_CMD += --disable-apple_sensors
58 #CONFIG_CMD += --disable-aquaero
59 CONFIG_CMD += --disable-barometer
60 #CONFIG_CMD += --disable-battery
61 #CONFIG_CMD += --disable-bind
62 #CONFIG_CMD += --disable-buddyinfo
63 #CONFIG_CMD += --disable-capabilities
64 #CONFIG_CMD += --disable-ceph
65 #CONFIG_CMD += --disable-cgroups
66 #CONFIG_CMD += --disable-chrony
67 CONFIG_CMD += --disable-check_uptime
68 #CONFIG_CMD += --disable-connectivity
69 #CONFIG_CMD += --disable-conntrack
70 #CONFIG_CMD += --disable-contextswitch
71 #CONFIG_CMD += --disable-cpufreq
72 #CONFIG_CMD += --disable-cpusleep
73 CONFIG_CMD += --disable-csv
74 #CONFIG_CMD += --disable-curl
75 #CONFIG_CMD += --disable-curl_json
76 CONFIG_CMD += --disable-curl_xml
77 #CONFIG_CMD += --disable-dbi
78 #CONFIG_CMD += --disable-dcpmm
79 #CONFIG_CMD += --disable-df
80 #CONFIG_CMD += --disable-disk
81 #CONFIG_CMD += --disable-dns
82 #CONFIG_CMD += --disable-dpdkevents
83 #CONFIG_CMD += --disable-dpdkstat
84 #CONFIG_CMD += --disable-dpdk_telemetry
85 #CONFIG_CMD += --disable-drbd
86 #CONFIG_CMD += --disable-email
87 #CONFIG_CMD += --disable-entropy
88 #CONFIG_CMD += --disable-ethstat
89 #CONFIG_CMD += --disable-exec
90 #CONFIG_CMD += --disable-fhcount
91 #CONFIG_CMD += --disable-filecount
92 #CONFIG_CMD += --disable-fscache
93 CONFIG_CMD += --disable-gmond
94 #CONFIG_CMD += --disable-gps
95 #CONFIG_CMD += --disable-gpu_nvidia
96 CONFIG_CMD += --disable-grpc
97 #CONFIG_CMD += --disable-hddtemp
98 #CONFIG_CMD += --disable-hugepages
99 #CONFIG_CMD += --disable-infiniband
100 #CONFIG_CMD += --disable-intel_pmu
101 #CONFIG_CMD += --disable-intel_rdt
102 #CONFIG_CMD += --disable-ipc
103 #CONFIG_CMD += --disable-ipmi
104 #CONFIG_CMD += --disable-iptables
105 #CONFIG_CMD += --disable-ipstats
106 #CONFIG_CMD += --disable-ipvs
107 #CONFIG_CMD += --disable-irq
108 CONFIG_CMD += --disable-java
109 #CONFIG_CMD += --disable-load
110 #CONFIG_CMD += --disable-log_logstash
111 #CONFIG_CMD += --disable-logfile
112 #CONFIG_CMD += --disable-logparser
113 #CONFIG_CMD += --disable-lpar
114 CONFIG_CMD += --disable-lua
115 #CONFIG_CMD += --disable-madwifi
116 CONFIG_CMD += --disable-match_empty_counter
117 CONFIG_CMD += --disable-match_hashed
118 CONFIG_CMD += --disable-match_regex
119 CONFIG_CMD += --disable-match_timediff
120 CONFIG_CMD += --disable-match_value
121 #CONFIG_CMD += --disable-mbmon
122 #CONFIG_CMD += --disable-mcelog
123 #CONFIG_CMD += --disable-md
124 #CONFIG_CMD += --disable-mdevents
125 #CONFIG_CMD += --disable-memcachec
126 #CONFIG_CMD += --disable-memcached
127 #CONFIG_CMD += --disable-mic
128 CONFIG_CMD += --disable-modbus
129 CONFIG_CMD += --disable-mqtt
130 #CONFIG_CMD += --disable-multimeter
131 #CONFIG_CMD += --disable-mysql
132 #CONFIG_CMD += --disable-netapp
133 #CONFIG_CMD += --disable-netlink
134 #CONFIG_CMD += --disable-netstat_udp
135 CONFIG_CMD += --disable-network
136 #CONFIG_CMD += --disable-nfs
137 #CONFIG_CMD += --disable-nginx
138 #CONFIG_CMD += --disable-notify_desktop
139 #CONFIG_CMD += --disable-notify_email
140 #CONFIG_CMD += --disable-notify_nagios
141 #CONFIG_CMD += --disable-ntpd
142 #CONFIG_CMD += --disable-numa
143 #CONFIG_CMD += --disable-nut
144 #CONFIG_CMD += --disable-olsrd
145 #CONFIG_CMD += --disable-onewire
146 CONFIG_CMD += --disable-openldap
147 #CONFIG_CMD += --disable-openvpn
148 #CONFIG_CMD += --disable-oracle
149 #CONFIG_CMD += --disable-ovs_events
150 #CONFIG_CMD += --disable-ovs_stats
151 #CONFIG_CMD += --disable-pcie_errors
152 CONFIG_CMD += --disable-perl
153 #CONFIG_CMD += --disable-pf
154 #CONFIG_CMD += --disable-pinba
155 CONFIG_CMD += --disable-postgresql
156 #CONFIG_CMD += --disable-powerdns
157 #CONFIG_CMD += --disable-processes
158 #CONFIG_CMD += --disable-procevent
159 #CONFIG_CMD += --disable-protocols
160 CONFIG_CMD += --disable-python
161 #CONFIG_CMD += --disable-redfish
162 CONFIG_CMD += --disable-redis
163 #CONFIG_CMD += --disable-routeros
164 CONFIG_CMD += --disable-rrdcached
165 CONFIG_CMD += --disable-rrdtool
166 #CONFIG_CMD += --disable-sensors
167 #CONFIG_CMD += --disable-serial
168 #CONFIG_CMD += --disable-sigrok
169 #CONFIG_CMD += --disable-slurm
170 #CONFIG_CMD += --disable-smart
171 CONFIG_CMD += --disable-snmp
172 CONFIG_CMD += --disable-snmp_agent
173 CONFIG_CMD += --disable-statsd
174 #CONFIG_CMD += --disable-swap
175 #CONFIG_CMD += --disable-synproxy
176 #CONFIG_CMD += --disable-sysevent
177 #CONFIG_CMD += --disable-syslog
178 #CONFIG_CMD += --disable-table
179 #CONFIG_CMD += --disable-tail
180 #CONFIG_CMD += --disable-tail_csv
181 #CONFIG_CMD += --disable-tape
182 CONFIG_CMD += --disable-target_notification
183 CONFIG_CMD += --disable-target_replace
184 CONFIG_CMD += --disable-target_scale
185 CONFIG_CMD += --disable-target_set
186 CONFIG_CMD += --disable-target_v5upgrade
187 #CONFIG_CMD += --disable-tcpconns
188 #CONFIG_CMD += --disable-teamspeak2
189 #CONFIG_CMD += --disable-ted
190 #CONFIG_CMD += --disable-thermal
191 CONFIG_CMD += --disable-threshold
192 #CONFIG_CMD += --disable-tokyotyrant
193 #CONFIG_CMD += --disable-turbostat
194 #CONFIG_CMD += --disable-ubi
195 #CONFIG_CMD += --disable-unixsock
196 #CONFIG_CMD += --disable-users
197 #CONFIG_CMD += --disable-uuid
198 #CONFIG_CMD += --disable-varnish
199 #CONFIG_CMD += --disable-virt
200 #CONFIG_CMD += --disable-vmem
201 #CONFIG_CMD += --disable-vserver
202 #CONFIG_CMD += --disable-wireless
203 CONFIG_CMD += --disable-write_graphite
204 #CONFIG_CMD += --disable-write_http
205 CONFIG_CMD += --disable-write_influxdb_udp
206 CONFIG_CMD += --disable-write_kafka
207 #CONFIG_CMD += --disable-write_log
208 CONFIG_CMD += --disable-write_mongodb
209 CONFIG_CMD += --disable-write_prometheus
210 CONFIG_CMD += --disable-write_redis
211 CONFIG_CMD += --disable-write_riemann
212 CONFIG_CMD += --disable-write_sensu
213 #CONFIG_CMD += --disable-write_stackdriver
214 CONFIG_CMD += --disable-write_syslog
215 CONFIG_CMD += --disable-write_tsdb
216 #CONFIG_CMD += --disable-xencpu
217 #CONFIG_CMD += --disable-zfs_arc
218 #CONFIG_CMD += --disable-zone
219 #CONFIG_CMD += --disable-zookeeper
220 CONFIG_CMD += --enable-debug
221 else
222 CONFIG_CMD += --enable-syslog
223 CONFIG_CMD += --enable-logfile
224 CONFIG_CMD += --with-libpqos=$(LIBPQOS_DIR)
225 CONFIG_CMD += --enable-hugepages
226 CONFIG_CMD += --with-libjevents=/usr/local
227 CONFIG_CMD += --enable-exec
228 CONFIG_CMD += --enable-python
229 CONFIG_CMD += --enable-threshold
230 CONFIG_CMD += --enable-write_redis
231 CONFIG_CMD += --disable-perl
232 CONFIG_CMD += --with-librdkafka=/usr
233 CONFIG_CMD += --disable-lvm
234 endif
235
236 ifdef WITH_DPDK
237 CONFIG_CMD += LIBDPDK_CFLAGS='-mssse3'
238 endif
239
240 CONFIG_CMD += $(COLLECTD_CONFIG_CMD_ARGS)
241
242 .PHONY: install force_install config force_make
243
244 # install depends on make
245 force_install: force_make
246
247 all: force_make
248         @echo "Finished making $(WORK_DIR)"
249
250 config $(WORK_DIR)/Makefile: $(WORK_DIR)/configure
251         @echo "Configuring with: " $(CONFIG_CMD)
252         $(AT)cd $(WORK_DIR); $(CONFIG_CMD)
253         @echo "Configure done"
254
255 force_make: $(WORK_DIR)/Makefile
256         $(AT) $(MAKE) -C $(WORK_DIR) $(MORE_MAKE_FLAGS)
257         @echo "Make done"
258
259 force_install:
260         $(AT)$(MAKE) -C $(WORK_DIR) install
261 ifndef DOCKER
262         $(AT)cp $(WORK_DIR)/contrib/systemd.collectd.service /etc/systemd/system/
263         $(AT)mv /etc/systemd/system/systemd.collectd.service /etc/systemd/system/collectd.service
264         $(AT)sed -i -e 's/ExecStart=\/usr\/sbin\/collectd/ExecStart=\/opt\/collectd\/sbin\/collectd/g' /etc/systemd/system/collectd.service
265         $(AT)sed -i -e 's/CapabilityBoundingSet=/CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_SYS_RAWIO CAP_SYS_ADMIN/g' /etc/systemd/system/collectd.service
266         $(AT)sed -i -e 's|Environment=\(.*\)|Environment=XDG_CACHE_HOME='$(XDG_CACHE_HOME_DIR)' \1|g' /etc/systemd/system/collectd.service
267         $(AT)systemctl daemon-reload
268 endif
269         $(AT)sudo ./ovs_pmd_stats_config.sh
270         $(AT)sudo ./snmp_mib_config.sh
271
272         @echo "Using sample configs: $(SAMPLE_CONF_VARIANT_NAME)"
273         $(AT)sudo ./include_config.sh $(SAMPLE_CONF_VARIANT_NAME)
274         @echo "Make install done"
275
276 install: force_install
277
278
279 # hard way to clean and clobber
280 clean:
281         $(AT)cd $(WORK_DIR) && git clean -xfd *.o
282 clobber:
283         $(AT)rm -rf $(WORK_DIR)
284
285 # distclean is for developer who would like to keep the
286 # clone git repo, saving time to fetch again from url
287 distclean:
288         $(AT)cd $(WORK_DIR) && git clean -xfd && git checkout -f
289
290 test:
291         @echo "Make test in $(WORK_DIR) (stub) "
292
293 sanity:
294         @echo "Make sanity in $(WORK_DIR) (stub) "
295
296 .PHONY: boot
297 # boot collectd is the process to produce the script 'configure'
298 boot $(WORK_DIR)/configure: $(TAG_DONE_FLAG)
299         @echo "booting up collectd"
300         $(AT)cd $(WORK_DIR); $(BUILD_CMD)
301         @echo "done booting collectd"
302
303 $(WORK_DIR):
304         $(AT)git clone $(COLLECTD_URL)
305
306 $(TAG_DONE_FLAG): $(WORK_DIR)
307         @echo "Checking out collectd from tag: $(COLLECTD_TAG)"
308         $(AT)cd collectd; git fetch origin $(COLLECTD_TAG); git checkout FETCH_HEAD
309 ifneq ($(PATCH_FILE),)
310         $(AT)cd $(WORK_DIR); patch -p1 < ../$(PATCH_FILE)
311 endif
312 ifeq ($(COLLECTD_USE_EXPERIMENTAL_PR), y)
313         @echo "Applying experimental pull requests"
314         $(AT)cd $(WORK_DIR); ../collectd_apply_pull_request.sh
315 endif
316         $(AT)touch $@