build: Generate module symdefs in src/modules directory
authorMaarten Bosmans <mkbosmans@gmail.com>
Tue, 25 Jan 2011 10:01:46 +0000 (11:01 +0100)
committerColin Guthrie <cguthrie@mandriva.org>
Mon, 31 Jan 2011 12:40:43 +0000 (12:40 +0000)
This will make it possible to remove the empty Makefile.am files.
 - module-...-symdef.h files are all generated in src/modules, instead of in the subdir of the module.
 - The default inclusion of src/modules subdirs in AM_CFLAGS can be removed, where necessary (raop) the subdir is
   included in the specific CFLAGS.
 - The src/daemon and src/modules directories are always created on make, to facilitate out of tree builds.
 - AM silent rules are used for the generation of symdef files by m4.
 - For echo-cancel, keep the build dir include for now (and mkdir it) although limit it to just the echo-cancel
   module's CFLAGS (Colin Guthrie)

src/Makefile.am

index f67b2f6..ae9b149 100644 (file)
@@ -51,29 +51,8 @@ endif
 
 AM_CFLAGS = \
        -I$(top_srcdir)/src \
-       -I$(top_builddir)/src \
        -I$(top_srcdir)/src/modules \
        -I$(top_builddir)/src/modules \
-       -I$(top_srcdir)/src/modules/rtp \
-       -I$(top_builddir)/src/modules/rtp \
-       -I$(top_srcdir)/src/modules/gconf \
-       -I$(top_builddir)/src/modules/gconf \
-       -I$(top_srcdir)/src/modules/bluetooth \
-       -I$(top_builddir)/src/modules/bluetooth \
-       -I$(top_srcdir)/src/modules/oss \
-       -I$(top_builddir)/src/modules/oss \
-       -I$(top_srcdir)/src/modules/alsa \
-       -I$(top_builddir)/src/modules/alsa \
-       -I$(top_srcdir)/src/modules/raop \
-       -I$(top_builddir)/src/modules/raop \
-       -I$(top_srcdir)/src/modules/x11 \
-       -I$(top_builddir)/src/modules/x11 \
-       -I$(top_srcdir)/src/modules/jack \
-       -I$(top_builddir)/src/modules/jack \
-       -I$(top_srcdir)/src/modules/dbus \
-       -I$(top_builddir)/src/modules/dbus \
-       -I$(top_srcdir)/src/modules/echo-cancel \
-       -I$(top_builddir)/src/modules/echo-cancel \
        $(PTHREAD_CFLAGS) -D_POSIX_PTHREAD_SEMANTICS \
        $(LIBSAMPLERATE_CFLAGS) \
        $(LIBSNDFILE_CFLAGS) \
@@ -983,7 +962,7 @@ librtp_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINOR@.la libpulsecommon-@
 libraop_la_SOURCES = \
         modules/raop/raop_client.c modules/raop/raop_client.h \
         modules/raop/base64.c modules/raop/base64.h
-libraop_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS)
+libraop_la_CFLAGS = $(AM_CFLAGS) $(OPENSSL_CFLAGS) -I$(top_srcdir)/src/modules/rtp
 libraop_la_LDFLAGS = -avoid-version
 libraop_la_LIBADD = $(AM_LIBADD) $(OPENSSL_LIBS) libpulsecore-@PA_MAJORMINOR@.la librtp.la libpulsecommon-@PA_MAJORMINOR@.la libpulse.la
 
@@ -1242,91 +1221,95 @@ endif
 
 # These are generated by an M4 script
 SYMDEF_FILES = \
-               modules/module-cli-symdef.h \
-               modules/module-cli-protocol-tcp-symdef.h \
-               modules/module-cli-protocol-unix-symdef.h \
-               modules/module-pipe-sink-symdef.h \
-               modules/module-pipe-source-symdef.h \
-               modules/module-simple-protocol-tcp-symdef.h \
-               modules/module-simple-protocol-unix-symdef.h \
-               modules/module-esound-protocol-tcp-symdef.h \
-               modules/module-esound-protocol-unix-symdef.h \
-               modules/module-native-protocol-tcp-symdef.h \
-               modules/module-native-protocol-unix-symdef.h \
-               modules/module-native-protocol-fd-symdef.h \
-               modules/module-sine-symdef.h \
-               modules/module-combine-symdef.h \
-               modules/module-remap-sink-symdef.h \
-               modules/module-ladspa-sink-symdef.h \
-               modules/module-equalizer-sink-symdef.h \
-               modules/module-esound-compat-spawnfd-symdef.h \
-               modules/module-esound-compat-spawnpid-symdef.h \
-               modules/module-match-symdef.h \
-               modules/module-tunnel-sink-symdef.h \
-               modules/module-tunnel-source-symdef.h \
-               modules/module-null-sink-symdef.h \
-               modules/module-sine-source-symdef.h \
-               modules/module-esound-sink-symdef.h \
-               modules/module-zeroconf-publish-symdef.h \
-               modules/module-zeroconf-discover-symdef.h \
-               modules/module-bonjour-publish-symdef.h \
-               modules/module-lirc-symdef.h \
-               modules/module-mmkbd-evdev-symdef.h \
-               modules/module-http-protocol-tcp-symdef.h \
-               modules/module-http-protocol-unix-symdef.h \
-               modules/module-rygel-media-server-symdef.h \
-               modules/x11/module-x11-bell-symdef.h \
-               modules/x11/module-x11-publish-symdef.h \
-               modules/x11/module-x11-xsmp-symdef.h \
-               modules/x11/module-x11-cork-request-symdef.h \
-               modules/oss/module-oss-symdef.h \
-               modules/alsa/module-alsa-sink-symdef.h \
-               modules/alsa/module-alsa-source-symdef.h \
-               modules/alsa/module-alsa-card-symdef.h \
-               modules/coreaudio/module-coreaudio-detect-symdef.h \
-               modules/coreaudio/module-coreaudio-device-symdef.h \
-               modules/module-solaris-symdef.h \
-               modules/module-waveout-symdef.h \
-               modules/module-detect-symdef.h \
-               modules/rtp/module-rtp-send-symdef.h \
-               modules/rtp/module-rtp-recv-symdef.h \
-               modules/jack/module-jackdbus-detect-symdef.h \
-               modules/jack/module-jack-sink-symdef.h \
-               modules/jack/module-jack-source-symdef.h \
-               modules/module-volume-restore-symdef.h \
-               modules/module-device-manager-symdef.h \
-               modules/module-device-restore-symdef.h \
-               modules/module-stream-restore-symdef.h \
-               modules/module-card-restore-symdef.h \
-               modules/module-default-device-restore-symdef.h \
-               modules/module-always-sink-symdef.h \
-               modules/module-rescue-streams-symdef.h \
-               modules/module-intended-roles-symdef.h \
-               modules/module-suspend-on-idle-symdef.h \
-               modules/echo-cancel/module-echo-cancel-symdef.h \
-               modules/module-hal-detect-symdef.h \
-               modules/module-udev-detect-symdef.h \
-               modules/bluetooth/module-bluetooth-proximity-symdef.h \
-               modules/bluetooth/module-bluetooth-discover-symdef.h \
-               modules/bluetooth/module-bluetooth-device-symdef.h \
-               modules/raop/module-raop-sink-symdef.h \
-               modules/raop/module-raop-discover-symdef.h \
-               modules/gconf/module-gconf-symdef.h \
-               modules/module-position-event-sounds-symdef.h \
-               modules/module-augment-properties-symdef.h \
-               modules/module-cork-music-on-phone-symdef.h \
-               modules/module-console-kit-symdef.h \
-               modules/dbus/module-dbus-protocol-symdef.h \
-               modules/module-loopback-symdef.h \
-               modules/module-virtual-sink-symdef.h \
-               modules/module-virtual-source-symdef.h
+               module-cli-symdef.h \
+               module-cli-protocol-tcp-symdef.h \
+               module-cli-protocol-unix-symdef.h \
+               module-pipe-sink-symdef.h \
+               module-pipe-source-symdef.h \
+               module-simple-protocol-tcp-symdef.h \
+               module-simple-protocol-unix-symdef.h \
+               module-esound-protocol-tcp-symdef.h \
+               module-esound-protocol-unix-symdef.h \
+               module-native-protocol-tcp-symdef.h \
+               module-native-protocol-unix-symdef.h \
+               module-native-protocol-fd-symdef.h \
+               module-sine-symdef.h \
+               module-combine-symdef.h \
+               module-remap-sink-symdef.h \
+               module-ladspa-sink-symdef.h \
+               module-equalizer-sink-symdef.h \
+               module-esound-compat-spawnfd-symdef.h \
+               module-esound-compat-spawnpid-symdef.h \
+               module-match-symdef.h \
+               module-tunnel-sink-symdef.h \
+               module-tunnel-source-symdef.h \
+               module-null-sink-symdef.h \
+               module-sine-source-symdef.h \
+               module-esound-sink-symdef.h \
+               module-zeroconf-publish-symdef.h \
+               module-zeroconf-discover-symdef.h \
+               module-bonjour-publish-symdef.h \
+               module-lirc-symdef.h \
+               module-mmkbd-evdev-symdef.h \
+               module-http-protocol-tcp-symdef.h \
+               module-http-protocol-unix-symdef.h \
+               module-rygel-media-server-symdef.h \
+               module-x11-bell-symdef.h \
+               module-x11-publish-symdef.h \
+               module-x11-xsmp-symdef.h \
+               module-x11-cork-request-symdef.h \
+               module-oss-symdef.h \
+               module-alsa-sink-symdef.h \
+               module-alsa-source-symdef.h \
+               module-alsa-card-symdef.h \
+               module-coreaudio-detect-symdef.h \
+               module-coreaudio-device-symdef.h \
+               module-solaris-symdef.h \
+               module-waveout-symdef.h \
+               module-detect-symdef.h \
+               module-rtp-send-symdef.h \
+               module-rtp-recv-symdef.h \
+               module-jackdbus-detect-symdef.h \
+               module-jack-sink-symdef.h \
+               module-jack-source-symdef.h \
+               module-volume-restore-symdef.h \
+               module-device-manager-symdef.h \
+               module-device-restore-symdef.h \
+               module-stream-restore-symdef.h \
+               module-card-restore-symdef.h \
+               module-default-device-restore-symdef.h \
+               module-always-sink-symdef.h \
+               module-rescue-streams-symdef.h \
+               module-intended-roles-symdef.h \
+               module-suspend-on-idle-symdef.h \
+               module-echo-cancel-symdef.h \
+               module-hal-detect-symdef.h \
+               module-udev-detect-symdef.h \
+               module-bluetooth-proximity-symdef.h \
+               module-bluetooth-discover-symdef.h \
+               module-bluetooth-device-symdef.h \
+               module-raop-sink-symdef.h \
+               module-raop-discover-symdef.h \
+               module-gconf-symdef.h \
+               module-position-event-sounds-symdef.h \
+               module-augment-properties-symdef.h \
+               module-cork-music-on-phone-symdef.h \
+               module-console-kit-symdef.h \
+               module-dbus-protocol-symdef.h \
+               module-loopback-symdef.h \
+               module-virtual-sink-symdef.h \
+               module-virtual-source-symdef.h
 
 EXTRA_DIST += $(SYMDEF_FILES)
-BUILT_SOURCES += $(SYMDEF_FILES)
+BUILT_SOURCES += $(SYMDEF_FILES) builddirs
 
 $(SYMDEF_FILES): modules/module-defs.h.m4
-       $(MKDIR_P) $(dir $@)
-       $(M4) -Dfname="$@" $< > $@
+       $(AM_V_at)$(MKDIR_P) modules
+       $(AM_V_GEN)$(M4) -Dfname="$@" $< > $@
+
+.PHONY: builddirs
+builddirs:
+       $(AM_V_at)$(MKDIR_P) daemon modules src/modules/echo-cancel
 
 # Simple protocol
 
@@ -1729,7 +1712,7 @@ module_echo_cancel_la_SOURCES = modules/echo-cancel/module-echo-cancel.c modules
 nodist_module_echo_cancel_la_SOURCES = $(ORC_NODIST_SOURCES)
 module_echo_cancel_la_LDFLAGS = $(MODULE_LDFLAGS)
 module_echo_cancel_la_LIBADD = $(MODULE_LIBADD) $(LIBSPEEX_LIBS) $(ORC_LIBS)
-module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(LIBSPEEX_CFLAGS) $(ORC_CFLAGS)
+module_echo_cancel_la_CFLAGS = $(AM_CFLAGS) $(LIBSPEEX_CFLAGS) $(ORC_CFLAGS) -I$(top_builddir)/src/modules/echo-cancel
 
 # RTP modules
 module_rtp_send_la_SOURCES = modules/rtp/module-rtp-send.c
@@ -1834,6 +1817,7 @@ module_bluetooth_device_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
 module_raop_sink_la_SOURCES = modules/raop/module-raop-sink.c
 module_raop_sink_la_LDFLAGS = $(MODULE_LDFLAGS)
 module_raop_sink_la_LIBADD = $(MODULE_LIBADD) librtp.la libraop.la
+module_raop_sink_la_CFLAGS = $(AM_CFLAGS) -I$(top_srcdir)/src/modules/rtp
 
 module_raop_discover_la_SOURCES = modules/raop/module-raop-discover.c
 module_raop_discover_la_LDFLAGS = $(MODULE_LDFLAGS)