2005-09-12 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / Makefile.am
index 90751e6..b8f27f9 100644 (file)
@@ -19,7 +19,8 @@
 
 ## Process this file with automake to produce Makefile.in
 
-EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers
+EXTRA_DIST = gpgme-config.in gpgme.m4 mkstatus libgpgme.vers \
+            versioninfo.rc.in gpgme.def
 BUILT_SOURCES = status-table.h
 MOSTLYCLEANFILES = status-table.h
 bin_SCRIPTS = gpgme-config
@@ -82,18 +83,7 @@ libgpgme_real_la_SOURCES =                                           \
        $(gpgsm_components) sema.h priv-io.h $(system_components)       \
        debug.c debug.h gpgme.c version.c error.c
 
-# libgpgme_la_SOURCES = ath.h ath.c
-if HAVE_PTH
-  ath_pth_src = ath-pth-compat.c
-else
-  ath_pth_src =
-endif
-if HAVE_PTHREAD
-  ath_pthread_src = ath-pthread-compat.c
-else
-  ath_pthread_src =
-endif
-libgpgme_la_SOURCES = ath.h ath-compat.c $(ath_pth_src) $(ath_pthread_src)
+libgpgme_la_SOURCES = ath.h ath.c
 libgpgme_pthread_la_SOURCES = ath.h ath-pthread.c
 libgpgme_pth_la_SOURCES = ath.h ath-pth.c
 
@@ -113,6 +103,7 @@ libgpgme_pthread_la_DEPENDENCIES = libgpgme-real.la $(assuan_libobjs) \
 libgpgme_pthread_la_LIBADD = libgpgme-real.la $(assuan_libobjs) @LTLIBOBJS@ \
        -lpthread @GPG_ERROR_LIBS@
 
+libgpgme_pth_la_CFLAGS = $(AM_CFLAGS) @PTH_CFLAGS@
 libgpgme_pth_la_CPPFLAGS = $(AM_CPPFLAGS) @PTH_CPPFLAGS@
 libgpgme_pth_la_LDFLAGS = @PTH_LDFLAGS@ \
        $(libgpgme_version_script_cmd) -version-info \
@@ -124,3 +115,34 @@ libgpgme_pth_la_LIBADD = libgpgme-real.la $(assuan_libobjs) @LTLIBOBJS@ \
 
 status-table.h : gpgme.h
        $(srcdir)/mkstatus < $(srcdir)/gpgme.h > status-table.h
+
+# Special code to build a DLL.  The current libtool (1.5.6) is not
+# able to do this properly; we better use gcc's built in magic.  
+if HAVE_W32_SYSTEM
+
+w32_o_files = ath.o conversion.o data-compat.o data-fd.o \
+              data-mem.o data-stream.o data-user.o data.o debug.o \
+              decrypt-verify.o decrypt.o delete.o edit.o encrypt-sign.o \
+              encrypt.o engine-gpgsm.o engine.o error.o export.o genkey.o \
+              get-env.o gpgme.o import.o key.o keylist.o memrchr.o \
+              op-support.o passphrase.o progress.o putc_unlocked.o \
+              rungpg.o sign.o signers.o trust-item.o trustlist.o \
+              ttyname_r.o vasprintf.o verify.o version.o \
+              w32-io.o w32-sema.o w32-util.o \
+              wait-global.o wait-private.o wait-user.o wait.o
+
+all-local: gpgme.dll gpgme.dll.a
+
+install-exec-hook:
+       cp gpgme.dll gpgme.dll.a $(DESTDIR)$(libdir)/
+       $(STRIP) $(DESTDIR)$(libdir)/gpgme.dll
+
+gpgme.dll gpgme.dll.a: gpgme.def $(w32_o_files) versioninfo.o
+       $(CC) -shared -o gpgme.dll gpgme.def $(w32_o_files) \
+          versioninfo.o @GPG_ERROR_LIBS@ -Wl,--out-implib,gpgme.dll.a
+
+
+.rc.o:
+       $(WINDRES) `test -f '$<' || echo '$(srcdir)/'`$< $@
+
+endif