-html_man: $(man_pages_html)
-
-sdl_gui_objs = sdl_gui.cmdline.o SFont.o sdl_gui.o gui_common.o exec.o \
- close_on_fork.o string.o stat.o fd.o
-dbadm_objs = dbadm.o exec.o close_on_fork.o string.o
-fade_objs = fade.cmdline.o fade.o exec.o close_on_fork.o string.o fd.o
-krell_objs = krell.o string.o
-slider_objs = slider.o string.o
-fsck_objs = osl.o rbtree.o fsck.o string.o sha1.o fsck.cmdline.o
-
-*.o: para.h config.h gcc-compat.h
-
-include Makefile.deps
-
-module_ggo_opts := --set-version="(@PACKAGE_STRING@, $(codename))"
-
-grab_client.cmdline.h grab_client.cmdline.c: 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,,$<).cmdline \
- --func-name $(subst .ggo,,$<)_cmdline_parser < $<
-
-%_recv.cmdline.h %_recv.cmdline.c: %_recv.ggo
- gengetopt $(module_ggo_opts) \
- --set-package=$(subst .ggo,,$<) \
- --arg-struct-name=$(subst .ggo,,$<)_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst .ggo,,$<)_cmdline_parser < $<
-
-%_filter.cmdline.h %_filter.cmdline.c: %_filter.ggo
- gengetopt $(module_ggo_opts) \
- --set-package=$(subst .ggo,,$<) \
- --arg-struct-name=$(subst .ggo,,$<)_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst _filter.ggo,,$<)_cmdline_parser < $<
-%_write.cmdline.h %_write.cmdline.c: %_write.ggo
- gengetopt -S $(module_ggo_opts) \
- --set-package=$(subst .ggo,,$<) \
- --arg-struct-name=$(subst .ggo,,$<)_args_info \
- --file-name=$(subst .ggo,,$<).cmdline \
- --func-name $(subst _write.ggo,,$<)_cmdline_parser < $<
-
-%.cmdline.h %.cmdline.c: %.ggo
- case $< in client.ggo) O="--unamed-opts=command";; \
- audioc.ggo) O="--unamed-opts=command";; \
- fsck.ggo) O="--unamed-opts=table";; \
- esac; \
- echo "$O"; if test $< != 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@" < $<
-
-%_command_list.c %_command_list.h: %.cmd
- ./command_util.sh c < $< >$@
- ./command_util.sh h < $< >$(@:%.c=%.h)
-
-%_command_list.man: %.cmd
- ./command_util.sh man < $< > $@
-
-server_command_lists = server_command_list.man random_selector_command_list.man \
- playlist_selector_command_list.man mysql_selector_command_list.man \
- afs_command_list.man
-man/man1/para_server.1: para_server $(server_command_lists)
- mkdir -p man/man1
- opts="-N `for i in $(server_command_lists); do echo "-i $$i"; done`"; \
- help2man $$opts ./para_server > $@
-
-man/man1/para_audiod.1: para_audiod audiod_command_list.man
- mkdir -p man/man1
- help2man -N -i audiod_command_list.man ./para_audiod > $@
-
-man/man1/%.1: %
- mkdir -p man/man1
- help2man -N ./$< > $@
-
-man/html/%.html: man/man1/%.1
- mkdir -p man/html
- man2html $< > $@
-
-
-
-ortp_recv.o: ortp_recv.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @ortp_cppflags@ $<
-
-ortp_send.o: ortp_send.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @ortp_cppflags@ $<
-
-oggdec.o: oggdec.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @oggvorbis_cppflags@ $<
-ogg_afh.o: ogg_afh.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @oggvorbis_cppflags@ $<
-
-mp3dec.o: mp3dec.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @mad_cppflags@ $<
-
-aacdec.o: aacdec.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @faad_cppflags@ $<
-
-aac_common.o: aac_common.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @faad_cppflags@ $<
-
-aac_afh.o: aac_afh.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @faad_cppflags@ $<
-
-slider.o: slider.c
- $(CC) -c -Wall -o $@ -g @GLIB_CFLAGS@ @GTK_CFLAGS@ $<
-
-krell.o: krell.c
- $(CC) -Wall -O -g -fPIC @GTK_CFLAGS@ -c -o $@ krell.c
-
-mysql_selector.o: mysql_selector.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) @mysql_cppflags@ $<
-
-%.cmdline.o: %.cmdline.c
- $(CC) -c $(CPPFLAGS) $<
-
-%.o: %.c
- $(CC) -c $(CPPFLAGS) $(DEBUG_CPPFLAGS) $<
-
-para_recv: @recv_objs@
- $(CC) @recv_objs@ -o $@ @recv_ldflags@
-
-para_filter: @filter_objs@
- $(CC) @filter_objs@ -o $@ @filter_ldflags@
-
-para_slider: $(slider_objs)
- $(CC) $(slider_objs) -o $@ @GTK_LIBS@ @GLIB_LIBS@ -lzmw
-
-para_client: @client_objs@
- $(CC) -o $@ @client_objs@ @client_ldflags@
-
-para_gui: @gui_objs@
- $(CC) -o $@ @gui_objs@ -lncurses
-
-para_audiod: @audiod_objs@
- $(CC) -o $@ @audiod_objs@ @audiod_ldflags@
-
-para_audioc: @audioc_objs@
- $(CC) -o $@ @audioc_objs@ @audioc_ldflags@
+tarball: $(tarball)
+
+-include $(ggo_dir)/makefile
+
+# When in doubt, use brute force (Ken Thompson)
+TOUPPER = \
+$(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,\
+$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,\
+$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,\
+$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,\
+$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,\
+$(subst z,Z,$1))))))))))))))))))))))))))
+
+%_command_list.h: %.cmd %.c
+ @[ -z "$(Q)" ] || echo 'GEN $@'
+ $(Q) ./command_util.sh h < $< >$@
+%_command_list.man: %.cmd %.c
+ @[ -z "$(Q)" ] || echo 'GEN $@'
+ $(Q) ./command_util.sh man < $< > $@
+%_completion.h: %.cmd %.c
+ @[ -z "$(Q)" ] || echo 'GEN $@'
+ $(Q) ./command_util.sh compl $(strip $(call TOUPPER,$(*F)))_COMPLETERS \
+ $(strip $(call TOUPPER,$(*F)))_COMMANDS < $< > $@
+
+server_command_list.h server_command_list.man server_completion.h: command.c
+afs_command_list.h afs_command_list.man afs_completion.h: afs.c aft.c attribute.c
+audiod_command_list.h audiod_command_list.man audiod_completion.h: audiod_command.c
+
+server_command_lists_man = server_command_list.man afs_command_list.man
+man/man1/para_server.1: para_server $(server_command_lists_man) | $(man_dir)
+ @[ -z "$(Q)" ] || echo 'MAN $<'
+ $(Q) opts="-h --detailed-help -N `for i in $(server_command_lists_man); do printf "%s\n" "-i $$i"; done`"; \
+ $(HELP2MAN) $$opts ./para_server > $@
+
+man/man1/para_audiod.1: para_audiod audiod_command_list.man | $(man_dir)
+ @[ -z "$(Q)" ] || echo 'MAN $<'
+ $(Q) $(HELP2MAN) -h --detailed-help -N -i audiod_command_list.man ./para_audiod > $@
+
+man/man1/%.1: % | $(man_dir)
+ @[ -z "$(Q)" ] || echo 'MAN $<'
+ $(Q) $(HELP2MAN) -h --detailed-help -N ./$< > $@
+
+$(object_dir):
+ mkdir -p $@
+$(man_dir):
+ mkdir -p $@