build-sys: use autotools build system derived from xf86-input-evdev.
Instead of using a custom-tailored Makefile, this brings multitouch up to
speed with the input drivers from FreeDesktop.org and allows it to
cross-compile just fine.
diff --git a/.gitignore b/.gitignore
index 19bcc25..b7a7dce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,26 @@
+*.la
+*.lo
+*.o
+*~
+.deps
+.libs
+Makefile
+Makefile.in
+aclocal.m4
+autom4te.cache
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
debian/files
debian/xf86-input-multitouch*
-bin
-obj
+depcomp
+install-sh
+libtool
+ltmain.sh
+missing
patches
+stamp-h1
diff --git a/Makefile b/Makefile
deleted file mode 100644
index f9e5c0a..0000000
--- a/Makefile
+++ /dev/null
@@ -1,64 +0,0 @@
-VERSION = 1
-PATCHLEVEL = 0
-EXTRAVERSION = rc2
-
-LIBRARY = multitouch.so
-MODULES = src
-XMODULES = driver
-
-o_src = capabilities hwstate mtstate memory mtouch gestures
-
-o_driver= multitouch
-
-TARGETS += src/test
-
-OBJECTS = $(addsuffix .o,\
- $(foreach mod,$(MODULES),\
- $(addprefix $(mod)/,$(o_$(mod)))))
-XOBJECTS= $(addsuffix .o,\
- $(foreach mod,$(XMODULES),\
- $(addprefix $(mod)/,$(o_$(mod)))))
-
-TBIN = $(addprefix bin/,$(TARGETS))
-TLIB = $(addprefix obj/,$(LIBRARY))
-TOBJ = $(addprefix obj/,$(addsuffix .o,$(TARGETS)))
-OBJS = $(addprefix obj/,$(OBJECTS))
-XOBJS = $(addprefix obj/,$(XOBJECTS))
-LIBS = -lmtdev -lm
-LIBDIR = usr/lib
-
-DLIB = $(LIBDIR)/xorg/modules/input
-
-INCLUDE = -Iinclude -I/usr/include/xorg -I/usr/include/pixman-1
-OPTS = -O3 -fPIC
-
-.PHONY: all clean
-.PRECIOUS: obj/%.o
-
-all: $(OBJS) $(TLIB) $(TOBJ) $(TBIN)
-
-bin/%: obj/%.o $(OBJS)
- @mkdir -p $(@D)
- gcc $< -o $@ $(OBJS) $(LIBS)
-
-$(TLIB): $(OBJS) $(XOBJS)
- @rm -f $(TLIB)
- gcc -shared $(OBJS) $(XOBJS) $(LIBS) -Wl,-soname -Wl,$(LIBRARY) -o $@
-
-obj/%.o: %.c
- @mkdir -p $(@D)
- gcc $(INCLUDE) $(OPTS) -c $< -o $@
-
-obj/%.o: %.cc
- @mkdir -p $(@D)
- gcc $(INCLUDE) $(OPTS) -c $< -o $@
-
-clean:
- rm -rf bin obj
-
-distclean: clean
- rm -rf debian/*.log debian/files debian/xf86-input-multitouch*
-
-install: $(TLIB)
- install -d "$(DESTDIR)/$(DLIB)"
- install -m 755 $(TLIB) "$(DESTDIR)/$(DLIB)"
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..149be35
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,52 @@
+# Copyright 2005 Adam Jackson.
+# Copyright 2011 Diego Elio Pettenò <flameeyes@gmail.com>
+#
+# 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.
+
+
+AM_CFLAGS = $(XORG_CFLAGS) $(MTDEV_CFLAGS) $(CWARNFLAGS)
+AM_CPPFLAGS =-I$(top_srcdir)/include
+
+input_LTLIBRARIES = multitouch_drv.la
+multitouch_drv_la_LDFLAGS = -module -avoid-version -export-dynamic -shared
+
+multitouch_drv_la_SOURCES = \
+ driver/multitouch.c \
+ include/button.h \
+ include/capabilities.h \
+ include/common.h \
+ include/gestures.h \
+ include/hwstate.h \
+ include/memory.h \
+ include/mtouch.h \
+ include/mtstate.h \
+ src/capabilities.c \
+ src/gestures.c \
+ src/hwstate.c \
+ src/memory.c \
+ src/mtouch.c \
+ src/mtstate.c
+
+multitouch_drv_la_LIBADD = $(MTDEV_LIBS) -lm
+
+EXTRA_PROGRAMS = test
+
+test_SOURCES = \
+ include/xbypass.h \
+ src/test.c
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..5d1bdfb
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,75 @@
+dnl Copyright 2005 Adam Jackson.
+dnl Copyright 2011 Diego Elio Pettenò <flameeyes@gmail.com>
+dnl
+dnl Permission is hereby granted, free of charge, to any person obtaining a
+dnl copy of this software and associated documentation files (the "Software"),
+dnl to deal in the Software without restriction, including without limitation
+dnl on the rights to use, copy, modify, merge, publish, distribute, sub
+dnl license, and/or sell copies of the Software, and to permit persons to whom
+dnl the Software is furnished to do so, subject to the following conditions:
+dnl
+dnl The above copyright notice and this permission notice (including the next
+dnl paragraph) shall be included in all copies or substantial portions of the
+dnl Software.
+dnl
+dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+dnl FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
+dnl ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+dnl IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+dnl CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+dnl
+dnl Process this file with autoconf to produce a configure script
+
+dnl Initialize Autoconf
+AC_PREREQ([2.60])
+AC_INIT([xf86-input-multitouch],
+ [1.0.0-rc2],
+ [patches@bitmath.org],
+ [xf86-input-multitouch],
+ [http://bitmath.org/code/multitouch/])
+AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR(.)
+
+dnl Initialize Automake
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
+
+dnl Initialize libtool
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+
+dnl Initialize X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+ [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.8)
+XORG_DEFAULT_OPTIONS
+
+dnl Obtain compiler/linker options from server and required extensions
+PKG_CHECK_MODULES(XORG, xorg-server xproto inputproto)
+PKG_CHECK_MODULES(MTDEV, mtdev)
+
+dnl Define a configure option for an alternate input module directory
+AC_ARG_WITH(xorg-module-dir,
+ AC_HELP_STRING([--with-xorg-module-dir=DIR],
+ [Default xorg module directory @<:@default=$libdir/xorg/modules@:>@]),
+ [moduledir="$withval"],
+ [moduledir="$libdir/xorg/modules"])
+inputdir=${moduledir}/input
+AC_SUBST(inputdir)
+
+dnl X Server SDK location is required to install evdev header files
+dnl This location is also relayed in the xorg-evdev.pc file
+sdkdir=`$PKG_CONFIG --variable=sdkdir xorg-server`
+
+dnl Workaround overriding sdkdir to be able to create a tarball when user has no
+dnl write permission in sdkdir. See DISTCHECK_CONFIGURE_FLAGS in Makefile.am
+AC_ARG_WITH([sdkdir], [], [sdkdir="$withval"])
+AC_SUBST([sdkdir])
+
+DRIVER_NAME=multitouch
+AC_SUBST([DRIVER_NAME])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT