fixed compile for xorg 1.7.1
--- xf86-input-evtouch-0.8.8.orig/evtouch.c	2008-11-11 09:47:55.000000000 +0100
+++ xf86-input-evtouch-0.8.8/evtouch.c	2010-01-06 16:11:16.000000000 +0100
@@ -30,10 +30,10 @@
 
 #define _evdev_touch_C_
 
-#include <xf86Version.h>
-#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
-#define XFREE86_V4
-#endif
+//#include <xf86Version.h>
+//#if XF86_VERSION_CURRENT >= XF86_VERSION_NUMERIC(3,9,0,0,0)
+//#define XFREE86_V4
+//#endif
 
 /*****************************************************************************
  *        Standard Headers
@@ -88,6 +88,11 @@
 
 #include <linux/input.h>
 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 3
+#include <X11/Xatom.h>
+#include <xserver-properties.h>
+#endif
+
 /*****************************************************************************
  *        Local Headers
  ****************************************************************************/
@@ -132,14 +137,14 @@ InputDriverRec EVTOUCH = {
         0
 };
 
-#ifdef XFree86LOADER
+//#ifdef XFree86LOADER
 static XF86ModuleVersionInfo VersionRec =
 {
         "evtouch",
         "Kenan Esau",
         MODINFOSTRING1,
         MODINFOSTRING2,
-        XF86_VERSION_CURRENT,
+        XORG_VERSION_CURRENT,
         0, 8, 8,
         ABI_CLASS_XINPUT,
         ABI_XINPUT_VERSION,
@@ -167,9 +172,9 @@ Unplug(pointer p)
 }
 
 
-XF86ModuleData evtouchModuleData = {&VersionRec, Plug, Unplug };
+_X_EXPORT XF86ModuleData evtouchModuleData = {&VersionRec, Plug, Unplug };
 
-#endif /* XFree86LOADER */
+//#endif /* XFree86LOADER */
 
 
 static const char *default_options[] =
@@ -581,6 +586,32 @@ DeviceOff (DeviceIntPtr dev)
 }
 
 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+static void xf86WcmInitButtonLabels(Atom *labels, int nlabels)
+{
+    memset(labels, 0, nlabels * sizeof(Atom));
+    switch(nlabels)
+    {
+        default:
+        case 7:
+            labels[6] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_RIGHT);
+        case 6:
+            labels[5] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_HWHEEL_LEFT);
+        case 5:
+            labels[4] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_DOWN);
+        case 4:
+            labels[3] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_WHEEL_UP);
+        case 3:
+            labels[2] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_RIGHT);
+        case 2:
+            labels[1] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_MIDDLE);
+        case 1:
+            labels[0] = XIGetKnownProperty(BTN_LABEL_PROP_BTN_LEFT);
+            break;
+    }
+}
+#endif
+
 
 
 static Bool
@@ -591,12 +622,21 @@ DeviceInit (DeviceIntPtr dev)
         EVTouchPrivatePtr priv = (EVTouchPrivatePtr) (local->private);
         unsigned char map[EV_MAX_BUTTONS];
         int i;
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+	Atom *axis_labels, *btn_labels;
+#endif
 
         for (i = 0; i < EV_MAX_BUTTONS; i++)
                 map[i] = i;
 
         priv->btn_count = EV_MAX_BUTTONS;
 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+	axis_labels = xcalloc(2, sizeof(Atom));
+	btn_labels = xcalloc(EV_MAX_BUTTONS, sizeof(Atom));
+	xf86WcmInitButtonLabels(btn_labels, EV_MAX_BUTTONS);
+#endif
+
         /* 
          * these have to be here instead of in the SetupProc, because when the
          * SetupProc is run at server startup, screenInfo is not setup yet
@@ -629,8 +669,18 @@ DeviceInit (DeviceIntPtr dev)
         /* 
          * Device reports button press for 5 buttons.
          */
-        if (InitButtonClassDeviceStruct (dev, EV_MAX_BUTTONS, map) == FALSE)
+        if (InitButtonClassDeviceStruct (dev, EV_MAX_BUTTONS,
+
+	#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+					btn_labels,
+	#endif
+							map) == FALSE)
         {
+
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+		xfree(btn_labels);
+#endif
+
                 ErrorF("Unable to allocate EVTouch touchscreen ButtonClassDeviceStruct\n");
                 return BadAlloc;
         } 
@@ -653,7 +703,12 @@ DeviceInit (DeviceIntPtr dev)
          * Device reports motions on 2 axes in absolute coordinates.
          * Axes min and max values are reported in raw coordinates.
          */
-        if (InitValuatorClassDeviceStruct(dev, 2, xf86GetMotionEvents,
+        if (InitValuatorClassDeviceStruct(dev, 2, 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+					  axis_labels,
+#endif
+
+//					  xf86GetMotionEvents,
                                           local->history_size, Absolute) == FALSE)
         {
                 ErrorF ("Unable to allocate EVTouch touchscreen ValuatorClassDeviceStruct\n");
@@ -672,7 +727,24 @@ DeviceInit (DeviceIntPtr dev)
                                    EV_AXIS_MAX_RES /* max_res */ );
         xf86InitValuatorDefaults(dev, 1);
 #else
-	xf86InitValuatorAxisStruct(dev, 0, priv->min_x, priv->max_x,
+        xf86InitValuatorAxisStruct(dev, 0, 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+				XIGetKnownProperty(AXIS_LABEL_PROP_ABS_X),
+#endif
+				   0, priv->screen_width,
+                                   1024,
+                                   EV_AXIS_MIN_RES /* min_res */ ,
+                                   EV_AXIS_MAX_RES /* max_res */ );
+        xf86InitValuatorDefaults(dev, 0);
+
+        xf86InitValuatorAxisStruct(dev, 1, 
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
+				XIGetKnownProperty(AXIS_LABEL_PROP_ABS_Y),
+#endif
+				   0, priv->screen_width,
+                                   1024,
+                                   EV_AXIS_MIN_RES /* min_res */ ,
+                                   EV_AXIS_MAX_RES /* max_res */ );
         xf86InitValuatorDefaults(dev, 1);
 #endif
 
