First take on changes to allow building with MSC for W32CE.
authorWerner Koch <wk@gnupg.org>
Tue, 2 Nov 2010 16:27:46 +0000 (16:27 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 2 Nov 2010 16:27:46 +0000 (16:27 +0000)
Fixed regression in plain W32 build.

36 files changed:
ChangeLog
autogen.sh
configure.ac
contrib/ChangeLog [new file with mode: 0644]
contrib/conf-w32ce-msc/build.mk [new file with mode: 0755]
contrib/conf-w32ce-msc/config.h [new file with mode: 0644]
src/ChangeLog
src/Makefile.am
src/ath-pthread.c
src/ath.c
src/ath.h
src/data-compat.c
src/data-fd.c
src/data-mem.c
src/data.c
src/debug.c
src/encrypt-sign.c
src/engine-assuan.c
src/engine-g13.c
src/engine-gpg.c
src/engine-gpgconf.c
src/engine-gpgsm.c
src/engine-uiserver.c
src/gpgme.c
src/posix-io.c
src/posix-sema.c
src/priv-io.h
src/ttyname_r.c
src/util.h
src/vfs-create.c
src/w32-ce.c
src/w32-ce.h
src/w32-glib-io.c
src/w32-io.c
src/w32-sema.c
src/w32-util.c

index 63ce5ab..13d4125 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-11-02  Werner Koch  <wk@g10code.com>
+
+       * configure.ac (AC_CHECK_HEADERS): Check for sys.time.h.
+
 2010-08-19  Werner Koch  <wk@g10code.com>
 
        * configure.ac (AH_BOTTOM): Define GPG_ERR_ENABLE_ERRNO_MACROS.
index da7865f..23d672a 100755 (executable)
@@ -127,7 +127,7 @@ if [ "$myhost" = "w32" ]; then
         fi
     fi
 
-    ./configure --enable-maintainer-mode  --prefix=${w32root}  \
+    $tsdir/configure --enable-maintainer-mode  --prefix=${w32root}  \
             --host=${host} --build=${build} \
             --with-gpg-error-prefix=${w32root} \
             --with-libassuan-prefix=${w32root} "$@"
index 8f4c77b..5850ace 100644 (file)
@@ -774,7 +774,7 @@ AC_CHECK_FUNCS(getgid getegid)
 # Replacement functions.
 AC_REPLACE_FUNCS(stpcpy)
 # Check for unistd.h for setenv replacement function.
-AC_CHECK_HEADERS(unistd.h)
+AC_CHECK_HEADERS([unistd.h sys/time.h])
 AC_REPLACE_FUNCS(setenv)
 
 # Assuan check for descriptor passing.
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
new file mode 100644 (file)
index 0000000..406d107
--- /dev/null
@@ -0,0 +1,5 @@
+2010-11-01  Werner Koch  <wk@g10code.com>
+
+       * conf-w32ce-msc/config.h: New.
+       * conf-w32ce-msc/build.mk: New.
+
diff --git a/contrib/conf-w32ce-msc/build.mk b/contrib/conf-w32ce-msc/build.mk
new file mode 100755 (executable)
index 0000000..4a77a99
--- /dev/null
@@ -0,0 +1,253 @@
+# build.mk - Makefile to build libgpg-error using Visual-C
+# Copyright 2010 g10 Code GmbH
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This file is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This is a helper make script to build libgpg-error for WindowsCE
+# using the Microsoft Visual C compiler.  
+
+targetdir = /home/smb/xppro-gnu/src/gpgme/src
+# The target build directory where we run the Visual C compiler/ This
+# needs to be an absolute directory name.  Further we expect this
+# structure of the tree:
+# 
+#   TARGET/src - Source directories:  One directory for each project
+#         /bin - Installed DLLs
+#         /lib - Installed import libs.
+#         /include - Instaled header files.
+
+targetdir = /home/smb/xppro-gnu
+targetsrc = $(targetdir)/src
+
+# Install directories (relative)
+bindir = ../../../bin
+libdir = ../../../lib
+incdir = ../../../include
+
+
+help:
+       @echo "Run "
+       @echo "  make -f ../contrib/conf-w32ce-msc/build.mk copy-source"
+       @echo "on the POSIX system and then"
+       @echo "  nmake -f build.mk all"
+       @echo "  nmake -f build.mk install"
+       @echo "on the Windows system"
+
+ce_defines = -DWINCE -D_WIN32_WCE=0x502 -DUNDER_CE \
+             -DWIN32_PLATFORM_PSPC -D_UNICODE -DUNICODE \
+             -D_CONSOLE -DARM -D_ARM_
+#-D_DEBUG -DDEBUG 
+
+CFLAGS = -nologo -W3 -fp:fast -Os $(ce_defines) \
+         -DHAVE_CONFIG_H -DDLL_EXPORT -D_CRT_SECURE_NO_WARNINGS \
+        -I. -I$(incdir) -I$(incdir)/gpg-extra
+
+LDFLAGS =
+
+# Standard source files
+sources = \
+       assuan-support.c    \
+       ath-pth.c           \
+       ath-pthread.c       \
+       ath.c               \
+       ath.h               \
+       context.h           \
+       conversion.c        \
+       data-compat.c       \
+       data-fd.c           \
+       data-mem.c          \
+       data-stream.c       \
+       data-user.c         \
+       data.c              \
+       data.h              \
+       debug.c             \
+       debug.h             \
+       decrypt-verify.c    \
+       decrypt.c           \
+       delete.c            \
+       dirinfo.c           \
+       edit.c              \
+       encrypt-sign.c      \
+       encrypt.c           \
+       engine-assuan.c     \
+       engine-backend.h    \
+       engine-g13.c        \
+       engine-gpg.c        \
+       engine-gpgconf.c    \
+       engine-gpgsm.c      \
+       engine-uiserver.c   \
+       engine.c            \
+       engine.h            \
+       error.c             \
+       export.c            \
+       funopen.c           \
+       genkey.c            \
+       get-env.c           \
+       getauditlog.c       \
+       gpgconf.c           \
+       gpgme-tool.c        \
+       gpgme-w32spawn.c    \
+       gpgme.c             \
+       import.c            \
+       isascii.c           \
+       kdpipeiodevice.h    \
+       key.c               \
+       keylist.c           \
+       memrchr.c           \
+       op-support.c        \
+       opassuan.c          \
+       ops.h               \
+       passphrase.c        \
+       passwd.c            \
+       priv-io.h           \
+       progress.c          \
+       putc_unlocked.c     \
+       sema.h              \
+       setenv.c            \
+       sig-notation.c      \
+       sign.c              \
+       signers.c           \
+       stpcpy.c            \
+       trust-item.c        \
+       trustlist.c         \
+       ttyname_r.c         \
+       util.h              \
+       vasprintf.c         \
+       verify.c            \
+       version.c           \
+       vfs-create.c        \
+       vfs-mount.c         \
+       w32-ce.c            \
+       w32-ce.h            \
+       w32-glib-io.c       \
+       w32-io.c            \
+       w32-sema.c          \
+       w32-util.c          \
+       wait-global.c       \
+       wait-private.c      \
+       wait-user.c         \
+       wait.c              \
+       wait.h              \
+       gpgme.def
+
+# The object files we need to create from sources.
+objs = \
+       conversion.obj     \
+       get-env.obj        \
+       data.obj           \
+       data-fd.obj        \
+       data-stream.obj    \
+       data-mem.obj       \
+       data-user.obj      \
+       data-compat.obj    \
+       signers.obj        \
+       sig-notation.obj   \
+       wait.obj           \
+       wait-global.obj    \
+       wait-private.obj   \
+       wait-user.obj      \
+       op-support.obj     \
+       encrypt.obj        \
+       encrypt-sign.obj   \
+       decrypt.obj        \
+       decrypt-verify.obj \
+       verify.obj         \
+       sign.obj           \
+       passphrase.obj     \
+       progress.obj       \
+       key.obj            \
+       keylist.obj        \
+       trust-item.obj     \
+       trustlist.obj      \
+       import.obj         \
+       export.obj         \
+       genkey.obj         \
+       delete.obj         \
+       edit.obj           \
+       getauditlog.obj    \
+       opassuan.obj       \
+       passwd.obj         \
+       engine.obj         \
+       engine-gpg.obj     \
+       engine-gpgsm.obj     \
+       assuan-support.obj   \
+       engine-assuan.obj    \
+       engine-gpgconf.obj   \
+       engine-g13.obj     \
+       vfs-mount.obj      \
+       vfs-create.obj     \
+       gpgconf.obj        \
+       w32-ce.obj         \
+       w32-util.obj       \
+       w32-sema.obj       \
+       w32-io.obj         \
+       dirinfo.obj        \
+       debug.obj          \
+       gpgme.obj          \
+       version.obj        \
+       error.obj          \
+       ath.obj            \
+       vasprintf.obj      \
+       ttyname_r.obj      \
+       stpcpy.obj         \
+       setenv.obj
+
+
+# Sources files in this directory inclduing this Makefile
+conf_sources = \
+       build.mk \
+       config.h
+
+# Source files built by running the standard build system.
+built_sources = \
+       gpgme.h         \
+       status-table.h
+
+
+copy-static-source:
+       @if [ ! -f ./gpgme.c ]; then \
+           echo "Please cd to the src/ directory first"; \
+          exit 1; \
+        fi
+       cp -t $(targetsrc)/gpgme/src $(sources);
+       cd ../contrib/conf-w32ce-msc ; \
+            cp -t $(targetsrc)/gpgme/src $(conf_sources)
+
+
+copy-built-source:
+       @if [ ! -f ./gpgme.h ]; then \
+           echo "Please build using ./autogen.sh --build-w32ce first"; \
+          exit 1; \
+        fi
+       cp -t $(targetsrc)/gpgme/src $(built_sources)
+
+copy-source: copy-static-source copy-built-source
+
+
+.c.obj:
+       $(CC) $(CFLAGS) -c $<
+
+all:  $(sources) $(conf_sources) $(built_sources) $(objs)
+       link    /DLL /IMPLIB:libgpgme-11-msc.lib \
+                /OUT:libgpgme-11-msc.dll \
+               /DEF:gpgme.def /NOLOGO /MANIFEST:NO \
+               /NODEFAULTLIB:"oldnames.lib" /DYNAMICBASE:NO \
+               $(objs) \
+               $(libdir)/libgpg-error-0-msc.lib \
+               $(libdir)/libassuan-0-msc.lib \
+               coredll.lib corelibc.lib ole32.lib oleaut32.lib uuid.lib \
+               commctrl.lib /subsystem:windowsce,5.02
+
+# Note that we don't need to create the install directories because
+# libgpg-error must have been build and installed prior to this
+# package.
+install: all
+       copy /y gpgme.h $(incdir:/=\)
+       copy /y libgpgme-11-msc.dll $(bindir:/=\)
+       copy /y libgpgme-11-msc.lib $(libdir:/=\)
diff --git a/contrib/conf-w32ce-msc/config.h b/contrib/conf-w32ce-msc/config.h
new file mode 100644 (file)
index 0000000..d8ab5d7
--- /dev/null
@@ -0,0 +1,314 @@
+/* config.h for building with Visual-C for WindowsCE. 
+ * Copyright 2010 g10 Code GmbH
+ * 
+ * This file is free software; as a special exception the author gives
+ * unlimited permission to copy and/or distribute it, with or without
+ * modifications, as long as this notice is preserved.
+ * 
+ * This file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/* This file was originally created by running 
+ *   ./autogen.sh --build-w32ce
+ * on svn revision 1495 (gpgme 1.3.1-svn1495) and then adjusted to work
+ * with Visual-C.
+ */
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "1.3.1-svn1495-msc1"
+
+/* Name of this package */
+#define PACKAGE "gpgme"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "bug-gpgme@gnupg.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "gpgme"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "gpgme " PACKAGE_VERSION
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "gpgme"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+
+
+/* Whether Assuan support is enabled */
+#define ENABLE_ASSUAN 1
+
+/* Whether G13 support is enabled */
+#define ENABLE_G13 1
+
+/* Whether GPGCONF support is enabled */
+#define ENABLE_GPGCONF 1
+
+/* Whether GPGSM support is enabled */
+#define ENABLE_GPGSM 1
+
+/* Defined if we are building with uiserver support. */
+/* #undef ENABLE_UISERVER */
+
+/* Path to the G13 binary. */
+#define G13_PATH "c:\\gnupg\\g13.exe"
+
+/* Path to the GPGCONF binary. */
+#define GPGCONF_PATH "c:\\gnupg\\gpgconf.exe"
+
+/* version of the libassuan library */
+#define GPGME_LIBASSUAN_VERSION "2.0.2-svn381"
+
+/* Path to the GPGSM binary. */
+#define GPGSM_PATH "c:\\gnupg\\gpgsm.exe"
+
+/* The default error source for GPGME. */
+#define GPG_ERR_SOURCE_DEFAULT GPG_ERR_SOURCE_GPGME
+
+/* Path to the GnuPG binary. */
+#define GPG_PATH "c:\\gnupg\\gpg.exe"
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Defined if we run on some of the PCDOS like systems (DOS, Windoze. OS/2)
+   with special properties like no file modes */
+#define HAVE_DOSISH_SYSTEM 1
+
+/* Define to 1 if the system has the type `error_t'. */
+/* #undef HAVE_ERROR_T */
+
+/* Define to 1 if you have the `fopencookie' function. */
+/* #undef HAVE_FOPENCOOKIE */
+
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+/* #undef HAVE_FSEEKO */
+
+/* Define to 1 if you have the `funopen' function. */
+/* #undef HAVE_FUNOPEN */
+
+/* Define to 1 if you have the `getegid' function. */
+/* #undef HAVE_GETEGID */
+
+/* Define to 1 if you have the `getenv_r' function. */
+/* #undef HAVE_GETENV_R */
+
+/* Define to 1 if you have the `getgid' function. */
+/* #undef HAVE_GETGID */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <locale.h> header file. */
+/* #undef HAVE_LOCALE_H */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define if we have Pth. */
+/* #undef HAVE_PTH */
+
+/* Define if we have pthread. */
+/* #undef HAVE_PTHREAD */
+
+/* Define to 1 if you have the `setenv' function. */
+/* #undef HAVE_SETENV */
+
+/* Define to 1 if you have the `setlocale' function. */
+/* #undef HAVE_SETLOCALE */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `stpcpy' function. */
+/* #undef HAVE_STPCPY */
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+/* #undef HAVE_SYS_SELECT_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+/* #undef HAVE_SYS_STAT_H */
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+/* #undef HAVE_SYS_TYPES_H */
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+/* #undef HAVE_SYS_UIO_H */
+
+/* Define if getenv() is thread-safe */
+/* #undef HAVE_THREAD_SAFE_GETENV */
+
+/* Define to 1 if you have the `timegm' function. */
+/* #undef HAVE_TIMEGM */
+
+/* Define if __thread is supported */
+/* #define HAVE_TLS 1 */
+
+/* Define to 1 if you have the `ttyname_r' function. */
+/* #undef HAVE_TTYNAME_R */
+
+/* Define to 1 if the system has the type `uintptr_t'. */
+#define HAVE_UINTPTR_T 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #define HAVE_UNISTD_H 1 */
+
+/* Define to 1 if you have the `vasprintf' function. */
+/* #undef HAVE_VASPRINTF */
+
+/* Defined if we run on a W32 CE API based system */
+#define HAVE_W32CE_SYSTEM 1
+
+/* Defined if we run on a W32 API based system */
+#define HAVE_W32_SYSTEM 1
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+   */
+#define LT_OBJDIR ".libs/"
+
+/* used to implement the va_copy macro */
+/* #undef MUST_COPY_VA_BYVAL */
+
+/* Min. needed G13 version. */
+#define NEED_G13_VERSION "2.1.0"
+
+/* Min. needed GPGCONF version. */
+#define NEED_GPGCONF_VERSION "2.0.4"
+
+/* Min. needed GPGSM version. */
+#define NEED_GPGSM_VERSION "1.9.6"
+
+/* Min. needed GnuPG version. */
+#define NEED_GPG_VERSION "1.4.0"
+
+
+/* Separators as used in $PATH.  */
+#ifdef HAVE_DOSISH_SYSTEM
+#define PATHSEP_C ';'
+#else
+#define PATHSEP_C ':'
+#endif
+
+
+/* The size of `unsigned int', as computed by sizeof. */
+#define SIZEOF_UNSIGNED_INT 4
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Defined if descriptor passing is enabled and supported */
+/* #undef USE_DESCRIPTOR_PASSING */
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Version of this package */
+#define VERSION PACKAGE_VERSION
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+/* #undef _LARGEFILE_SOURCE */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* To allow the use of GPGME in multithreaded programs we have to use
+  special features from the library.
+  IMPORTANT: gpgme is not yet fully reentrant and you should use it
+  only from one thread.  */
+#ifndef _REENTRANT
+# define _REENTRANT 1
+#endif
+
+/* Activate POSIX interface on MacOS X */
+/* #undef _XOPEN_SOURCE */
+
+/* Define to a type to use for `error_t' if it is not otherwise available. */
+#define error_t int
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+#define inline __inline
+#endif
+
+/* Define to `long int' if <sys/types.h> does not define. */
+/* #undef off_t */
+
+/* Define to the type of an unsigned integer type wide enough to hold a
+   pointer, if such a type exists, and if the system does not define it. */
+/* #undef uintptr_t */
+
+
+/* Definition of GCC specific attributes.  */
+#if __GNUC__ > 2 
+# define GPGME_GCC_A_PURE  __attribute__ ((__pure__))
+#else
+# define GPGME_GCC_A_PURE
+#endif
+
+/* Under WindowsCE we need gpg-error's strerror macro.  */
+#define GPG_ERR_ENABLE_ERRNO_MACROS 1
+
+/* snprintf is not part of oldnames.lib thus we redefine it here. */
+#define snprintf _snprintf
+
+/* We don't want warnings like this:
+
+   warning C4996: e.g. "The POSIX name for this item is
+   deprecated. Instead, use the ISO C++ conformant name: _fileno"
+
+   warning C4018: '<' : signed/unsigned mismatch
+
+   warning C4244: '=' : conversion from 'time_t' to
+                        'unsigned long', possible loss of data
+
+ */
+#pragma warning(disable:4996 4018 4244)
+
+
+
index a868d6d..7c6d429 100644 (file)
@@ -1,4 +1,29 @@
-2010-10-28  Marcus Brinkmann  <marcus.brinkmann@ruhr-uni-bochum.de>
+2010-11-02  Werner Koch  <wk@g10code.com>
+
+       * w32-io.c (handle_to_fd, fd_tohandle): Add.  We need them for W32.
+       * w32-util.c (_WIN32_IE): Define to 0x0400.
+
+       * util.h [W32]: Include windows.h.
+       * w32-sema.c: Do not include windows.h directly.
+       * ath.c (ssize_t, pid_t)[_MSC_VER]: Add new types.
+       * gpgme.c (gpgme_result_ref, gpgme_result_unref): Do not use a
+       void pointer in pointer arithmetic.
+       * w32-util.c: Include util.h prior to ath.h.  Don't include
+       windows.h directly.
+       (F_OK): Define if not defined.
+       * w32-ce.c: Include string.h.
+       (RegQueryValueExA): Use WINAPI modifier to match the declaration.
+       * vfs-create.c: Include string.h because under W32CE with MSC we
+       get a warning related to our strerror replacement.
+       * encrypt-sign.c: Include stdlib.h, string.h and errno.h.
+       * priv-io.h [W32CE]: Include w32-ce.h
+       * w32-ce.h: Include winsock2.h and ws2tcpip.h.
+       (_MSV_VER): Remove useless macro.
+       (pid_t): Add typedef.
+
+       Guard all includes of unistd.h and sys/time.h.
+
+2010-10-28  Marcus Brinkmann  <marcus@g10code.com>
 
        * opassuan.c (gpgme_op_assuan_transact_ext): Fix uninitialized
        value use.  Reported by Marc Mutz.
index e557c7b..ecda904 100644 (file)
@@ -203,7 +203,8 @@ libgpgme_la_LDFLAGS = $(no_undefined) $(export_symbols) \
        $(libgpgme_version_script_cmd) -version-info \
        @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@
 libgpgme_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps)
-libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ @GPG_ERROR_LIBS@
+libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \
+                    @GPG_ERROR_LIBS@
 
 libgpgme_pthread_la_LDFLAGS = $(no_undefined) $(export_symbols) \
        $(libgpgme_version_script_cmd) -version-info \
index d642299..9684afb 100644 (file)
 
 #include <stdlib.h>
 #include <errno.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #ifdef HAVE_SYS_SELECT_H
 # include <sys/select.h>
 #else
-# include <sys/time.h>
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# endif
 #endif
 #include <sys/types.h>
 #include <sys/wait.h>
index 803dedb..a303ffc 100644 (file)
--- a/src/ath.c
+++ b/src/ath.c
 #endif
 
 #include <assert.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #ifdef HAVE_SYS_SELECT_H
 # include <sys/select.h>
 #else
-# include <sys/time.h>
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# endif
 #endif
 #include <sys/types.h>
 #ifndef HAVE_W32_SYSTEM
 #include <sys/wait.h>
 #endif
 
+#ifdef _MSC_VER
+  typedef long ssize_t;
+  typedef int  pid_t;
+#endif
+
 #include "ath.h"
 
 
index 26d0cb2..8a7a507 100644 (file)
--- a/src/ath.h
+++ b/src/ath.h
@@ -36,7 +36,9 @@
 # ifdef HAVE_SYS_SELECT_H
 #  include <sys/select.h>
 # else
-#  include <sys/time.h>
+#  ifdef HAVE_SYS_TIME_H
+#   include <sys/time.h>
+#  endif
 # endif
 # include <sys/types.h>
 # include <sys/socket.h>
index 76d6cd0..0843ffd 100644 (file)
@@ -23,7 +23,9 @@
 #endif
 
 #include <errno.h>
-#include <sys/time.h>
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/stat.h>
 #include <stdlib.h>
 
index 47a0d99..1ada70f 100644 (file)
@@ -22,7 +22,9 @@
 #include <config.h>
 #endif
 
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <sys/types.h>
 
 #include "debug.h"
index 7be72bf..eda695a 100644 (file)
@@ -24,7 +24,9 @@
 
 #include <errno.h>
 #include <stdlib.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <assert.h>
 #include <string.h>
 
index be64ef0..0a62910 100644 (file)
@@ -23,7 +23,9 @@
 #endif
 
 #include <stdlib.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <errno.h>
 #include <string.h>
 
index 6faf4aa..754c8e1 100644 (file)
@@ -26,7 +26,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <stdarg.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <ctype.h>
 #include <errno.h>
 #include <time.h>
index 02af179..3b862be 100644 (file)
@@ -22,6 +22,9 @@
 #if HAVE_CONFIG_H
 #include <config.h>
 #endif
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
 
 #include "gpgme.h"
 #include "debug.h"
index 73ece80..e521d6d 100644 (file)
@@ -32,7 +32,9 @@
 #include <string.h>
 #include <sys/types.h>
 #include <assert.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
index 8b2af4d..f3119b5 100644 (file)
@@ -27,7 +27,9 @@
 #include <string.h>
 #include <sys/types.h>
 #include <assert.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
index da66d4d..f163f0f 100644 (file)
@@ -27,7 +27,9 @@
 #include <string.h>
 #include <assert.h>
 #include <errno.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
index d3c47a7..cf4df56 100644 (file)
@@ -26,7 +26,9 @@
 #include <string.h>
 #include <sys/types.h>
 #include <assert.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <fcntl.h> /* FIXME */
 #include <errno.h>
 
index 64be281..8a9cd89 100644 (file)
@@ -28,7 +28,9 @@
 #include <string.h>
 #include <sys/types.h>
 #include <assert.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #ifdef HAVE_LOCALE_H
 #include <locale.h>
 #endif
index 9e910b6..fec7d7d 100644 (file)
@@ -31,7 +31,9 @@
 #include <string.h>
 #include <sys/types.h>
 #include <assert.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <locale.h>
 #include <fcntl.h> /* FIXME */
 #include <errno.h>
index b6a518f..7feb3be 100644 (file)
@@ -211,7 +211,7 @@ gpgme_result_ref (void *result)
   if (! result)
     return;
 
-  data = result - sizeof (struct ctx_op_data);
+  data = (void*)((char*)result - sizeof (struct ctx_op_data));
 
   assert (data->magic == CTX_OP_DATA_MAGIC);
 
@@ -229,7 +229,7 @@ gpgme_result_unref (void *result)
   if (! result)
     return;
 
-  data = result - sizeof (struct ctx_op_data);
+  data = (void*)((char*)result - sizeof (struct ctx_op_data));
 
   assert (data->magic == CTX_OP_DATA_MAGIC);
 
index 5c3def0..762051e 100644 (file)
 #include <errno.h>
 #include <signal.h>
 #include <fcntl.h>
-#include <unistd.h>
-#include <sys/time.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/types.h>
 #include <sys/wait.h>
 #ifdef HAVE_SYS_UIO_H
@@ -37,7 +41,6 @@
 #endif
 #include <ctype.h>
 #include <sys/resource.h>
-#include <unistd.h>
 
 #include "util.h"
 #include "priv-io.h"
index 4ec3abb..7ab08df 100644 (file)
 #include <errno.h>
 #include <signal.h>
 #include <fcntl.h>
-#include <unistd.h>
-#include <sys/time.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/types.h>
 
 #include "util.h"
index 89c750d..2c9d1e7 100644 (file)
@@ -23,6 +23,9 @@
 #define IO_H
 
 #ifdef HAVE_W32_SYSTEM
+# ifdef HAVE_W32CE_SYSTEM
+#  include "w32-ce.h"
+# endif
 # include <windows.h>
 #else
 # include <sys/socket.h>
index 4487658..810c217 100644 (file)
 #include <stdlib.h>
 #include <errno.h>
 #include <string.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 
 \f
-#warning ttyname is not thread-safe, and ttyname_r is missing
+#ifdef __GNUC__
+# warning ttyname is not thread-safe, and ttyname_r is missing
+#endif
 
 int
 ttyname_r (int fd, char *buf, size_t buflen)
index f7e6d27..b7dfbbd 100644 (file)
 #ifndef UTIL_H
 #define UTIL_H
 
-#ifdef HAVE_W32CE_SYSTEM
-#include "w32-ce.h"
+#ifdef HAVE_W32_SYSTEM
+# ifdef HAVE_W32CE_SYSTEM
+#  include "w32-ce.h"
+# else
+#  include "windows.h"
+# endif
 #endif
 
 /* For pid_t.  */
index 142549a..d7fd24f 100644 (file)
@@ -23,6 +23,7 @@
 #endif
 
 #include <stdlib.h>
+#include <string.h>
 
 #include "gpgme.h"
 #include "debug.h"
index 57590fa..076eaae 100644 (file)
@@ -22,6 +22,7 @@
 #include <config.h>
 #endif
 
+#include <string.h>
 #include <errno.h>
 #include <assert.h>
 
@@ -248,7 +249,7 @@ RegOpenKeyExA (HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions,
 }
 
 
-LONG
+LONG WINAPI
 RegQueryValueExA (HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved,
                   LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
 {
index 2b761d6..bcd5344 100644 (file)
 #include <time.h>
 #include <stdarg.h>
 
-/* For getaddrinfo.  */
-#define _MSV_VER 0x401
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
+
+#include <winsock2.h>
+#include <ws2tcpip.h> /* For getaddrinfo.  */
 #include <windows.h>
 
 
index ff21c3d..6b7cd15 100644 (file)
 #include <assert.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <unistd.h>
-#include <sys/time.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/types.h>
 #include <glib.h>
 #include <windows.h>
index 12d8437..d7abbf4 100644 (file)
 #include <assert.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <sys/time.h>
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/types.h>
-#include <windows.h>
 #include <io.h>
 
+#include "util.h"
+
 #ifdef HAVE_W32CE_SYSTEM
 #include <assuan.h>
 #include <winioctl.h>
@@ -42,7 +45,6 @@
   CTL_CODE (FILE_DEVICE_STREAMS, 2051, METHOD_BUFFERED, FILE_ANY_ACCESS)
 #endif
 
-#include "util.h"
 #include "sema.h"
 #include "priv-io.h"
 #include "debug.h"
@@ -123,6 +125,8 @@ release_fd (int fd)
 
 #define pid_to_handle(a) ((HANDLE)(a))
 #define handle_to_pid(a) ((int)(a))
+#define fd_to_handle(a)  ((HANDLE)(a))
+#define handle_to_fd(a)  ((int)(a))
 
 #define READBUF_SIZE 4096
 #define WRITEBUF_SIZE 4096
index 6a5137d..3396104 100644 (file)
 #include <assert.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <sys/time.h>
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/types.h>
-#include <windows.h>
 #include <io.h>
 
 #include "util.h"
index e4820c1..cbbc126 100644 (file)
 #include <assert.h>
 #include <errno.h>
 #include <stdint.h>
-#include <sys/time.h>
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include <fcntl.h>
-#include <windows.h>
-#include <shlobj.h>
 #include <io.h>
 
-#include "ath.h"
+#define _WIN32_IE 0x0400 /* Required for SHGetSpecialFolderPathA.  */
+
 #include "util.h"
+#include <shlobj.h>
+#include "ath.h"
 #include "sema.h"
 #include "debug.h"
 
@@ -47,6 +52,9 @@
 #ifndef HAVE_W32CE_SYSTEM
 #define HAVE_ALLOW_SET_FOREGROUND_WINDOW 1
 #endif
+#ifndef F_OK
+# define F_OK 0
+#endif
 
 
 DEFINE_STATIC_LOCK (get_path_lock);