Fix coercion-related ambiguities
[khatus.git] / x2 / Makefile
1 MAKEFLAGS := --no-builtin-rules
2
3 PREFIX := $(HOME)
4 PATH_TO_AWK := /usr/bin/awk
5 AWK_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_gen_bar_make_status \
11 bin/khatus_monitor_devices \
12 bin/khatus_monitor_energy \
13 bin/khatus_monitor_errors \
14 bin/khatus_parse_bluetoothctl_show \
15 bin/khatus_parse_df_pcent \
16 bin/khatus_parse_fan_file \
17 bin/khatus_parse_free \
18 bin/khatus_parse_ip_addr \
19 bin/khatus_parse_iwconfig \
20 bin/khatus_parse_loadavg_file \
21 bin/khatus_parse_noaa_api \
22 bin/khatus_parse_mpd_status_currentsong \
23 bin/khatus_parse_pactl_list_sinks \
24 bin/khatus_parse_ps \
25 bin/khatus_parse_sys_block_stat \
26 bin/khatus_parse_udevadm_monitor_block \
27 bin/khatus_parse_upower
28 BASH_EXECUTABLE_NAMES := \
29 khatus \
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_carrier \
42 khatus_sensor_net_wifi_status \
43 khatus_sensor_procs \
44 khatus_sensor_screen_brightness \
45 khatus_sensor_temperature \
46 khatus_sensor_volume \
47 khatus_sensor_weather
48 BASH_EXECUTABLES := $(foreach exe,$(BASH_EXECUTABLE_NAMES),bin/$(exe))
49 EXECUTABLES := $(AWK_EXECUTABLES) $(BASH_EXECUTABLES)
50
51 define BUILD_AWK_EXE
52 echo '#! $(PATH_TO_AWK) -f' > $@ && \
53 echo 'BEGIN {Node = Node ? Node : "$(shell hostname)"}' >> $@ && \
54 echo 'BEGIN {Module = "$(notdir $@)"}' >> $@ && \
55 cat $^ >> $@ && \
56 chmod +x $@
57 endef
58
59 define BUILD_BASH_EXE
60 cat $^ > $@ && \
61 chmod +x $@
62 endef
63
64 define GEN_BASH_EXE_RULE
65 bin/$(1) : src/bash/exe/$(1).sh
66 $$(BUILD_BASH_EXE)
67 endef
68
69 .PHONY: \
70 build \
71 rebuild \
72 install \
73 uninstall \
74 reinstall \
75 clean
76
77 build: | bin
78 build: $(EXECUTABLES)
79
80 install:
81 @$(foreach filename,$(wildcard bin/*),cp -p "$(filename)" "$(PREFIX)/$(filename)"; )
82
83 uninstall:
84 @$(foreach filename,$(wildcard $(PREFIX)/bin/khatus*),rm "$(filename)"; )
85
86 reinstall:
87 @$(MAKE) -s uninstall
88 @$(MAKE) -s install
89
90 rebuild:
91 @$(MAKE) -s clean
92 @$(MAKE) -s build
93
94 clean:
95 rm -rf bin
96
97 bin:
98 mkdir -p bin
99
100 #-----------------------------------------------------------------------------
101 # Bash
102 #-----------------------------------------------------------------------------
103 $(foreach exe,$(BASH_EXECUTABLE_NAMES),$(eval $(call GEN_BASH_EXE_RULE,$(exe))))
104
105 #-----------------------------------------------------------------------------
106 # AWK
107 #-----------------------------------------------------------------------------
108 bin/khatus_bar: \
109 src/awk/exe/bar.awk \
110 src/awk/lib/cache.awk \
111 src/awk/lib/str.awk \
112 src/awk/lib/msg.awk \
113 src/awk/lib/num.awk
114 $(BUILD_AWK_EXE)
115
116 bin/khatus_actuate_alert_to_notify_send: \
117 src/awk/exe/actuate_alert_to_notify_send.awk \
118 src/awk/lib/str.awk \
119 src/awk/lib/msg.awk
120 $(BUILD_AWK_EXE)
121
122 bin/khatus_actuate_device_add_to_automount: \
123 src/awk/exe/actuate_device_add_to_automount.awk \
124 src/awk/lib/str.awk \
125 src/awk/lib/msg.awk
126 $(BUILD_AWK_EXE)
127
128 bin/khatus_actuate_status_bar_to_xsetroot_name: \
129 src/awk/exe/actuate_status_bar_to_xsetroot_name.awk \
130 src/awk/lib/str.awk \
131 src/awk/lib/msg.awk
132 $(BUILD_AWK_EXE)
133
134 bin/khatus_gen_bar_make_status: \
135 src/awk/exe/gen_bar_make_status.awk
136 $(BUILD_AWK_EXE)
137
138 bin/khatus_monitor_devices: \
139 src/awk/exe/monitor_devices.awk \
140 src/awk/lib/str.awk \
141 src/awk/lib/msg.awk
142 $(BUILD_AWK_EXE)
143
144 bin/khatus_monitor_energy: \
145 src/awk/exe/monitor_energy.awk \
146 src/awk/lib/str.awk \
147 src/awk/lib/msg.awk \
148 src/awk/lib/num.awk
149 $(BUILD_AWK_EXE)
150
151 bin/khatus_monitor_errors: \
152 src/awk/exe/monitor_errors.awk \
153 src/awk/lib/str.awk \
154 src/awk/lib/msg.awk
155 $(BUILD_AWK_EXE)
156
157 bin/khatus_parse_bluetoothctl_show: \
158 src/awk/exe/parse_bluetoothctl_show.awk \
159 src/awk/lib/msg.awk
160 $(BUILD_AWK_EXE)
161
162 bin/khatus_parse_df_pcent: \
163 src/awk/exe/parse_df_pcent.awk \
164 src/awk/lib/msg.awk
165 $(BUILD_AWK_EXE)
166
167 bin/khatus_parse_fan_file: \
168 src/awk/exe/parse_fan_file.awk \
169 src/awk/lib/msg.awk
170 $(BUILD_AWK_EXE)
171
172 bin/khatus_parse_free: \
173 src/awk/exe/parse_free.awk \
174 src/awk/lib/msg.awk
175 $(BUILD_AWK_EXE)
176
177 bin/khatus_parse_ip_addr: \
178 src/awk/exe/parse_ip_addr.awk \
179 src/awk/lib/msg.awk
180 $(BUILD_AWK_EXE)
181
182 bin/khatus_parse_iwconfig: \
183 src/awk/exe/parse_iwconfig.awk \
184 src/awk/lib/msg.awk
185 $(BUILD_AWK_EXE)
186
187 bin/khatus_parse_loadavg_file: \
188 src/awk/exe/parse_loadavg_file.awk \
189 src/awk/lib/msg.awk
190 $(BUILD_AWK_EXE)
191
192 # Order of dependencies is important for khatus_parse_noaa_api!
193 # parse_hxpipe MUST appear before parse_noaa_api, because the order in
194 # which they match lines matters!
195 bin/khatus_parse_noaa_api: \
196 src/awk/lib/parse_hxpipe.awk \
197 src/awk/exe/parse_noaa_api.awk \
198 src/awk/lib/msg.awk \
199 src/awk/lib/str.awk
200 $(BUILD_AWK_EXE)
201
202 bin/khatus_parse_mpd_status_currentsong: \
203 src/awk/exe/parse_mpd_status_currentsong.awk \
204 src/awk/lib/msg.awk
205 $(BUILD_AWK_EXE)
206
207 bin/khatus_parse_pactl_list_sinks: \
208 src/awk/exe/parse_pactl_list_sinks.awk \
209 src/awk/lib/msg.awk
210 $(BUILD_AWK_EXE)
211
212 bin/khatus_parse_ps: \
213 src/awk/exe/parse_ps.awk \
214 src/awk/lib/msg.awk
215 $(BUILD_AWK_EXE)
216
217 bin/khatus_parse_sys_block_stat: \
218 src/awk/exe/parse_sys_block_stat.awk \
219 src/awk/lib/msg.awk
220 $(BUILD_AWK_EXE)
221
222 bin/khatus_parse_udevadm_monitor_block: \
223 src/awk/exe/parse_udevadm_monitor_block.awk \
224 src/awk/lib/msg.awk
225 $(BUILD_AWK_EXE)
226
227 bin/khatus_parse_upower: \
228 src/awk/exe/parse_upower.awk \
229 src/awk/lib/msg.awk
230 $(BUILD_AWK_EXE)
This page took 0.05323 seconds and 4 git commands to generate.