From 7fb39c9aeb527c03c1e3c33e158f727fb9380eaf Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 15 Sep 2013 02:39:11 +0000 Subject: [PATCH 1/1] build: Split Makefile.in. This trims down Makefile.in to contain only the initializations of Make variables with their autoconf counterpart. The new Makefile.real contains the second part, including all recipes. With this commit, Makefile.in needs to be changed only when configure.ac introduces new variables. In this case a full autoconf, configure, make cycle is necessary anyway. However, if only Makefile.real changes, a simple make run should be enough to update everything. --- Makefile.in | 306 +------------------------------------------------- Makefile.real | 301 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 302 insertions(+), 305 deletions(-) create mode 100644 Makefile.real diff --git a/Makefile.in b/Makefile.in index f453ed05..19679923 100644 --- a/Makefile.in +++ b/Makefile.in @@ -62,308 +62,4 @@ nsl_ldflags := @nsl_ldflags@ curses_ldflags := @curses_ldflags@ core_audio_ldflags := @core_audio_ldflags@ -VARDIR := /var/paraslash -MANDIR := $(datarootdir)/man/man1 -STRIP := $(CROSS_COMPILE)strip -HOSTCC ?= cc -MKDIR_P := mkdir -p -prefixed_executables := $(addprefix para_, $(executables)) - -build_date := $(shell date) -uname_s := $(shell uname -s 2>/dev/null || echo "UNKNOWN_OS") -uname_rs := $(shell uname -rs) -cc_version := $(shell $(CC) --version | head -n 1) -GIT_VERSION := $(shell ./GIT-VERSION-GEN git-version.h) - -m4_ggo_dir := m4/gengetopt -test_dir := t -ifeq ("$(origin O)", "command line") - build_dir := $(O) -else - build_dir := build -endif -ggo_dir := $(build_dir)/ggo -object_dir := $(build_dir)/objects -dep_dir := $(build_dir)/deps -man_dir := $(build_dir)/man/man1 -cmdline_dir := $(build_dir)/cmdline -m4depdir := $(build_dir)/m4deps -help2man_dir := $(build_dir)/help2man -hostbin_dir := $(build_dir)/host/bin - -# sort removes duplicate words, which is all we need here -all_objs := $(sort $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \ - $(audiod_objs) $(audioc_objs) $(fade_objs) $(server_objs) \ - $(write_objs) $(afh_objs) $(play_objs)) -deps := $(addprefix $(dep_dir)/, $(all_objs:.o=.d)) -m4_deps := $(addprefix $(m4depdir)/, $(addsuffix .m4d, $(executables))) - -# now prefix all objects with object dir -recv_objs := $(addprefix $(object_dir)/, $(recv_objs)) -filter_objs := $(addprefix $(object_dir)/, $(filter_objs)) -client_objs := $(addprefix $(object_dir)/, $(client_objs)) -gui_objs := $(addprefix $(object_dir)/, $(gui_objs)) -audiod_objs := $(addprefix $(object_dir)/, $(audiod_objs)) -audioc_objs := $(addprefix $(object_dir)/, $(audioc_objs)) -fade_objs := $(addprefix $(object_dir)/, $(fade_objs)) -server_objs := $(addprefix $(object_dir)/, $(server_objs)) -write_objs := $(addprefix $(object_dir)/, $(write_objs)) -afh_objs := $(addprefix $(object_dir)/, $(afh_objs)) -play_objs := $(addprefix $(object_dir)/, $(play_objs)) - - -DEBUG_CPPFLAGS += -g -Wunused -Wundef -W -DEBUG_CPPFLAGS += -Wredundant-decls -DEBUG_CPPFLAGS += -Wall -Wno-sign-compare -Wno-unknown-pragmas -DEBUG_CPPFLAGS += -Wformat-security -DEBUG_CPPFLAGS += -Wmissing-format-attribute - -ifeq ($(uname_s),Linux) - CPPFLAGS += -fdata-sections -ffunction-sections - LDFLAGS += -Wl,--gc-sections - CPPFLAGS += -Wstrict-prototypes - CPPFLAGS += -Wshadow - # causes warnings on *BSD for the feature test macros - CPPFLAGS += -Wunused-macros -endif -CPPFLAGS += -Os -CPPFLAGS += -Wuninitialized -CPPFLAGS += -Wchar-subscripts -CPPFLAGS += -DBINDIR='"$(BINDIR)"' -CPPFLAGS += -DBUILD_DATE='"$(build_date)"' -CPPFLAGS += -DUNAME_RS='"$(uname_rs)"' -CPPFLAGS += -DCC_VERSION='"$(cc_version)"' -CPPFLAGS += -Werror-implicit-function-declaration -CPPFLAGS += -Wmissing-noreturn -CPPFLAGS += -Wbad-function-cast -CPPFLAGS += -fno-strict-aliasing -CPPFLAGS += -DMAIN_INPUT_FILE_IS_$(*F) -CPPFLAGS += $(arch_cppflags) -CPPFLAGS += -I/usr/local/include -CPPFLAGS += -I$(cmdline_dir) -CPPFLAGS += $(osl_cppflags) - -LDFLAGS += $(clock_gettime_ldflags) - -man_pages := $(patsubst %, $(man_dir)/%.1, $(prefixed_executables)) - -autocrap := config.h.in configure -tarball_pfx := $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -tarball_delete := $(addprefix $(tarball_pfx)/,\ - web .changelog_before_cvs .changelog_cvs .gitignore) -tarball := $(tarball_pfx).tar.bz2 - -# To put more focus on warnings, be less verbose as default -# Use 'make V=1' to see the full commands -ifeq ("$(origin V)", "command line") - Q := -else - Q := @ -endif - -.PHONY: dep all clean distclean maintainer-clean install man tarball -all: dep $(prefixed_executables) $(man_pages) -dep: $(deps) -man: $(man_pages) -tarball: $(tarball) - -$(object_dir) $(man_dir) $(ggo_dir) $(cmdline_dir) $(dep_dir) $(m4depdir) \ - $(help2man_dir) $(hostbin_dir): - $(Q) $(MKDIR_P) $@ - --include $(m4_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_dir)/para_server.1: $(help2man_dir)/para_server $(server_command_lists_man) | $(man_dir) - @[ -z "$(Q)" ] || echo 'MAN $<' - $(Q) opts="`for i in $(server_command_lists_man); do printf "%s\n" "-i $$i"; done`"; \ - $(HELP2MAN) $$opts ./$< > $@ - -$(man_dir)/para_audiod.1: $(help2man_dir)/para_audiod audiod_command_list.man | $(man_dir) - @[ -z "$(Q)" ] || echo 'MAN $<' - $(Q) $(HELP2MAN) -N -i audiod_command_list.man ./$< > $@ - -$(man_dir)/para_play.1: $(help2man_dir)/para_play play_command_list.man | $(man_dir) - @[ -z "$(Q)" ] || echo 'MAN $<' - $(Q) $(HELP2MAN) -N -i play_command_list.man ./$< > $@ - -$(man_dir)/%.1: $(help2man_dir)/% | $(man_dir) - @[ -z "$(Q)" ] || echo 'MAN $<' - $(Q) $(HELP2MAN) -N ./$< > $@ - -$(hostbin_dir)/error2: error2.c | $(hostbin_dir) - @[ -z "$(Q)" ] || echo 'HCC $<' - $(Q) $(HOSTCC) -o $@ $< -error2.h: $(hostbin_dir)/error2 - @[ -z "$(Q)" ] || echo 'ER2 $<' - @echo "$(object_executable_matrix)" | $< > $@ - -$(object_dir)/%.o: %.c | $(object_dir) -$(object_dir)/opus%.o: CPPFLAGS += $(opus_cppflags) -$(object_dir)/gui%.o: CPPFLAGS += $(curses_cppflags) -$(object_dir)/spx%.o: CPPFLAGS += $(speex_cppflags) -$(object_dir)/%.cmdline.o: CPPFLAGS += -Wno-unused-function - -$(object_dir)/mp3_afh.o: CPPFLAGS += $(id3tag_cppflags) -$(object_dir)/crypt.o: CPPFLAGS += $(openssl_cppflags) -$(object_dir)/mp3dec_filter.o: CPPFLAGS += $(mad_cppflags) -$(object_dir)/compress_filter.o: CPPFLAGS += -O3 -$(object_dir)/ao_write.o: CPPFLAGS += $(ao_cppflags) - -$(object_dir)/aacdec_filter.o \ -$(object_dir)/aac_common.o \ -$(object_dir)/aac_afh.o \ -: CPPFLAGS += $(faad_cppflags) - -$(object_dir)/spx_common.o \ -$(object_dir)/spxdec_filter.o \ -$(object_dir)/spx_afh.o \ -$(object_dir)/oggdec_filter.o \ -$(object_dir)/ogg_afh.o \ -$(object_dir)/ogg_afh_common.o \ -: CPPFLAGS += $(ogg_cppflags) - -$(object_dir)/%.o: %.c | $(object_dir) - @[ -z "$(Q)" ] || echo 'CC $<' - $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) $< - -$(object_dir)/%.cmdline.o: $(cmdline_dir)/%.cmdline.c $(cmdline_dir)/%.cmdline.h | $(object_dir) - @[ -z "$(Q)" ] || echo 'CC $<' - $(Q) $(CC) -c $(CPPFLAGS) -Wno-unused-function -o $@ $< - -$(object_dir)/%.o: %.c | $(object_dir) - @[ -z "$(Q)" ] || echo 'CC $<' - $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) $< - -$(dep_dir)/%.cmdline.d: $(cmdline_dir)/%.cmdline.c | $(dep_dir) - @[ -z "$(Q)" ] || echo 'DEP $<' - $(Q) ./depend.sh $(dep_dir) $(object_dir) $(cmdline_dir) \ - $(CPPFLAGS) $< > $@ - -$(dep_dir)/%.d: %.c | $(dep_dir) - @[ -z "$(Q)" ] || echo 'DEP $<' - $(Q) ./depend.sh $(dep_dir) $(object_dir) $(cmdline_dir) \ - $(CPPFLAGS) $< > $@ - -ifeq ($(findstring clean, $(MAKECMDGOALS)),) --include $(deps) --include $(m4_deps) -endif - -para_recv para_afh para_play para_server: LDFLAGS += $(id3tag_ldflags) -para_write para_play para_audiod: LDFLAGS += $(ao_ldflags) $(core_audio_ldflags) -para_client para_audioc para_play : LDFLAGS += $(readline_ldflags) -para_server: LDFLAGS += $(osl_ldflags) -para_gui: LDFLAGS += $(curses_ldflags) -para_server \ -para_client \ -para_audiod \ -:LDFLAGS += \ - $(openssl_ldflags) \ - $(gcrypt_ldflags) - -para_audiod \ -para_filter \ -para_play \ -: LDFLAGS += \ - $(mad_ldflags) \ - $(samplerate_ldflags) \ - -lm - -para_write \ -para_play \ -para_audiod \ -para_fade \ -: LDFLAGS += \ - $(oss_ldflags) \ - $(alsa_ldflags) - -para_server \ -para_filter \ -para_audiod \ -para_play \ -para_afh \ -para_recv \ -: LDFLAGS += \ - $(ogg_ldflags) \ - $(vorbis_ldflags) \ - $(speex_ldflags) \ - $(opus_ldflags) \ - $(faad_ldflags) \ - $(flac_ldflags) - -para_server \ -para_client \ -para_audioc \ -para_audiod \ -para_recv \ -: LDFLAGS += \ - $(socket_ldflags) $(nsl_ldflags) - -$(foreach exe,$(executables),$(eval para_$(exe): $$($(exe)_objs))) -$(prefixed_executables): - @[ -z "$(Q)" ] || echo 'LD $@' - $(Q) $(CC) $^ -o $@ $(LDFLAGS) - -clean: - @[ -z "$(Q)" ] || echo 'CLEAN' - $(Q) rm -f $(prefixed_executables) - $(Q) rm -rf $(object_dir) - -clean2: clean - @[ -z "$(Q)" ] || echo 'CLEAN2' - $(Q) rm -f *_command_list.* *_completion.h - $(Q) rm -rf $(build_dir) -distclean: clean2 test-clean - @[ -z "$(Q)" ] || echo 'DISTCLEAN' - $(Q) rm -f Makefile autoscan.log config.status config.log - $(Q) rm -rf autom4te.cache - $(Q) rm -f GPATH GRTAGS GSYMS GTAGS - -maintainer-clean: distclean - rm -f *.tar.bz2 config.h configure config.h.in - rm -rf web_sync - -install: all man - $(MKDIR_P) $(BINDIR) $(MANDIR) - $(INSTALL) -s --strip-program $(STRIP) -m 755 \ - $(prefixed_executables) $(BINDIR) - $(INSTALL) -m 644 $(man_pages) $(MANDIR) - $(MKDIR_P) $(VARDIR) >/dev/null 2>&1 || true # not fatal, so don't complain - -$(tarball): - rm -rf $(tarball_pfx).tar.bz2 $(tarball_pfx) - git archive --format=tar --prefix=$(tarball_pfx)/ HEAD \ - | tar --delete $(tarball_delete) > $(tarball_pfx).tar - $(MKDIR_P) $(tarball_pfx) - ./GIT-VERSION-GEN > $(tarball_pfx)/VERSION - cp -r $(autocrap) $(tarball_pfx) - tar rf $(tarball_pfx).tar $(tarball_pfx)/* - bzip2 -9 $(tarball_pfx).tar - ls -l $(tarball_pfx).tar.bz2 - rm -rf $(tarball_pfx) -include $(test_dir)/makefile.test +include Makefile.real diff --git a/Makefile.real b/Makefile.real new file mode 100644 index 00000000..b02a5f44 --- /dev/null +++ b/Makefile.real @@ -0,0 +1,301 @@ +VARDIR := /var/paraslash +MANDIR := $(datarootdir)/man/man1 +STRIP := $(CROSS_COMPILE)strip +HOSTCC ?= cc +MKDIR_P := mkdir -p +prefixed_executables := $(addprefix para_, $(executables)) + +build_date := $(shell date) +uname_s := $(shell uname -s 2>/dev/null || echo "UNKNOWN_OS") +uname_rs := $(shell uname -rs) +cc_version := $(shell $(CC) --version | head -n 1) +GIT_VERSION := $(shell ./GIT-VERSION-GEN git-version.h) + +m4_ggo_dir := m4/gengetopt +test_dir := t +ifeq ("$(origin O)", "command line") + build_dir := $(O) +else + build_dir := build +endif +ggo_dir := $(build_dir)/ggo +object_dir := $(build_dir)/objects +dep_dir := $(build_dir)/deps +man_dir := $(build_dir)/man/man1 +cmdline_dir := $(build_dir)/cmdline +m4depdir := $(build_dir)/m4deps +help2man_dir := $(build_dir)/help2man +hostbin_dir := $(build_dir)/host/bin + +# sort removes duplicate words, which is all we need here +all_objs := $(sort $(recv_objs) $(filter_objs) $(client_objs) $(gui_objs) \ + $(audiod_objs) $(audioc_objs) $(fade_objs) $(server_objs) \ + $(write_objs) $(afh_objs) $(play_objs)) +deps := $(addprefix $(dep_dir)/, $(all_objs:.o=.d)) +m4_deps := $(addprefix $(m4depdir)/, $(addsuffix .m4d, $(executables))) + +# now prefix all objects with object dir +recv_objs := $(addprefix $(object_dir)/, $(recv_objs)) +filter_objs := $(addprefix $(object_dir)/, $(filter_objs)) +client_objs := $(addprefix $(object_dir)/, $(client_objs)) +gui_objs := $(addprefix $(object_dir)/, $(gui_objs)) +audiod_objs := $(addprefix $(object_dir)/, $(audiod_objs)) +audioc_objs := $(addprefix $(object_dir)/, $(audioc_objs)) +fade_objs := $(addprefix $(object_dir)/, $(fade_objs)) +server_objs := $(addprefix $(object_dir)/, $(server_objs)) +write_objs := $(addprefix $(object_dir)/, $(write_objs)) +afh_objs := $(addprefix $(object_dir)/, $(afh_objs)) +play_objs := $(addprefix $(object_dir)/, $(play_objs)) + + +DEBUG_CPPFLAGS += -g -Wunused -Wundef -W +DEBUG_CPPFLAGS += -Wredundant-decls +DEBUG_CPPFLAGS += -Wall -Wno-sign-compare -Wno-unknown-pragmas +DEBUG_CPPFLAGS += -Wformat-security +DEBUG_CPPFLAGS += -Wmissing-format-attribute + +ifeq ($(uname_s),Linux) + CPPFLAGS += -fdata-sections -ffunction-sections + LDFLAGS += -Wl,--gc-sections + CPPFLAGS += -Wstrict-prototypes + CPPFLAGS += -Wshadow + # causes warnings on *BSD for the feature test macros + CPPFLAGS += -Wunused-macros +endif +CPPFLAGS += -Os +CPPFLAGS += -Wuninitialized +CPPFLAGS += -Wchar-subscripts +CPPFLAGS += -DBINDIR='"$(BINDIR)"' +CPPFLAGS += -DBUILD_DATE='"$(build_date)"' +CPPFLAGS += -DUNAME_RS='"$(uname_rs)"' +CPPFLAGS += -DCC_VERSION='"$(cc_version)"' +CPPFLAGS += -Werror-implicit-function-declaration +CPPFLAGS += -Wmissing-noreturn +CPPFLAGS += -Wbad-function-cast +CPPFLAGS += -fno-strict-aliasing +CPPFLAGS += -DMAIN_INPUT_FILE_IS_$(*F) +CPPFLAGS += $(arch_cppflags) +CPPFLAGS += -I/usr/local/include +CPPFLAGS += -I$(cmdline_dir) +CPPFLAGS += $(osl_cppflags) + +LDFLAGS += $(clock_gettime_ldflags) + +man_pages := $(patsubst %, $(man_dir)/%.1, $(prefixed_executables)) + +autocrap := config.h.in configure +tarball_pfx := $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) +tarball_delete := $(addprefix $(tarball_pfx)/,\ + web .changelog_before_cvs .changelog_cvs .gitignore) +tarball := $(tarball_pfx).tar.bz2 + +# To put more focus on warnings, be less verbose as default +# Use 'make V=1' to see the full commands +ifeq ("$(origin V)", "command line") + Q := +else + Q := @ +endif + +.PHONY: dep all clean distclean maintainer-clean install man tarball +all: dep $(prefixed_executables) $(man_pages) +dep: $(deps) +man: $(man_pages) +tarball: $(tarball) + +$(object_dir) $(man_dir) $(ggo_dir) $(cmdline_dir) $(dep_dir) $(m4depdir) \ + $(help2man_dir) $(hostbin_dir): + $(Q) $(MKDIR_P) $@ + +-include $(m4_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_dir)/para_server.1: $(help2man_dir)/para_server $(server_command_lists_man) | $(man_dir) + @[ -z "$(Q)" ] || echo 'MAN $<' + $(Q) opts="`for i in $(server_command_lists_man); do printf "%s\n" "-i $$i"; done`"; \ + $(HELP2MAN) $$opts ./$< > $@ + +$(man_dir)/para_audiod.1: $(help2man_dir)/para_audiod audiod_command_list.man | $(man_dir) + @[ -z "$(Q)" ] || echo 'MAN $<' + $(Q) $(HELP2MAN) -N -i audiod_command_list.man ./$< > $@ + +$(man_dir)/para_play.1: $(help2man_dir)/para_play play_command_list.man | $(man_dir) + @[ -z "$(Q)" ] || echo 'MAN $<' + $(Q) $(HELP2MAN) -N -i play_command_list.man ./$< > $@ + +$(man_dir)/%.1: $(help2man_dir)/% | $(man_dir) + @[ -z "$(Q)" ] || echo 'MAN $<' + $(Q) $(HELP2MAN) -N ./$< > $@ + +$(hostbin_dir)/error2: error2.c | $(hostbin_dir) + @[ -z "$(Q)" ] || echo 'HCC $<' + $(Q) $(HOSTCC) -o $@ $< +error2.h: $(hostbin_dir)/error2 + @[ -z "$(Q)" ] || echo 'ER2 $<' + @echo "$(object_executable_matrix)" | $< > $@ + +$(object_dir)/%.o: %.c | $(object_dir) +$(object_dir)/opus%.o: CPPFLAGS += $(opus_cppflags) +$(object_dir)/gui%.o: CPPFLAGS += $(curses_cppflags) +$(object_dir)/spx%.o: CPPFLAGS += $(speex_cppflags) +$(object_dir)/%.cmdline.o: CPPFLAGS += -Wno-unused-function + +$(object_dir)/mp3_afh.o: CPPFLAGS += $(id3tag_cppflags) +$(object_dir)/crypt.o: CPPFLAGS += $(openssl_cppflags) +$(object_dir)/mp3dec_filter.o: CPPFLAGS += $(mad_cppflags) +$(object_dir)/compress_filter.o: CPPFLAGS += -O3 +$(object_dir)/ao_write.o: CPPFLAGS += $(ao_cppflags) + +$(object_dir)/aacdec_filter.o \ +$(object_dir)/aac_common.o \ +$(object_dir)/aac_afh.o \ +: CPPFLAGS += $(faad_cppflags) + +$(object_dir)/spx_common.o \ +$(object_dir)/spxdec_filter.o \ +$(object_dir)/spx_afh.o \ +$(object_dir)/oggdec_filter.o \ +$(object_dir)/ogg_afh.o \ +$(object_dir)/ogg_afh_common.o \ +: CPPFLAGS += $(ogg_cppflags) + +$(object_dir)/%.o: %.c | $(object_dir) + @[ -z "$(Q)" ] || echo 'CC $<' + $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) $< + +$(object_dir)/%.cmdline.o: $(cmdline_dir)/%.cmdline.c $(cmdline_dir)/%.cmdline.h | $(object_dir) + @[ -z "$(Q)" ] || echo 'CC $<' + $(Q) $(CC) -c $(CPPFLAGS) -Wno-unused-function -o $@ $< + +$(dep_dir)/%.cmdline.d: $(cmdline_dir)/%.cmdline.c error2.h | $(dep_dir) + @[ -z "$(Q)" ] || echo 'DEP $<' + $(Q) ./depend.sh $(dep_dir) $(object_dir) $(cmdline_dir) \ + $(CPPFLAGS) $< > $@ + +$(dep_dir)/%.d: %.c error2.h | $(dep_dir) + @[ -z "$(Q)" ] || echo 'DEP $<' + $(Q) ./depend.sh $(dep_dir) $(object_dir) $(cmdline_dir) \ + $(CPPFLAGS) $< > $@ + +ifeq ($(findstring clean, $(MAKECMDGOALS)),) +-include $(deps) +-include $(m4_deps) +endif + +para_recv para_afh para_play para_server: LDFLAGS += $(id3tag_ldflags) +para_write para_play para_audiod: LDFLAGS += $(ao_ldflags) $(core_audio_ldflags) +para_client para_audioc para_play : LDFLAGS += $(readline_ldflags) +para_server: LDFLAGS += $(osl_ldflags) +para_gui: LDFLAGS += $(curses_ldflags) +para_server \ +para_client \ +para_audiod \ +:LDFLAGS += \ + $(openssl_ldflags) \ + $(gcrypt_ldflags) + +para_audiod \ +para_filter \ +para_play \ +: LDFLAGS += \ + $(mad_ldflags) \ + $(samplerate_ldflags) \ + -lm + +para_write \ +para_play \ +para_audiod \ +para_fade \ +: LDFLAGS += \ + $(oss_ldflags) \ + $(alsa_ldflags) + +para_server \ +para_filter \ +para_audiod \ +para_play \ +para_afh \ +para_recv \ +: LDFLAGS += \ + $(ogg_ldflags) \ + $(vorbis_ldflags) \ + $(speex_ldflags) \ + $(opus_ldflags) \ + $(faad_ldflags) \ + $(flac_ldflags) + +para_server \ +para_client \ +para_audioc \ +para_audiod \ +para_recv \ +: LDFLAGS += \ + $(socket_ldflags) $(nsl_ldflags) + +$(foreach exe,$(executables),$(eval para_$(exe): $$($(exe)_objs))) +$(prefixed_executables): + @[ -z "$(Q)" ] || echo 'LD $@' + $(Q) $(CC) $^ -o $@ $(LDFLAGS) + +clean: + @[ -z "$(Q)" ] || echo 'CLEAN' + $(Q) rm -f $(prefixed_executables) + $(Q) rm -rf $(object_dir) + +clean2: clean + @[ -z "$(Q)" ] || echo 'CLEAN2' + $(Q) rm -f *_command_list.* *_completion.h + $(Q) rm -rf $(build_dir) +distclean: clean2 test-clean + @[ -z "$(Q)" ] || echo 'DISTCLEAN' + $(Q) rm -f Makefile autoscan.log config.status config.log error2.h + $(Q) rm -rf autom4te.cache + $(Q) rm -f GPATH GRTAGS GSYMS GTAGS + +maintainer-clean: distclean + rm -f *.tar.bz2 config.h configure config.h.in + rm -rf web_sync + +install: all man + $(MKDIR_P) $(BINDIR) $(MANDIR) + $(INSTALL) -s --strip-program $(STRIP) -m 755 \ + $(prefixed_executables) $(BINDIR) + $(INSTALL) -m 644 $(man_pages) $(MANDIR) + $(MKDIR_P) $(VARDIR) >/dev/null 2>&1 || true # not fatal, so don't complain + +$(tarball): + rm -rf $(tarball_pfx).tar.bz2 $(tarball_pfx) + git archive --format=tar --prefix=$(tarball_pfx)/ HEAD \ + | tar --delete $(tarball_delete) > $(tarball_pfx).tar + $(MKDIR_P) $(tarball_pfx) + ./GIT-VERSION-GEN > $(tarball_pfx)/VERSION + cp -r $(autocrap) $(tarball_pfx) + tar rf $(tarball_pfx).tar $(tarball_pfx)/* + bzip2 -9 $(tarball_pfx).tar + ls -l $(tarball_pfx).tar.bz2 + rm -rf $(tarball_pfx) +include $(test_dir)/makefile.test -- 2.39.2