From 2c8c09c799a79d236069db8d4c07f2616f425712 Mon Sep 17 00:00:00 2001 From: "Evgeny Grin (Karlson2k)" Date: Thu, 20 Feb 2014 13:17:05 +0000 Subject: add W32 dll information resources --- configure.ac | 13 ++++++++++-- src/microhttpd/Makefile.am | 22 +++++++++++++++++++++ src/microhttpd/microhttpd_dll_res.rc.in | 35 +++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 src/microhttpd/microhttpd_dll_res.rc.in diff --git a/configure.ac b/configure.ac index c6159d00..050ff222 100644 --- a/configure.ac +++ b/configure.ac @@ -21,6 +21,7 @@ # # AC_PREREQ(2.57) +LT_PREREQ([2.4.0]) AC_INIT([libmicrohttpd], [0.9.33],[libmicrohttpd@gnu.org]) AM_INIT_AUTOMAKE([silent-rules] [subdir-objects]) AC_CONFIG_HEADERS([MHD_config.h]) @@ -69,10 +70,18 @@ AC_PROG_LN_S AC_PROG_MAKE_SET AC_CANONICAL_HOST AM_PROG_CC_C_O -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL +LT_INIT([win32-dll]) +LT_LANG([Windows Resource]) AC_C_BIGENDIAN +PACKAGE_VERSION_MAJOR=${PACKAGE_VERSION%.*.*} +PACKAGE_VERSION_MINOR=${PACKAGE_VERSION%.*}; PACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINOR#*.} +PACKAGE_VERSION_SUBMINOR=${PACKAGE_VERSION#*.*.} +AC_SUBST([PACKAGE_VERSION_MAJOR]) +AC_SUBST([PACKAGE_VERSION_MINOR]) +AC_SUBST([PACKAGE_VERSION_SUBMINOR]) +AC_CONFIG_FILES([src/microhttpd/microhttpd_dll_res.rc]) + AC_CHECK_MEMBER([struct sockaddr_in.sin_len], [ AC_DEFINE(HAVE_SOCKADDR_IN_SIN_LEN, 1, [Do we have sockaddr_in.sin_len?]) ], diff --git a/src/microhttpd/Makefile.am b/src/microhttpd/Makefile.am index 489a3a22..f9dec065 100644 --- a/src/microhttpd/Makefile.am +++ b/src/microhttpd/Makefile.am @@ -73,6 +73,28 @@ libmicrohttpd_la_LDFLAGS = \ libmicrohttpd_la_LIBADD = \ $(MHD_W32_LIB) +if HAVE_W32 +MHD_DLL_RES_SRC = microhttpd_dll_res.rc +MHD_DLL_RES_LO = libmicrohttpd_la-$(MHD_DLL_RES_SRC:.rc=.lo) + +EXTRA_libmicrohttpd_la_DEPENDENCIES = $(MHD_DLL_RES_LO) +libmicrohttpd_la_LIBADD += $(MHD_DLL_RES_LO) + +# General rule is not required, but keep it just in case +.rc.lo: + $(LIBTOOL) $(AM_V_lt) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) $(RCFLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $< -o $@ + +# To add dll resource only to .dll file and exclude it form static +# lib, a little trick was used. Allow libtool to create file.lo, +# file.o and .libs/file.lo, .libs/file.o files, then overwrite file.o +# by empty object generated from empty c-file. Later libtool will +# use .libs/file.o for shared lib and empty file.o for static lib. +# This implementation is based on trick found in liblzma. +$(MHD_DLL_RES_LO): $(MHD_DLL_RES_SRC) + $(LIBTOOL) $(AM_V_lt) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) $(RCFLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmicrohttpd_la_CPPFLAGS) $(CPPFLAGS) $< -o $@ && \ + echo > $@-empty.c && $(CC) $(AM_CFLAGS) $(CFLAGS) -c $@-empty.c -o $(@:.lo=.o) && rm -f $@-tmp.c +endif + if USE_COVERAGE AM_CFLAGS += --coverage endif diff --git a/src/microhttpd/microhttpd_dll_res.rc.in b/src/microhttpd/microhttpd_dll_res.rc.in new file mode 100644 index 00000000..c9441f20 --- /dev/null +++ b/src/microhttpd/microhttpd_dll_res.rc.in @@ -0,0 +1,35 @@ +/* W32 resources for .dll */ + +#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +VS_VERSION_INFO VERSIONINFO + FILEVERSION @PACKAGE_VERSION_MAJOR@,@PACKAGE_VERSION_MINOR@,@PACKAGE_VERSION_SUBMINOR@,0 + PRODUCTVERSION @PACKAGE_VERSION_MAJOR@,@PACKAGE_VERSION_MINOR@,@PACKAGE_VERSION_SUBMINOR@,0 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS 0 + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "04090000" /* Lang = US English, Charset = ASCII */ + BEGIN + VALUE "ProductName", "GNU libmicrohttpd\0" + VALUE "ProductVersion", "@PACKAGE_VERSION@\0" + VALUE "FileVersion", "@PACKAGE_VERSION@\0" + VALUE "FileDescription", "GNU libmicrohttpd dll for Windows\0" + VALUE "InternalName", "libmicrohttpd\0" + VALUE "OriginalFilename", "libmicrohttpd.dll\0" + VALUE "CompanyName", "Free Software Foundation\0" + VALUE "LegalCopyright", "Copyright (C) 2007-2014 Christian Grothoff and project contributors\0" + VALUE "Comments", "http://www.gnu.org/software/libmicrohttpd/\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0 /* US English, ASCII */ + END +END + -- cgit v1.2.3