lib_LTLIBRARIES = libwim.la
-libwim_la_LDFLAGS = -version-info 4:0:2
+libwim_la_LDFLAGS = -version-info 4:0:2 $(CYGWIN_EXTRA_LDFLAGS)
libwim_la_SOURCES = \
src/add_image.c \
libwim_la_CFLAGS = \
$(AM_CFLAGS) \
- -fvisibility=hidden \
+ $(VISIBILITY_CFLAGS) \
$(LIBXML2_CFLAGS) \
$(LIBFUSE_CFLAGS) \
$(LIBNTFS_3G_CFLAGS) \
AC_SUBST([LIBCRYPTO_CFLAGS], [$LIBCRYPTO_CFLAGS])
AC_SUBST([SHA1_SOURCES], [$SHA1_SOURCES])
+case "$host" in
+ *-*-cygwin*)
+ dnl -no-undefined is needed to build a DLL in a Cygwin environment.
+ CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+
+ dnl -fvisibility=hidden should not be used in a Cygwin
+ dnl environment
+ VISIBILITY_CFLAGS=""
+ ;;
+ *)
+ CYGWIN_EXTRA_LDFLAGS=""
+ VISIBILITY_CFLAGS="-fvisibility=hidden"
+ ;;
+esac
+
+AC_SUBST([CYGWIN_EXTRA_LDFLAGS], [$CYGWIN_EXTRA_LDFLAGS])
+AC_SUBST([VISIBILITY_CFLAGS], [$VISIBILITY_CFLAGS])
+
AC_OUTPUT
#include "config.h"
#ifdef __GNUC__
-# define WIMLIBAPI __attribute__((visibility("default")))
+# if defined(__CYGWIN__) || defined(__WIN32__)
+# define WIMLIBAPI __declspec(dllexport)
+# else
+# define WIMLIBAPI __attribute__((visibility("default")))
+# endif
# define ALWAYS_INLINE inline __attribute__((always_inline))
# define PACKED __attribute__((packed))
# define FORMAT(type, format_str, args_start) \