Index volume by alsa.device property
[khatus.git] / 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_metar_d_output \
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_wifi_status \
42 khatus_sensor_procs \
43 khatus_sensor_screen_brightness \
44 khatus_sensor_temperature \
45 khatus_sensor_volume \
46 khatus_sensor_weather
47 BASH_EXECUTABLES := $(foreach exe,$(BASH_EXECUTABLE_NAMES),bin/$(exe))
48 OCAML_EXECUTABLES := \
49 bin/khatus_cache_dumper
50 EXECUTABLES := $(AWK_EXECUTABLES) $(BASH_EXECUTABLES) $(OCAML_EXECUTABLES)
51
52 define BUILD_AWK_EXE
53 echo '#! $(PATH_TO_AWK) -f' > $@ && \
54 echo 'BEGIN {Node = Node ? Node : "$(shell hostname)"}' >> $@ && \
55 echo 'BEGIN {Module = "$(notdir $@)"}' >> $@ && \
56 cat $^ >> $@ && \
57 chmod +x $@
58 endef
59
60 define BUILD_BASH_EXE
61 cat $^ > $@ && \
62 chmod +x $@
63 endef
64
65 define GEN_BASH_EXE_RULE
66 bin/$(1) : src/bash/exe/$(1).sh
67 $$(BUILD_BASH_EXE)
68 endef
69
70 .PHONY: \
71 build \
72 install \
73 clean
74
75 build: | bin
76 build: $(EXECUTABLES)
77
78 install:
79 $(foreach filename,$(wildcard bin/*),cp -p "$(filename)" "$(PREFIX)/$(filename)"; )
80
81 clean:
82 rm -rf bin
83 ocamlbuild -clean
84
85 bin:
86 mkdir -p bin
87
88 #-----------------------------------------------------------------------------
89 # Bash
90 #-----------------------------------------------------------------------------
91 $(foreach exe,$(BASH_EXECUTABLE_NAMES),$(eval $(call GEN_BASH_EXE_RULE,$(exe))))
92
93 #-----------------------------------------------------------------------------
94 # AWK
95 #-----------------------------------------------------------------------------
96 bin/khatus_bar: \
97 src/awk/exe/bar.awk \
98 src/awk/lib/cache.awk \
99 src/awk/lib/str.awk \
100 src/awk/lib/msg.awk \
101 src/awk/lib/num.awk
102 $(BUILD_AWK_EXE)
103
104 bin/khatus_actuate_alert_to_notify_send: \
105 src/awk/exe/actuate_alert_to_notify_send.awk \
106 src/awk/lib/str.awk \
107 src/awk/lib/msg.awk
108 $(BUILD_AWK_EXE)
109
110 bin/khatus_actuate_device_add_to_automount: \
111 src/awk/exe/actuate_device_add_to_automount.awk \
112 src/awk/lib/str.awk \
113 src/awk/lib/msg.awk
114 $(BUILD_AWK_EXE)
115
116 bin/khatus_actuate_status_bar_to_xsetroot_name: \
117 src/awk/exe/actuate_status_bar_to_xsetroot_name.awk \
118 src/awk/lib/str.awk \
119 src/awk/lib/msg.awk
120 $(BUILD_AWK_EXE)
121
122 bin/khatus_gen_bar_make_status: \
123 src/awk/exe/gen_bar_make_status.awk
124 $(BUILD_AWK_EXE)
125
126 bin/khatus_monitor_devices: \
127 src/awk/exe/monitor_devices.awk \
128 src/awk/lib/str.awk \
129 src/awk/lib/msg.awk
130 $(BUILD_AWK_EXE)
131
132 bin/khatus_monitor_energy: \
133 src/awk/exe/monitor_energy.awk \
134 src/awk/lib/str.awk \
135 src/awk/lib/msg.awk \
136 src/awk/lib/num.awk
137 $(BUILD_AWK_EXE)
138
139 bin/khatus_monitor_errors: \
140 src/awk/exe/monitor_errors.awk \
141 src/awk/lib/str.awk \
142 src/awk/lib/msg.awk
143 $(BUILD_AWK_EXE)
144
145 bin/khatus_parse_bluetoothctl_show: \
146 src/awk/exe/parse_bluetoothctl_show.awk \
147 src/awk/lib/msg.awk
148 $(BUILD_AWK_EXE)
149
150 bin/khatus_parse_df_pcent: \
151 src/awk/exe/parse_df_pcent.awk \
152 src/awk/lib/msg.awk
153 $(BUILD_AWK_EXE)
154
155 bin/khatus_parse_fan_file: \
156 src/awk/exe/parse_fan_file.awk \
157 src/awk/lib/msg.awk
158 $(BUILD_AWK_EXE)
159
160 bin/khatus_parse_free: \
161 src/awk/exe/parse_free.awk \
162 src/awk/lib/msg.awk
163 $(BUILD_AWK_EXE)
164
165 bin/khatus_parse_ip_addr: \
166 src/awk/exe/parse_ip_addr.awk \
167 src/awk/lib/msg.awk
168 $(BUILD_AWK_EXE)
169
170 bin/khatus_parse_iwconfig: \
171 src/awk/exe/parse_iwconfig.awk \
172 src/awk/lib/msg.awk
173 $(BUILD_AWK_EXE)
174
175 bin/khatus_parse_loadavg_file: \
176 src/awk/exe/parse_loadavg_file.awk \
177 src/awk/lib/msg.awk
178 $(BUILD_AWK_EXE)
179
180 bin/khatus_parse_metar_d_output: \
181 src/awk/exe/parse_metar_d_output.awk \
182 src/awk/lib/msg.awk \
183 src/awk/lib/str.awk
184 $(BUILD_AWK_EXE)
185
186 bin/khatus_parse_mpd_status_currentsong: \
187 src/awk/exe/parse_mpd_status_currentsong.awk \
188 src/awk/lib/msg.awk
189 $(BUILD_AWK_EXE)
190
191 bin/khatus_parse_pactl_list_sinks: \
192 src/awk/exe/parse_pactl_list_sinks.awk \
193 src/awk/lib/msg.awk
194 $(BUILD_AWK_EXE)
195
196 bin/khatus_parse_ps: \
197 src/awk/exe/parse_ps.awk \
198 src/awk/lib/msg.awk
199 $(BUILD_AWK_EXE)
200
201 bin/khatus_parse_sys_block_stat: \
202 src/awk/exe/parse_sys_block_stat.awk \
203 src/awk/lib/msg.awk
204 $(BUILD_AWK_EXE)
205
206 bin/khatus_parse_udevadm_monitor_block: \
207 src/awk/exe/parse_udevadm_monitor_block.awk \
208 src/awk/lib/msg.awk
209 $(BUILD_AWK_EXE)
210
211 bin/khatus_parse_upower: \
212 src/awk/exe/parse_upower.awk \
213 src/awk/lib/msg.awk
214 $(BUILD_AWK_EXE)
215
216 #-----------------------------------------------------------------------------
217 # OCaml
218 #-----------------------------------------------------------------------------
219 bin/khatus_cache_dumper: src/ocaml/exe/khatus_cache_dumper.ml
220 ocamlbuild -cflags '-w A' -pkg unix -I src/ocaml/exe -I src/ocaml/lib khatus_cache_dumper.byte
221 mv _build/src/ocaml/exe/khatus_cache_dumper.byte bin/khatus_cache_dumper
222 rm -f khatus_cache_dumper.byte
This page took 0.076823 seconds and 4 git commands to generate.