You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxe/src/libieee1284-1-fixes.patch

266 lines
7.6 KiB

This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= <daniel-gl@gmx.net>
Date: Sun, 3 Jan 2016 05:48:59 +0100
Subject: [PATCH 1/5] make configure determine if basetsd.h is needed for
ssize_t
The result is hardcoded in ieee1284.h.
Duplicate logic in detect.h is replaced by including that file.
diff --git a/configure.in b/configure.in
index 1111111..2222222 100644
--- a/configure.in
+++ b/configure.in
@@ -72,7 +72,17 @@ if test $ac_cv_use_python = yes; then
AM_PATH_PYTHON
fi
+AC_CHECK_TYPE([ssize_t],,,[#include <sys/types.h>])
+if test $ac_cv_type_ssize_t != yes; then
+ AC_CHECK_TYPE([SSIZE_T],
+ AC_SUBST([SSIZE_T_IN_BASETSD_H], 1),
+ AC_MSG_ERROR([No definition of ssize_t found.]),
+ [#include <basetsd.h>])
+else
+ AC_SUBST([SSIZE_T_IN_BASETSD_H], 0)
+fi
+
dnl Checks for library functions.
-AC_CONFIG_FILES(Makefile libieee1284.spec)
+AC_CONFIG_FILES([Makefile libieee1284.spec include/ieee1284.h])
AC_OUTPUT
diff --git a/include/ieee1284.h b/include/ieee1284.h.in
similarity index 99%
rename from include/ieee1284.h
rename to include/ieee1284.h.in
index 1111111..2222222 100644
--- a/include/ieee1284.h
+++ b/include/ieee1284.h.in
@@ -27,7 +27,7 @@
#include <winsock2.h> /* for struct timeval */
#endif
-#if (defined __MINGW32__ || defined _MSC_VER) && !defined OWN_SSIZE_T
+#if @SSIZE_T_IN_BASETSD_H@ && !defined OWN_SSIZE_T
#include <basetsd.h> /* for SSIZE_T */
#define OWN_SSIZE_T
typedef SSIZE_T ssize_t;
diff --git a/src/detect.h b/src/detect.h
index 1111111..2222222 100644
--- a/src/detect.h
+++ b/src/detect.h
@@ -24,18 +24,7 @@
#ifndef _DETECT_H_
#define _DETECT_H_
-#include <stdlib.h>
-#ifndef _MSC_VER
-#include <sys/time.h>
-#else
-#include <winsock2.h>
-#endif
-
-#if (defined __MINGW32__ || defined _MSC_VER) && !defined OWN_SSIZE_T
-#include <basetsd.h> /* for SSIZE_T */
-#define OWN_SSIZE_T
-typedef SSIZE_T ssize_t;
-#endif
+#include "ieee1284.h"
struct parport;
struct parport_internal;
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= <daniel-gl@gmx.net>
Date: Sun, 20 Sep 2015 19:14:18 +0200
Subject: [PATCH 2/5] persuade libtool build a DLL on windows
diff --git a/Makefile.am b/Makefile.am
index 1111111..2222222 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -8,7 +8,7 @@ libieee1284_la_SOURCES = src/detect.c src/detect.h src/ports.c src/deviceid.c \
src/par_nt.h src/io.h src/conf.h src/conf.c libieee1284.sym
# When rolling a release, remember to adjust the version info.
# It's current:release:age.
-libieee1284_la_LDFLAGS = -version-info 5:2:2 \
+libieee1284_la_LDFLAGS = -version-info 5:2:2 -no-undefined \
-export-symbols $(top_srcdir)/libieee1284.sym
include_HEADERS = include/ieee1284.h
INCLUDES = -I$(top_srcdir)/include
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= <daniel-gl@gmx.net>
Date: Sun, 20 Sep 2015 19:15:15 +0200
Subject: [PATCH 3/5] search for windows.h
instead of relying on the __CYGWIN__ macro
diff --git a/configure.in b/configure.in
index 1111111..2222222 100644
--- a/configure.in
+++ b/configure.in
@@ -37,21 +37,16 @@ case "{$host}" in
AC_DEFINE(HAVE_SOLARIS,1,enable solaris iop access)
solaris_io=true
;;
-*-*-cygwin*)
- dnl Strip version number from uname and make sure we're on NT not 9x
- case `uname -s | sed 's/-.*$//'` in
- CYGWIN_NT*)
- AC_CHECK_HEADER(w32api/windows.h, [
- AC_DEFINE(HAVE_CYGWIN_NT,1,enable w32api access)
- ], AC_MSG_ERROR(You need the cygwin w32api files on NT))
- ;;
- *)
- AC_DEFINE(HAVE_CYGWIN_9X,1,enable win95 access)
- ;;
- esac
-;;
-*-*-mingw*)
-dnl AC_DEFINE(HAVE_CYGWIN_9X,1,enable win95 access)
+*-*-cygwin* | *-*-mingw*)
+ windows_h_found=false
+ AC_CHECK_HEADERS([windows.h] [w32api/windows.h], [
+ windows_h_found=true
+ break
+ ])
+ AS_VAR_IF(windows_h_found, [false], [
+ AC_MSG_ERROR(windows.h not found)
+ ])
+ AC_DEFINE(HAVE_CYGWIN_9X,1,enable win95 access)
AC_DEFINE(HAVE_CYGWIN_NT,1,enable w32api access)
;;
*)
diff --git a/src/access_lpt.c b/src/access_lpt.c
index 1111111..2222222 100644
--- a/src/access_lpt.c
+++ b/src/access_lpt.c
@@ -51,7 +51,7 @@
#ifdef HAVE_CYGWIN_NT
-#ifdef __CYGWIN__
+#ifdef HAVE_W32API_WINDOWS_H
#include <w32api/windows.h>
#else
#include <windows.h>
diff --git a/src/detect.c b/src/detect.c
index 1111111..2222222 100644
--- a/src/detect.c
+++ b/src/detect.c
@@ -50,7 +50,7 @@
#include <sys/ddi.h>
#include <sys/sunddi.h>
#elif defined(HAVE_CYGWIN_NT)
-#ifdef __CYGWIN__
+#ifdef HAVE_W32API_WINDOWS_H
#include <w32api/windows.h>
#else
#include <windows.h>
diff --git a/src/ports.c b/src/ports.c
index 1111111..2222222 100644
--- a/src/ports.c
+++ b/src/ports.c
@@ -36,7 +36,7 @@
#include "detect.h"
#ifdef HAVE_CYGWIN_NT
-#ifdef __CYGWIN__
+#ifdef HAVE_W32API_WINDOWS_H
#include <w32api/windows.h>
#else /* Not cygwin really */
/* Don't include windows.h if it isn't necessary. That's why this is here and
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= <daniel-gl@gmx.net>
Date: Sat, 19 Sep 2015 01:39:15 +0200
Subject: [PATCH 4/5] check Windows version before allowing IO access
diff --git a/src/detect.c b/src/detect.c
index 1111111..2222222 100644
--- a/src/detect.c
+++ b/src/detect.c
@@ -49,7 +49,7 @@
#elif defined(HAVE_SOLARIS)
#include <sys/ddi.h>
#include <sys/sunddi.h>
-#elif defined(HAVE_CYGWIN_NT)
+#elif defined(HAVE_CYGWIN_NT) || defined(HAVE_CYGWIN_9X)
#ifdef HAVE_W32API_WINDOWS_H
#include <w32api/windows.h>
#else
@@ -191,10 +191,12 @@ check_io (void)
}
debugprintf ("We can't use IOP, nothing will work\n");
#elif defined(HAVE_CYGWIN_9X)
- /* note: 95 allows apps direct IO access */
- debugprintf ("Taking a guess on port availability (win9x)\n");
- capabilities |= IO_CAPABLE;
- return 1;
+ /* note: Win32s/95/98/ME allows apps direct IO access */
+ if (GetVersion() & (1 << 31)) {
+ debugprintf ("Taking a guess on port availability (win9x)\n");
+ capabilities |= IO_CAPABLE;
+ return 1;
+ }
#endif
return 0;
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Gl=C3=B6ckner?= <daniel-gl@gmx.net>
Date: Mon, 4 Jan 2016 00:49:41 +0100
Subject: [PATCH 5/5] add pkg-config metadata file
diff --git a/Makefile.am b/Makefile.am
index 1111111..2222222 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -30,6 +30,9 @@ bin_PROGRAMS = libieee1284_test
libieee1284_test_SOURCES = tests/test.c
libieee1284_test_LDADD = libieee1284.la
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libieee1284.pc
+
# Python bindings
src_ieee1284module_la_SOURCES = src/ieee1284module.c
if PYTHON
diff --git a/configure.in b/configure.in
index 1111111..2222222 100644
--- a/configure.in
+++ b/configure.in
@@ -79,5 +79,5 @@ fi
dnl Checks for library functions.
-AC_CONFIG_FILES([Makefile libieee1284.spec include/ieee1284.h])
+AC_CONFIG_FILES([Makefile libieee1284.spec libieee1284.pc include/ieee1284.h])
AC_OUTPUT
diff --git a/libieee1284.pc.in b/libieee1284.pc.in
new file mode 100644
index 1111111..2222222
--- /dev/null
+++ b/libieee1284.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: @PACKAGE@
+Version: @VERSION@
+Description: IEEE1284 parallel port library
+URL: http://cyberelk.net/tim/software/libieee1284/
+Libs: -L${libdir} -lieee1284
+Cflags: -I${includedir}