Use self-made help to avoid recompilations on version changes.
[paraslash.git] / m4 / gengetopt / makefile
1 define ggo_opts
2         --output-dir=$(cmdline_dir) \
3         --set-version="$(GIT_VERSION) ($(codename))" \
4         --arg-struct-name=$(*F)_args_info \
5         --file-name=$(*F).cmdline \
6         --func-name=$(*F)_cmdline_parser \
7         --set-package="para_$(*F)"
8 endef
9
10 .PRECIOUS: $(cmdline_dir)/%.cmdline.c $(cmdline_dir)/%.cmdline.h $(ggo_dir)/%.ggo
11
12 $(cmdline_dir)/%.cmdline.h $(cmdline_dir)/%.cmdline.c: $(ggo_dir)/%.ggo | $(cmdline_dir)
13         @[ -z "$(Q)" ] || echo 'GGO $<'
14         $(Q) $(GENGETOPT) $(ggo_opts) < $<
15 ifeq ($(ggo_descriptions_declared),no)
16         echo 'extern const char *$(*F)_args_info_description;' >> $(cmdline_dir)/$(*F).cmdline.h
17 endif
18
19 $(ggo_dir)/server.ggo $(ggo_dir)/audiod.ggo: \
20         $(m4_ggo_dir)/loglevel.m4 $(m4_ggo_dir)/color.m4 \
21         $(m4_ggo_dir)/config_file.m4 $(m4_ggo_dir)/logfile.m4 \
22         $(m4_ggo_dir)/daemon.m4 $(m4_ggo_dir)/user.m4 \
23         $(m4_ggo_dir)/group.m4 $(m4_ggo_dir)/log_timing.m4 \
24         $(m4_ggo_dir)/config_file.m4
25
26 $(ggo_dir)/afh.ggo: $(m4_ggo_dir)/loglevel.m4
27 $(ggo_dir)/audioc.ggo: \
28         $(m4_ggo_dir)/loglevel.m4 \
29         $(m4_ggo_dir)/history_file.m4 \
30         $(m4_ggo_dir)/complete.m4
31 $(ggo_dir)/filter.ggo: $(m4_ggo_dir)/loglevel.m4
32 $(ggo_dir)/fsck.ggo: $(m4_ggo_dir)/loglevel.m4
33 $(ggo_dir)/gui.ggo: $(m4_ggo_dir)/loglevel.m4 $(m4_ggo_dir)/config_file.m4
34 $(ggo_dir)/recv.ggo: $(m4_ggo_dir)/loglevel.m4
35 $(ggo_dir)/write.ggo: $(m4_ggo_dir)/loglevel.m4 \
36         $(m4_ggo_dir)/channels.m4 \
37         $(m4_ggo_dir)/sample_rate.m4 \
38         $(m4_ggo_dir)/sample_format.m4
39 $(ggo_dir)/client.ggo: \
40         $(m4_ggo_dir)/loglevel.m4 \
41         $(m4_ggo_dir)/config_file.m4 \
42         $(m4_ggo_dir)/history_file.m4 \
43         $(m4_ggo_dir)/complete.m4
44 $(ggo_dir)/fade.ggo: $(m4_ggo_dir)/loglevel.m4 $(m4_ggo_dir)/config_file.m4
45 $(ggo_dir)/resample_filter.ggo: \
46         $(m4_ggo_dir)/channels.m4 \
47         $(m4_ggo_dir)/sample_rate.m4 \
48         $(m4_ggo_dir)/sample_format.m4
49 $(ggo_dir)/play.ggo: $(m4_ggo_dir)/loglevel.m4 $(m4_ggo_dir)/config_file.m4
50
51 $(ggo_dir)/%.ggo: $(m4_ggo_dir)/%.m4 $(m4_ggo_dir)/header.m4 | $(ggo_dir)
52         @[ -z "$(Q)" ] || echo 'M4 $<'
53         $(Q) m4 -I $(m4_ggo_dir) $< > $@