--- /dev/null
+module_ggo_opts := --set-version="($(PACKAGE_STRING), $(codename))"
+
+grab_client.cmdline.h grab_client.cmdline.c: $(ggo_dir)/grab_client.ggo
+ gengetopt $(module_ggo_opts) \
+ -S \
+ --set-package=grab \
+ --no-handle-help \
+ --no-handle-error \
+ --no-handle-version \
+ --arg-struct-name=grab_client_args_info \
+ --file-name=$(subst .ggo,,$(<F)).cmdline \
+ --func-name $(subst .ggo,,$(<F))_cmdline_parser < $<
+
+%_recv.cmdline.h %_recv.cmdline.c: $(ggo_dir)/%_recv.ggo
+ gengetopt $(module_ggo_opts) \
+ --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) \
+ --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) \
+ --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 < $<
+
+%.cmdline.h %.cmdline.c: $(ggo_dir)/%.ggo
+ case $(<F) in client.ggo) O="--unamed-opts=command";; \
+ audioc.ggo) O="--unamed-opts=command";; \
+ fsck.ggo) O="--unamed-opts=table";; \
+ afh.ggo) O="--unamed-opts=audio_file";; \
+ recv.ggo) O="--no-handle-help";; \
+ filter.ggo) O="--no-handle-help";; \
+ write.ggo) O="--no-handle-help";; \
+ audiod.ggo) O="--no-handle-help";; \
+ esac; \
+ if test $(<F) != fsck.ggo; then O="$$O --conf-parser "; fi; \
+ gengetopt $$O \
+ --no-handle-version \
+ --file-name=$(*F).cmdline \
+ --func-name $(*F)_cmdline_parser \
+ --arg-struct-name=$(*F)_args_info \
+ --set-package="para_$(subst .cmdline,,$(*F))" \
+ --set-version="$(PACKAGE_VERSION)" < $<
+
+$(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)/afh.ggo: $(ggo_dir)/loglevel.m4
+$(ggo_dir)/audioc.ggo: $(ggo_dir)/loglevel.m4
+$(ggo_dir)/filter.ggo: $(ggo_dir)/loglevel.m4
+$(ggo_dir)/fsck.ggo: $(ggo_dir)/loglevel.m4
+$(ggo_dir)/gui.ggo: $(ggo_dir)/loglevel.m4
+$(ggo_dir)/recv.ggo: $(ggo_dir)/loglevel.m4
+$(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
+ (cd $(ggo_dir) && m4 $(<F)) > $@