Remove superfluous string concatenation
[khatus.git] / Makefile
CommitLineData
91ee40f3
SK
1MAKEFLAGS := --no-builtin-rules
2
3ad4dbbb 3PREFIX := $(HOME)
03c229bf
SK
4PATH_TO_AWK := /usr/bin/awk
5AWK_EXECUTABLES := \
6 bin/khatus_bar \
7 bin/khatus_actuate_alert_to_notify_send \
8 bin/khatus_actuate_device_add_to_automount \
9 bin/khatus_actuate_status_bar_to_xsetroot_name \
10 bin/khatus_monitor_devices \
11 bin/khatus_monitor_energy \
12 bin/khatus_monitor_errors \
13 bin/khatus_parse_bluetoothctl_show \
14 bin/khatus_parse_df_pcent \
15 bin/khatus_parse_fan_file \
16 bin/khatus_parse_free \
17 bin/khatus_parse_ip_addr \
18 bin/khatus_parse_iwconfig \
19 bin/khatus_parse_loadavg_file \
20 bin/khatus_parse_metar_d_output \
21 bin/khatus_parse_mpd_status_currentsong \
22 bin/khatus_parse_pactl_list_sinks \
23 bin/khatus_parse_ps \
24 bin/khatus_parse_sys_block_stat \
25 bin/khatus_parse_udevadm_monitor_block \
26 bin/khatus_parse_upower
91ee40f3
SK
27BASH_EXECUTABLE_NAMES := \
28 khatus \
29 khatus_gen_bar_make_status \
30 khatus_sensor_bluetooth_power \
31 khatus_sensor_datetime \
32 khatus_sensor_devices \
33 khatus_sensor_disk_io \
34 khatus_sensor_disk_space \
35 khatus_sensor_energy \
36 khatus_sensor_fan \
37 khatus_sensor_loadavg \
38 khatus_sensor_memory \
39 khatus_sensor_mpd \
40 khatus_sensor_net_addr_io \
41 khatus_sensor_net_wifi_status \
42 khatus_sensor_procs \
43 khatus_sensor_screen_brightness \
44 khatus_sensor_temperature \
45 khatus_sensor_volume \
46 khatus_sensor_weather
47BASH_EXECUTABLES := $(foreach exe,$(BASH_EXECUTABLE_NAMES),bin/$(exe))
c6a7396e 48OCAML_EXECUTABLES := \
91ee40f3
SK
49 bin/khatus_cache_dumper
50EXECUTABLES := $(AWK_EXECUTABLES) $(BASH_EXECUTABLES) $(OCAML_EXECUTABLES)
03c229bf 51
82dcdacc 52define BUILD_AWK_EXE
8482fea6
SK
53 echo '#! $(PATH_TO_AWK) -f' > $@ && \
54 echo 'BEGIN {Node = Node ? Node : "$(shell hostname)"}' >> $@ && \
55 echo 'BEGIN {Module = "$(notdir $@)"}' >> $@ && \
56 cat $^ >> $@ && \
82dcdacc
SK
57 chmod +x $@
58endef
59
91ee40f3
SK
60define BUILD_BASH_EXE
61 cat $^ > $@ && \
62 chmod +x $@
63endef
64
65define GEN_BASH_EXE_RULE
66bin/$(1) : src/bash/exe/$(1).sh
67 $$(BUILD_BASH_EXE)
68endef
69
03c229bf
SK
70.PHONY: \
71 build \
3ad4dbbb 72 install \
03c229bf
SK
73 clean
74
91ee40f3
SK
75build: | bin
76build: $(EXECUTABLES)
03c229bf 77
3ad4dbbb
SK
78install:
79 $(foreach filename,$(wildcard bin/*),cp -p "$(filename)" "$(PREFIX)/$(filename)"; )
80
03c229bf 81clean:
91ee40f3 82 rm -rf bin
b5da4c6a 83 ocamlbuild -clean
91ee40f3
SK
84
85bin:
86 mkdir -p bin
87
88#-----------------------------------------------------------------------------
89# Bash
90#-----------------------------------------------------------------------------
91$(foreach exe,$(BASH_EXECUTABLE_NAMES),$(eval $(call GEN_BASH_EXE_RULE,$(exe))))
03c229bf 92
c6a7396e
SK
93#-----------------------------------------------------------------------------
94# AWK
95#-----------------------------------------------------------------------------
03c229bf
SK
96bin/khatus_bar: \
97 src/awk/exe/bar.awk \
98 src/awk/lib/cache.awk \
8482fea6 99 src/awk/lib/str.awk \
03c229bf
SK
100 src/awk/lib/msg_in.awk \
101 src/awk/lib/msg_out.awk \
8482fea6 102 src/awk/lib/num.awk
82dcdacc 103 $(BUILD_AWK_EXE)
03c229bf
SK
104
105bin/khatus_actuate_alert_to_notify_send: \
106 src/awk/exe/actuate_alert_to_notify_send.awk \
8482fea6 107 src/awk/lib/str.awk \
03c229bf 108 src/awk/lib/msg_in.awk
82dcdacc 109 $(BUILD_AWK_EXE)
03c229bf
SK
110
111bin/khatus_actuate_device_add_to_automount: \
112 src/awk/exe/actuate_device_add_to_automount.awk \
8482fea6 113 src/awk/lib/str.awk \
03c229bf 114 src/awk/lib/msg_in.awk \
e103315c 115 src/awk/lib/msg_out.awk
82dcdacc 116 $(BUILD_AWK_EXE)
03c229bf
SK
117
118bin/khatus_actuate_status_bar_to_xsetroot_name: \
119 src/awk/exe/actuate_status_bar_to_xsetroot_name.awk \
8482fea6 120 src/awk/lib/str.awk \
03c229bf 121 src/awk/lib/msg_in.awk
82dcdacc 122 $(BUILD_AWK_EXE)
03c229bf
SK
123
124bin/khatus_monitor_devices: \
125 src/awk/exe/monitor_devices.awk \
8482fea6 126 src/awk/lib/str.awk \
03c229bf 127 src/awk/lib/msg_in.awk \
e103315c 128 src/awk/lib/msg_out.awk
82dcdacc 129 $(BUILD_AWK_EXE)
03c229bf
SK
130
131bin/khatus_monitor_energy: \
132 src/awk/exe/monitor_energy.awk \
8482fea6 133 src/awk/lib/str.awk \
03c229bf
SK
134 src/awk/lib/msg_in.awk \
135 src/awk/lib/msg_out.awk \
8482fea6 136 src/awk/lib/num.awk
82dcdacc 137 $(BUILD_AWK_EXE)
03c229bf
SK
138
139bin/khatus_monitor_errors: \
140 src/awk/exe/monitor_errors.awk \
8482fea6 141 src/awk/lib/str.awk \
03c229bf 142 src/awk/lib/msg_in.awk \
e103315c 143 src/awk/lib/msg_out.awk
82dcdacc 144 $(BUILD_AWK_EXE)
03c229bf
SK
145
146bin/khatus_parse_bluetoothctl_show: \
147 src/awk/exe/parse_bluetoothctl_show.awk \
148 src/awk/lib/msg_out.awk
82dcdacc 149 $(BUILD_AWK_EXE)
03c229bf
SK
150
151bin/khatus_parse_df_pcent: \
152 src/awk/exe/parse_df_pcent.awk \
153 src/awk/lib/msg_out.awk
82dcdacc 154 $(BUILD_AWK_EXE)
03c229bf
SK
155
156bin/khatus_parse_fan_file: \
157 src/awk/exe/parse_fan_file.awk \
158 src/awk/lib/msg_out.awk
82dcdacc 159 $(BUILD_AWK_EXE)
03c229bf
SK
160
161bin/khatus_parse_free: \
162 src/awk/exe/parse_free.awk \
163 src/awk/lib/msg_out.awk
82dcdacc 164 $(BUILD_AWK_EXE)
03c229bf
SK
165
166bin/khatus_parse_ip_addr: \
167 src/awk/exe/parse_ip_addr.awk \
168 src/awk/lib/msg_out.awk
82dcdacc 169 $(BUILD_AWK_EXE)
03c229bf
SK
170
171bin/khatus_parse_iwconfig: \
172 src/awk/exe/parse_iwconfig.awk \
173 src/awk/lib/msg_out.awk
82dcdacc 174 $(BUILD_AWK_EXE)
03c229bf
SK
175
176bin/khatus_parse_loadavg_file: \
177 src/awk/exe/parse_loadavg_file.awk \
178 src/awk/lib/msg_out.awk
82dcdacc 179 $(BUILD_AWK_EXE)
03c229bf
SK
180
181bin/khatus_parse_metar_d_output: \
182 src/awk/exe/parse_metar_d_output.awk \
183 src/awk/lib/msg_out.awk \
8482fea6 184 src/awk/lib/str.awk
82dcdacc 185 $(BUILD_AWK_EXE)
03c229bf
SK
186
187bin/khatus_parse_mpd_status_currentsong: \
188 src/awk/exe/parse_mpd_status_currentsong.awk \
189 src/awk/lib/msg_out.awk
82dcdacc 190 $(BUILD_AWK_EXE)
03c229bf
SK
191
192bin/khatus_parse_pactl_list_sinks: \
193 src/awk/exe/parse_pactl_list_sinks.awk \
194 src/awk/lib/msg_out.awk
82dcdacc 195 $(BUILD_AWK_EXE)
03c229bf
SK
196
197bin/khatus_parse_ps: \
198 src/awk/exe/parse_ps.awk \
199 src/awk/lib/msg_out.awk
82dcdacc 200 $(BUILD_AWK_EXE)
03c229bf
SK
201
202bin/khatus_parse_sys_block_stat: \
203 src/awk/exe/parse_sys_block_stat.awk \
204 src/awk/lib/msg_out.awk
82dcdacc 205 $(BUILD_AWK_EXE)
03c229bf
SK
206
207bin/khatus_parse_udevadm_monitor_block: \
208 src/awk/exe/parse_udevadm_monitor_block.awk \
209 src/awk/lib/msg_out.awk
82dcdacc 210 $(BUILD_AWK_EXE)
03c229bf
SK
211
212bin/khatus_parse_upower: \
213 src/awk/exe/parse_upower.awk \
214 src/awk/lib/msg_out.awk
82dcdacc 215 $(BUILD_AWK_EXE)
c6a7396e
SK
216
217#-----------------------------------------------------------------------------
218# OCaml
219#-----------------------------------------------------------------------------
220bin/khatus_cache_dumper: src/ocaml/exe/khatus_cache_dumper.ml
221 ocamlbuild -cflags '-w A' -pkg unix -I src/ocaml/exe -I src/ocaml/lib khatus_cache_dumper.byte
222 mv _build/src/ocaml/exe/khatus_cache_dumper.byte bin/khatus_cache_dumper
223 rm -f khatus_cache_dumper.byte
This page took 0.051355 seconds and 4 git commands to generate.