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