Merge remote-tracking branch 'boock/master'
[paraslash.git] / ggo / makefile
index 936b23eb29876cb35fb27cb009793fc14d0cc0bf..d5a1d645cd79db1b177e2f46cd67dbffe765cecf 100644 (file)
@@ -1,46 +1,57 @@
 module_ggo_opts := --set-version="($(PACKAGE_STRING), $(codename))"
 module_ggo_opts := --set-version="($(PACKAGE_STRING), $(codename))"
+$(cmdline_dir):
+       mkdir -p $(cmdline_dir)
 
 
-%_recv.cmdline.h %_recv.cmdline.c: $(ggo_dir)/%_recv.ggo
-       gengetopt $(module_ggo_opts) \
+$(cmdline_dir)/%_recv.cmdline.h $(cmdline_dir)/%_recv.cmdline.c: $(ggo_dir)/%_recv.ggo | $(cmdline_dir)
+       @[ -z "$(Q)" ] || echo 'GGO $<'
+       $(Q) gengetopt $(module_ggo_opts) \
+               --output-dir=$(cmdline_dir) \
                --set-package=$(subst .ggo,,$(<F)) \
                --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
                --file-name=$(subst .ggo,,$(<F)).cmdline \
                --func-name $(subst .ggo,,$(<F))_cmdline_parser < $<
 
                --set-package=$(subst .ggo,,$(<F)) \
                --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
                --file-name=$(subst .ggo,,$(<F)).cmdline \
                --func-name $(subst .ggo,,$(<F))_cmdline_parser < $<
 
-%_filter.cmdline.h %_filter.cmdline.c: $(ggo_dir)/%_filter.ggo
-       gengetopt $(module_ggo_opts) \
+$(cmdline_dir)/%_filter.cmdline.h $(cmdline_dir)/%_filter.cmdline.c: $(ggo_dir)/%_filter.ggo | $(cmdline_dir)
+       @[ -z "$(Q)" ] || echo 'GGO $<'
+       $(Q) gengetopt $(module_ggo_opts) \
+               --output-dir=$(cmdline_dir) \
                --set-package=$(subst .ggo,,$(<F)) \
                --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
                --file-name=$(subst .ggo,,$(<F)).cmdline \
                --set-package=$(subst .ggo,,$(<F)) \
                --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
                --file-name=$(subst .ggo,,$(<F)).cmdline \
-               --func-name $(subst _filter.ggo,,$(<F))_cmdline_parser < $<
-%_write.cmdline.h %_write.cmdline.c: $(ggo_dir)/%_write.ggo
-       gengetopt -S $(module_ggo_opts) \
+               --func-name=$(subst _filter.ggo,,$(<F))_cmdline_parser < $<
+$(cmdline_dir)/%_write.cmdline.h $(cmdline_dir)/%_write.cmdline.c: $(ggo_dir)/%_write.ggo | $(cmdline_dir)
+       @[ -z "$(Q)" ] || echo 'GGO $<'
+       $(Q) gengetopt -S $(module_ggo_opts) \
+               --output-dir=$(cmdline_dir) \
                --set-package=$(subst .ggo,,$(<F)) \
                --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
                --file-name=$(subst .ggo,,$(<F)).cmdline \
                --func-name $(subst _write.ggo,,$(<F))_cmdline_parser < $<
 
 define ggo-opts
                --set-package=$(subst .ggo,,$(<F)) \
                --arg-struct-name=$(subst .ggo,,$(<F))_args_info \
                --file-name=$(subst .ggo,,$(<F)).cmdline \
                --func-name $(subst _write.ggo,,$(<F))_cmdline_parser < $<
 
 define ggo-opts
+$(if $(filter gui,$(*F)), --no-handle-error) \
 $(if $(filter recv filter write audiod,$(*F)), --no-handle-help) \
 $(if $(filter afh,$(*F)), --unamed-opts=audio_file) \
 $(if $(filter client audioc,$(*F)), --unamed-opts=command) \
 $(if $(filter fsck,$(*F)), --unamed-opts=table, --conf-parser)\
 $(if $(filter recv filter write audiod,$(*F)), --no-handle-help) \
 $(if $(filter afh,$(*F)), --unamed-opts=audio_file) \
 $(if $(filter client audioc,$(*F)), --unamed-opts=command) \
 $(if $(filter fsck,$(*F)), --unamed-opts=table, --conf-parser)\
+--output-dir=$(cmdline_dir) \
 --no-handle-version \
 --file-name=$(*F).cmdline \
 --no-handle-version \
 --file-name=$(*F).cmdline \
---func-name $(*F)_cmdline_parser \
+--func-name=$(*F)_cmdline_parser \
 --arg-struct-name=$(*F)_args_info \
 --set-package="para_$(*F)" \
 --set-version="$(PACKAGE_VERSION)"
 endef
 
 --arg-struct-name=$(*F)_args_info \
 --set-package="para_$(*F)" \
 --set-version="$(PACKAGE_VERSION)"
 endef
 
-%.cmdline.h %.cmdline.c: $(ggo_dir)/%.ggo
-       gengetopt $(ggo-opts) < $<
+$(cmdline_dir)/%.cmdline.h $(cmdline_dir)/%.cmdline.c: $(ggo_dir)/%.ggo | $(cmdline_dir)
+       @[ -z "$(Q)" ] || echo 'GGO $<'
+       $(Q) gengetopt $(ggo-opts) < $<
 
 $(ggo_dir)/server.ggo $(ggo_dir)/audiod.ggo: \
        $(ggo_dir)/loglevel.m4 $(ggo_dir)/color.m4 \
        $(ggo_dir)/config_file.m4 $(ggo_dir)/logfile.m4 \
        $(ggo_dir)/daemon.m4 $(ggo_dir)/user.m4 \
 
 $(ggo_dir)/server.ggo $(ggo_dir)/audiod.ggo: \
        $(ggo_dir)/loglevel.m4 $(ggo_dir)/color.m4 \
        $(ggo_dir)/config_file.m4 $(ggo_dir)/logfile.m4 \
        $(ggo_dir)/daemon.m4 $(ggo_dir)/user.m4 \
-       $(ggo_dir)/group.m4
+       $(ggo_dir)/group.m4 $(ggo_dir)/log_timing.m4
 
 $(ggo_dir)/afh.ggo: $(ggo_dir)/loglevel.m4
 $(ggo_dir)/audioc.ggo: $(ggo_dir)/loglevel.m4
 
 $(ggo_dir)/afh.ggo: $(ggo_dir)/loglevel.m4
 $(ggo_dir)/audioc.ggo: $(ggo_dir)/loglevel.m4
@@ -52,4 +63,5 @@ $(ggo_dir)/write.ggo: $(ggo_dir)/loglevel.m4
 $(ggo_dir)/client.ggo: $(ggo_dir)/loglevel.m4 $(ggo_dir)/config_file.m4
 
 $(ggo_dir)/%.ggo: $(ggo_dir)/%.m4 $(ggo_dir)/header.m4
 $(ggo_dir)/client.ggo: $(ggo_dir)/loglevel.m4 $(ggo_dir)/config_file.m4
 
 $(ggo_dir)/%.ggo: $(ggo_dir)/%.m4 $(ggo_dir)/header.m4
-       cd $(ggo_dir); m4 $(<F) > $(@F)
+       @[ -z "$(Q)" ] || echo 'M4 $<'
+       $(Q) cd $(ggo_dir); m4 $(<F) > $(@F)