uname_s := $(shell uname -s 2>/dev/null || echo "UNKNOWN_OS")
uname_rs := $(shell uname -rs)
cc_version := $(shell $(CC) --version | head -n 1)
-codename := deterministic entropy
+codename := nested assignment
-DEBUG_CPPFLAGS += -Wno-sign-compare -g -Wunused -Wundef -W
+GIT_VERSION := $(shell ./GIT-VERSION-GEN git-version.h)
+
+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
# produces false positives
# DEBUG_CPPFLAGS += -Wunreachable-code
# DEBUG_CPPFLAGS += -Wwrite-strings
# DEBUG_CPPFLAGS += -Wextra
# DEBUG_CPPFLAGS += -Wold-style-definition
# DEBUG_CPPFLAGS += -Wdeclaration-after-statement
+# DEBUG_CPPFLAGS += -Wsuggest-attribute=const
# many warnings about trivial stuff
# CPPFLAGS += -Wconversion
CPPFLAGS += -Wshadow
endif
CPPFLAGS += -Os
-CPPFLAGS += -Wall
CPPFLAGS += -Wuninitialized
CPPFLAGS += -Wchar-subscripts
-CPPFLAGS += -Wformat-security
CPPFLAGS += -DBINDIR='"$(BINDIR)"'
CPPFLAGS += -DBUILD_DATE='"$(build_date)"'
CPPFLAGS += -DUNAME_RS='"$(uname_rs)"'
CPPFLAGS += -DCODENAME='"$(codename)"'
CPPFLAGS += -DCC_VERSION='"$(cc_version)"'
CPPFLAGS += -Werror-implicit-function-declaration
-CPPFLAGS += -Wmissing-format-attribute
CPPFLAGS += -Wmissing-noreturn
CPPFLAGS += -Wunused-macros
CPPFLAGS += -Wbad-function-cast
CPPFLAGS += -fno-strict-aliasing
CPPFLAGS += -DMAIN_INPUT_FILE_IS_$(*F)
-CPPFLAGS += @SSL_CPPFLAGS@
-CPPFLAGS += @ncurses_cppflags@
CPPFLAGS += @arch_cppflags@
CPPFLAGS += -I/usr/local/include
CPPFLAGS += -I$(cmdline_dir)
CPPFLAGS += @osl_cppflags@
-CPPFLAGS += -DGIT_VERSION='"$(GIT_VERSION)"'
man_pages := $(patsubst %, man/man1/%.1, @executables@)
man_pages_in := $(patsubst %, web/%.man.in.html, @executables@)
man_dir := man/man1
test_dir := t
-m4_ggos := afh audioc audiod client filter gui recv server write
+m4_ggos := afh audioc audiod client filter gui recv server write ao_write
all_ggos := $(m4_ggos) dccp_recv alsa_write oss_write fade http_recv \
osx_write udp_recv amp_filter compress_filter file_write \
mp3dec_filter prebuffer_filter
Q =
endif
-.PHONY: dep all clean distclean maintainer-clean install man tarball\
- .FORCE-GIT-VERSION-FILE
+.PHONY: dep all clean distclean maintainer-clean install man tarball
all: dep @executables@ $(man_pages)
dep: $(deps)
man: $(man_pages)
tarball: $(tarball)
-GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
- @./GIT-VERSION-GEN GIT-VERSION-FILE
--include GIT-VERSION-FILE
-@executables@: GIT-VERSION-FILE
-
-include $(ggo_dir)/makefile
%_command_list.c: %.cmd
$(man_dir):
mkdir -p $@
+$(object_dir)/crypt.o: crypt.c | $(object_dir)
+ @[ -z "$(Q)" ] || echo 'CC $<'
+ $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @openssl_cppflags@ $<
$(object_dir)/spx_common.o: spx_common.c | $(object_dir)
@[ -z "$(Q)" ] || echo 'CC $<'
$(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @ogg_cppflags@ $<
@[ -z "$(Q)" ] || echo 'CC $<'
$(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @faad_cppflags@ $<
+$(object_dir)/gui%.o: gui%.c | $(object_dir)
+ @[ -z "$(Q)" ] || echo 'CC $<'
+ $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @curses_cppflags@ $<
+$(object_dir)/ao_write.o: ao_write.c | $(object_dir)
+ @[ -z "$(Q)" ] || echo 'CC $<'
+ $(Q) $(CC) -c -o $@ $(CPPFLAGS) $(DEBUG_CPPFLAGS) @ao_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 $@ $<
@[ -z "$(Q)" ] || echo 'DEP $<'
$(Q) ./depend.sh $(object_dir) $(cmdline_dir) $(CPPFLAGS) $< > $@
+
recv_objs := $(addprefix $(object_dir)/, @recv_objs@)
filter_objs := $(addprefix $(object_dir)/, @filter_objs@)
client_objs := $(addprefix $(object_dir)/, @client_objs@)
para_gui: $(gui_objs)
@[ -z "$(Q)" ] || echo 'LD $@'
- $(Q) $(CC) $(LDFLAGS) -o $@ $(gui_objs) -lncurses
+ $(Q) $(CC) $(LDFLAGS) -o $@ $(gui_objs) -lcurses
para_audiod: audiod_command_list.c audiod_command_list.h $(audiod_objs)
@[ -z "$(Q)" ] || echo 'LD $@'
git archive --format=tar --prefix=$(tarball_pfx)/ HEAD \
| tar --delete $(tarball_delete) > $(tarball_pfx).tar
mkdir -p $(tarball_pfx)/$(cmdline_dir)
- echo $(GIT_VERSION) > $(tarball_pfx)/VERSION
+ ./GIT-VERSION-GEN > $(tarball_pfx)/VERSION
cp -r $(autocrap) $(tarball_pfx)
cp -r $(cmdline_generated) $(tarball_pfx)/$(cmdline_dir)
tar rf $(tarball_pfx).tar $(tarball_pfx)/*