diff options
Diffstat (limited to 'vcpkg/ports/nettle/msvc-support.patch')
| -rw-r--r-- | vcpkg/ports/nettle/msvc-support.patch | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/vcpkg/ports/nettle/msvc-support.patch b/vcpkg/ports/nettle/msvc-support.patch new file mode 100644 index 0000000..4245a28 --- /dev/null +++ b/vcpkg/ports/nettle/msvc-support.patch @@ -0,0 +1,99 @@ +diff --git a/Makefile.in b/Makefile.in +index 3194735..669bdfe 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -29,8 +29,9 @@ include config.make + PRE_CPPFLAGS = -I. + EXTRA_CFLAGS = $(CCPIC) + +-LIBTARGETS = @IF_STATIC@ libnettle.a @IF_HOGWEED@ libhogweed.a ++LIBTARGETS = @IF_STATIC@ @LIBNETTLE_ARCHIVE@ @IF_HOGWEED@ @LIBHOGWEED_ARCHIVE@ + SHLIBTARGETS = @IF_SHARED@ $(LIBNETTLE_FORLINK) @IF_HOGWEED@ $(LIBHOGWEED_FORLINK) ++MSVC_TARGET = @MSVC_TARGET@ + + getopt_SOURCES = getopt.c getopt1.c + getopt_TARGETS = $(getopt_SOURCES:.c=.$(OBJEXT)) +@@ -288,13 +289,13 @@ nettle_OBJS = $(nettle_SOURCES:.c=.$(OBJEXT)) \ + hogweed_OBJS = $(hogweed_SOURCES:.c=.$(OBJEXT)) \ + $(OPT_HOGWEED_OBJS) @IF_MINI_GMP@ mini-gmp.$(OBJEXT) + +-libnettle.a: $(nettle_OBJS) ++@LIBNETTLE_ARCHIVE@: $(nettle_OBJS) + -rm -f $@ + $(AR) $(ARFLAGS) $@ $(nettle_OBJS) + $(RANLIB) $@ + echo nettle > libnettle.stamp + +-libhogweed.a: $(hogweed_OBJS) ++@LIBHOGWEED_ARCHIVE@: $(hogweed_OBJS) + -rm -f $@ + $(AR) $(ARFLAGS) $@ $(hogweed_OBJS) + $(RANLIB) $@ +@@ -500,8 +501,8 @@ install-static: $(LIBTARGETS) + done + + install-dll-nettle: +- $(MKDIR_P) $(DESTDIR)$(bindir) +- $(INSTALL_DATA) $(LIBNETTLE_FORLINK) $(DESTDIR)$(bindir)/$(LIBNETTLE_FORLINK) ++ $(MKDIR_P) $(DESTDIR)$(libdir)/../bin ++ $(INSTALL_DATA) $(LIBNETTLE_FORLINK) $(DESTDIR)$(libdir)/../bin/$(LIBNETTLE_FORLINK) + + install-shared-nettle: $(LIBNETTLE_FORLINK) @IF_DLL@ install-dll-nettle + $(MKDIR_P) $(DESTDIR)$(libdir) +@@ -513,8 +514,8 @@ install-shared-nettle: $(LIBNETTLE_FORLINK) @IF_DLL@ install-dll-nettle + && $(LN_S) $(LIBNETTLE_FILE) $(LIBNETTLE_FORLINK)) + + install-dll-hogweed: +- $(MKDIR_P) $(DESTDIR)$(bindir) +- $(INSTALL_DATA) $(LIBHOGWEED_FORLINK) $(DESTDIR)$(bindir)/$(LIBHOGWEED_FORLINK) ++ $(MKDIR_P) $(DESTDIR)$(libdir)/../bin ++ $(INSTALL_DATA) $(LIBHOGWEED_FORLINK) $(DESTDIR)$(libdir)/../bin/$(LIBHOGWEED_FORLINK) + + install-shared-hogweed: $(LIBHOGWEED_FORLINK) @IF_DLL@ install-dll-hogweed + $(MKDIR_P) $(DESTDIR)$(libdir) +diff --git a/configure.ac b/configure.ac +index 7a17853..c854679 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -907,6 +907,27 @@ case "$host_os" in + LIBHOGWEED_LIBS='libnettle.so $(LIBS)' + ;; + esac ++AC_ARG_VAR(MSVC_TARGET,[Enable msvc and set target architecture]) ++case "$MSVC_TARGET" in ++x86|x64|arm|arm64) ++ LIBNETTLE_ARCHIVE='nettle.lib' ++ LIBNETTLE_FORLINK='nettle-$(LIBNETTLE_MAJOR).dll' ++ LIBNETTLE_FILE='nettle.lib' ++ LIBNETTLE_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBNETTLE_FILE) -Wl,-DEF:$(srcdir)/nettle-$(MSVC_TARGET).def' ++ LIBNETTLE_LIBS='$(LIBS)' ++ LIBHOGWEED_FILE='hogweed.lib' ++ LIBHOGWEED_ARCHIVE='hogweed.lib' ++ LIBHOGWEED_FORLINK='hogweed-$(LIBHOGWEED_MAJOR).dll' ++ LIBHOGWEED_LINK='$(CC) $(CPPFLAGS) -Wl,$(LDFLAGS) -Wl,-DLL -Wl,-IMPLIB:$(LIBHOGWEED_FILE) -Wl,-DEF:$(srcdir)/hogweed-$(MSVC_TARGET).def' ++ LIBHOGWEED_LIBS='$(LIBNETTLE_FILE) $(LIBS)' ++ ;; ++*) ++ LIBNETTLE_ARCHIVE='libnettle.a' ++ LIBHOGWEED_ARCHIVE='libhogweed.a' ++ ;; ++esac ++AC_SUBST(LIBNETTLE_ARCHIVE) ++AC_SUBST(LIBHOGWEED_ARCHIVE) + + ASM_SYMBOL_PREFIX='' + ASM_ELF_STYLE='no' +diff --git a/getopt.c b/getopt.c +index 9d29de7..42df5a6 100644 +--- a/getopt.c ++++ b/getopt.c +@@ -32,7 +32,9 @@ + #include <stdio.h> + #include <stdlib.h> + #include <string.h> ++#ifndef _MSC_VER + #include <unistd.h> ++#endif + + + /* Comment out all this code if we are using the GNU C Library, and are not |