More init code, silencing warnings
[libopusenc.git] / Makefile.am
1 ACLOCAL_AMFLAGS = -I m4
2
3 AM_CFLAGS = -I$(top_srcdir)/include $(DEPS_CFLAGS)
4
5 dist_doc_DATA = COPYING AUTHORS README.md
6
7 opusincludedir = ${includedir}/opus
8 opusinclude_HEADERS = include/opusenc.h
9
10 lib_LTLIBRARIES = libopusenc.la
11 libopusenc_la_SOURCES = \
12         src/opus_header.c \
13         src/opusenc.c
14 libopusenc_la_LIBADD = $(DEPS_LIBS) $(lrintf_lib)
15 libopusenc_la_LDFLAGS = -no-undefined \
16  -version-info @OP_LT_CURRENT@:@OP_LT_REVISION@:@OP_LT_AGE@
17
18 if OP_ENABLE_EXAMPLES
19 noinst_PROGRAMS = examples/opusenc_example
20 endif
21
22 examples_opusenc_example_SOURCES = examples/opusenc_example.c
23 examples_opusenc_example_LDADD = libopusenc.la
24
25 pkgconfigdir = $(libdir)/pkgconfig
26 pkgconfig_DATA = opusenc.pc
27
28 debug:
29         $(MAKE) CFLAGS="${CFLAGS} -O0 -ggdb -DOP_ENABLE_ASSERTIONS" all
30
31 EXTRA_DIST = \
32  opusenc.pc.in \
33  opusenc-uninstalled.pc.in \
34  doc/Doxyfile.in \
35  doc/opus_logo.svg \
36  doc/Makefile \
37  unix/Makefile
38
39 # Targets to build and install just the library without the docs
40 opusenc install-opusenc: NO_DOXYGEN = 1
41
42 opusenc: all
43 install-opusenc: install
44
45 # Or just the docs
46 docs: doc/doxygen-build.stamp
47
48 install-docs:
49         @if [ -z "$(NO_DOXYGEN)" ]; then \
50           ( cd doc && \
51             echo "Installing documentation in $(DESTDIR)$(docdir)"; \
52             $(INSTALL) -d $(DESTDIR)$(docdir)/html/search; \
53             for f in `find html -type f \! -name "installdox"` ; do \
54               $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$f;     \
55             done ) \
56         fi
57
58 doc/doxygen-build.stamp: doc/Doxyfile $(top_srcdir)/doc/opus_logo.svg \
59                          $(top_srcdir)/include/*.h
60         @[ -n "$(NO_DOXYGEN)" ] || ( cd doc && doxygen && touch $(@F) )
61
62
63 if HAVE_DOXYGEN
64
65 # Or everything (by default)
66 all-local: docs
67
68 install-data-local: install-docs
69
70 clean-local:
71         $(RM) -r doc/html
72         $(RM) -r doc/latex
73         $(RM) doc/doxygen-build.stamp
74
75 uninstall-local:
76         $(RM) -r $(DESTDIR)$(docdir)/html
77
78 endif
79
80 # We check this every time make is run, with configure.ac being touched to
81 # trigger an update of the build system files if update_version changes the
82 # current PACKAGE_VERSION (or if package_version was modified manually by a
83 # user with either AUTO_UPDATE=no or no update_version script present - the
84 # latter being the normal case for tarball releases).
85 #
86 # We can't just add the package_version file to CONFIGURE_DEPENDENCIES since
87 # simply running autoconf will not actually regenerate configure for us when
88 # the content of that file changes (due to autoconf dependency checking not
89 # knowing about that without us creating yet another file for it to include).
90 #
91 # The MAKECMDGOALS check is a gnu-make'ism, but will degrade 'gracefully' for
92 # makes that don't support it.  The only loss of functionality is not forcing
93 # an update of package_version for `make dist` if AUTO_UPDATE=no, but that is
94 # unlikely to be a real problem for any real user.
95 $(top_srcdir)/configure.ac: force
96         @case "$(MAKECMDGOALS)" in \
97             dist-hook)                             exit 0       ;; \
98             dist-* | dist | distcheck | distclean) _arg=release ;; \
99         esac; \
100         if ! $(top_srcdir)/update_version $$_arg 2> /dev/null; then \
101             if [ ! -e $(top_srcdir)/package_version ]; then \
102                 echo 'PACKAGE_VERSION="unknown"' > $(top_srcdir)/package_version; \
103             fi; \
104             . $(top_srcdir)/package_version || exit 1; \
105             [ "$(PACKAGE_VERSION)" != "$$PACKAGE_VERSION" ] || exit 0; \
106         fi; \
107         touch $@
108
109 force:
110
111 # Create a minimal package_version file when make dist is run.
112 dist-hook:
113         echo 'PACKAGE_VERSION="$(PACKAGE_VERSION)"' > $(top_distdir)/package_version
114
115
116 .PHONY: opusenc install-opusenc docs install-docs