summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaetan Nadon <memsize@videotron.ca>2011-06-28 17:13:30 -0400
committerGaetan Nadon <memsize@videotron.ca>2011-07-05 16:39:33 -0400
commitcb6818b6230ca43ddaabfb8f16feaef9ae3ef68e (patch)
tree5655a8906908858bc59e6c0bfff624f5ff33bd29
parentbb604aca58f9c718601a22290176e201e92d36ab (diff)
Revert "build: collapse all Makefile.am files into a single non-recursive one."
This reverts commit 39afe69ad7d2258d4043044d1283bd6e311e48da. 1. For such a small module, the build time improvement is most likely negligible. At least, I'd like to see some timings proving it's worthiness before seeing the patch go back in. 2. This kind of change would need a thorough review. The need to operate the build from a single toplevel Makefile is a significant change. The two most noticeable issues for me are that collapsing all the Makefiles could easily cause namespacing issues with the variables, and operating on files outside the current directory can introduce subtle bugs. I feel that the non-recursive style is generally less robust than the standard recursive make scheme. 3. It's unlike all the other X.org modules. This isn't a showstopper for me, but the recursive style is well understood here and you've beaten all the modules into a consistent format that makes build bugs unique to specific modules less likely. Acked-by: Dan Nicholson <dbn.lists@gmail.com> To give a concrete example for #3 above, the 175 man pages are much easier maintained using a very similar makefile in the man directory of all X.Org module. The cost of maintaining a single makefile is much higher. Every target in the makefile has to be reviewed and tested when changes are made. Not everyone has the all the skills to handle widely different targets such as man pages, DocBook/XML, librairies, C code, distribution hooks, and so on. Acked-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
-rw-r--r--.gitignore3
-rw-r--r--Makefile.am95
-rw-r--r--conf/Makefile.am27
-rw-r--r--configure.ac6
-rw-r--r--include/Makefile.am21
-rw-r--r--man/Makefile.am47
-rw-r--r--src/Makefile.am52
-rw-r--r--test/.gitignore6
-rw-r--r--test/Makefile.am15
-rw-r--r--tools/.gitignore3
-rw-r--r--tools/Makefile.am31
11 files changed, 210 insertions, 96 deletions
diff --git a/.gitignore b/.gitignore
index 2f191c3..c496323 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,6 +76,3 @@ core
# Edit the following section as needed
# For example, !report.pc overrides *.pc. See 'man gitignore'
#
-eventcomm-test
-synclient
-syndaemon
diff --git a/Makefile.am b/Makefile.am
index 7cedc61..edd28a6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,104 +18,13 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+SUBDIRS = include src man tools conf test
MAINTAINERCLEANFILES = ChangeLog INSTALL
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = xorg-synaptics.pc
-sdk_HEADERS = include/synaptics.h include/synaptics-properties.h
-
-input_LTLIBRARIES = @DRIVER_NAME@_drv.la
-
-# -module lets us name the module exactly how we want
-# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
-# -shared avoid building the static archive
-@DRIVER_NAME@_drv_la_LDFLAGS = -module -avoid-version -shared
-@DRIVER_NAME@_drv_la_CPPFLAGS = -I$(top_srcdir)/include
-@DRIVER_NAME@_drv_la_CFLAGS = $(XORG_CFLAGS)
-
-@DRIVER_NAME@_drv_la_SOURCES = src/@DRIVER_NAME@.c src/synapticsstr.h \
- src/synproto.h \
- src/properties.c
-
-if BUILD_PS2COMM
-@DRIVER_NAME@_drv_la_SOURCES += \
- src/alpscomm.c \
- src/ps2comm.c src/ps2comm.h
-endif
-
-if BUILD_EVENTCOMM
-@DRIVER_NAME@_drv_la_SOURCES += \
- src/eventcomm.c src/eventcomm.h
-endif
-
-if BUILD_PSMCOMM
-@DRIVER_NAME@_drv_la_SOURCES += \
- src/psmcomm.c
-endif
-
-bin_PROGRAMS = synclient syndaemon
-
-synclient_SOURCES = tools/synclient.c
-synclient_CFLAGS = -I$(top_srcdir)/include $(XORG_CFLAGS) $(XI_CFLAGS)
-synclient_LDADD = $(XI_LIBS)
-
-syndaemon_SOURCES = tools/syndaemon.c
-syndaemon_CFLAGS = -I$(top_srcdir)/include $(XORG_CFLAGS) $(XI_CFLAGS) $(XTST_CFLAGS)
-syndaemon_LDADD = $(XI_LIBS) $(XTST_LIBS)
-
-if HAS_XORG_CONF_DIR
-dist_config_DATA = conf/50-synaptics.conf
-else
-fdidir = $(datadir)/hal/fdi/policy/20thirdparty
-dist_fdi_DATA = conf/11-x11-synaptics.fdi
-endif
-
-if ENABLE_UNIT_TESTS
-if BUILD_EVENTCOMM
-check_PROGRAMS = eventcomm-test
-
-eventcomm_test_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include
-eventcomm_test_CFLAGS = $(XORG_CFLAGS) $(CWARNFLAGS)
-eventcomm_test_SOURCES = test/eventcomm-test.c\
- src/eventcomm.c \
- test/fake-symbols.c test/fake-symbols.h
-
-TESTS = $(check_PROGRAMS)
-endif
-endif
-
-synclientmandir = $(APP_MAN_DIR)
-synclientman_PRE = man/synclient.man
-synclientman_DATA = $(synclientman_PRE:man=@APP_MAN_SUFFIX@)
-
-syndaemonmandir = $(APP_MAN_DIR)
-syndaemonman_PRE = man/syndaemon.man
-syndaemonman_DATA = $(syndaemonman_PRE:man=@APP_MAN_SUFFIX@)
-
-drivermandir = $(DRIVER_MAN_DIR)
-driverman_PRE = man/@DRIVER_NAME@.man
-driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
-
-EXTRA_DIST = man/@DRIVER_NAME@.man man/synclient.man man/syndaemon.man
-
-CLEANFILES = $(driverman_DATA) $(synclientman_DATA) $(syndaemonman_DATA)
-
-SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
-
-.PHONY: ChangeLog INSTALL mandir
-
-mandir:
- $(MKDIR_P) man
-
-# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
-.man.$(DRIVER_MAN_SUFFIX):
- @$(MKDIR_P) man
- $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
-
-.man.$(APP_MAN_SUFFIX):
- @$(MKDIR_P) man
- $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+.PHONY: ChangeLog INSTALL
INSTALL:
$(INSTALL_CMD)
diff --git a/conf/Makefile.am b/conf/Makefile.am
new file mode 100644
index 0000000..38d2a01
--- /dev/null
+++ b/conf/Makefile.am
@@ -0,0 +1,27 @@
+# Copyright 2005 Adam Jackson.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+if HAS_XORG_CONF_DIR
+dist_config_DATA = 50-synaptics.conf
+else
+fdidir = $(datadir)/hal/fdi/policy/20thirdparty
+dist_fdi_DATA = 11-x11-synaptics.fdi
+endif
diff --git a/configure.ac b/configure.ac
index e5427cd..2fe5289 100644
--- a/configure.ac
+++ b/configure.ac
@@ -147,6 +147,12 @@ fi
# -----------------------------------------------------------------------------
AC_CONFIG_FILES([Makefile
+ src/Makefile
+ man/Makefile
+ tools/Makefile
+ conf/Makefile
+ include/Makefile
+ test/Makefile
xorg-synaptics.pc])
AC_OUTPUT
diff --git a/include/Makefile.am b/include/Makefile.am
new file mode 100644
index 0000000..f078e5e
--- /dev/null
+++ b/include/Makefile.am
@@ -0,0 +1,21 @@
+# Copyright 2005 Adam Jackson.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+sdk_HEADERS = synaptics.h synaptics-properties.h
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644
index 0000000..8d56fe0
--- /dev/null
+++ b/man/Makefile.am
@@ -0,0 +1,47 @@
+# $Id$
+#
+# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+
+synclientmandir = $(APP_MAN_DIR)
+synclientman_PRE = synclient.man
+synclientman_DATA = $(synclientman_PRE:man=@APP_MAN_SUFFIX@)
+
+syndaemonmandir = $(APP_MAN_DIR)
+syndaemonman_PRE = syndaemon.man
+syndaemonman_DATA =$(syndaemonman_PRE:man=@APP_MAN_SUFFIX@)
+
+drivermandir = $(DRIVER_MAN_DIR)
+driverman_PRE = @DRIVER_NAME@.man
+driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
+
+EXTRA_DIST = @DRIVER_NAME@.man synclient.man syndaemon.man
+
+CLEANFILES = $(driverman_DATA) $(synclientman_DATA) $(syndaemonman_DATA)
+
+SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
+
+# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+.man.$(DRIVER_MAN_SUFFIX):
+ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+.man.$(APP_MAN_SUFFIX):
+ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..5e04670
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,52 @@
+# Copyright 2005 Adam Jackson.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+# this is obnoxious:
+# -module lets us name the module exactly how we want
+# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
+# _ladir passes a dummy rpath to libtool so the thing will actually link
+# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
+@DRIVER_NAME@_drv_la_LTLIBRARIES = @DRIVER_NAME@_drv.la
+@DRIVER_NAME@_drv_la_LDFLAGS = -module -avoid-version
+@DRIVER_NAME@_drv_ladir = @inputdir@
+
+AM_CPPFLAGS = -I$(top_srcdir)/include
+AM_CFLAGS = $(XORG_CFLAGS)
+
+@DRIVER_NAME@_drv_la_SOURCES = @DRIVER_NAME@.c synapticsstr.h \
+ synproto.h \
+ properties.c
+
+if BUILD_PS2COMM
+@DRIVER_NAME@_drv_la_SOURCES += \
+ alpscomm.c \
+ ps2comm.c ps2comm.h
+endif
+
+if BUILD_EVENTCOMM
+@DRIVER_NAME@_drv_la_SOURCES += \
+ eventcomm.c eventcomm.h
+endif
+
+if BUILD_PSMCOMM
+@DRIVER_NAME@_drv_la_SOURCES += \
+ psmcomm.c
+endif
diff --git a/test/.gitignore b/test/.gitignore
new file mode 100644
index 0000000..a59f751
--- /dev/null
+++ b/test/.gitignore
@@ -0,0 +1,6 @@
+# Add & Override patterns for xf86-input-synaptics
+#
+# Edit the following section as needed
+# For example, !report.pc overrides *.pc. See 'man gitignore'
+
+eventcomm-test
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 0000000..5dd8cdb
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,15 @@
+if ENABLE_UNIT_TESTS
+AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include
+AM_CFLAGS = $(XORG_CFLAGS) $(CWARNFLAGS)
+fake_syms = fake-symbols.c fake-symbols.h
+
+if BUILD_EVENTCOMM
+noinst_PROGRAMS = eventcomm-test
+
+eventcomm_test_SOURCES = eventcomm-test.c\
+ $(top_srcdir)/src/eventcomm.c \
+ $(fake_syms)
+endif
+
+TESTS = $(noinst_PROGRAMS)
+endif
diff --git a/tools/.gitignore b/tools/.gitignore
new file mode 100644
index 0000000..f3b80fc
--- /dev/null
+++ b/tools/.gitignore
@@ -0,0 +1,3 @@
+# Add & Override for this directory and it's subdirectories
+synclient
+syndaemon
diff --git a/tools/Makefile.am b/tools/Makefile.am
new file mode 100644
index 0000000..c74a5e3
--- /dev/null
+++ b/tools/Makefile.am
@@ -0,0 +1,31 @@
+# Copyright 2008 Red Hat, Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# on the rights to use, copy, modify, merge, publish, distribute, sub
+# license, and/or sell copies of the Software, and to permit persons to whom
+# the Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+bin_PROGRAMS = synclient syndaemon
+
+AM_CPPFLAGS = -I$(top_srcdir)/include $(XORG_CFLAGS)
+
+synclient_SOURCES = synclient.c
+synclient_CFLAGS = $(XI_CFLAGS)
+synclient_LDADD = $(XI_LIBS)
+
+syndaemon_SOURCES = syndaemon.c
+syndaemon_CFLAGS = $(XI_CFLAGS) $(XTST_CFLAGS)
+syndaemon_LDADD = $(XI_LIBS) $(XTST_LIBS)