From 64c443e3f0057946ddd8f37a36821a7f9c0e0493 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 5 Feb 2016 15:17:33 +0100 Subject: [PATCH] Add support for shared_rcflag, useful for windres (Cygwin and Mingw) Reviewed-by: Rich Salz --- Configurations/00-base-templates.conf | 1 + Configurations/10-main.conf | 2 ++ Configure | 1 + Makefile.in | 2 ++ Makefile.shared | 6 +++++- 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Configurations/00-base-templates.conf b/Configurations/00-base-templates.conf index 1771e3d386..9d405efdae 100644 --- a/Configurations/00-base-templates.conf +++ b/Configurations/00-base-templates.conf @@ -35,6 +35,7 @@ shared_target => "", shared_cflag => "", shared_ldflag => "", + shared_rcflag => "", shared_extension => "", build_scheme => "unixmake", build_file => "Makefile", diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index c408763f66..07e1d6a208 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1174,6 +1174,7 @@ shared_target => "cygwin-shared", shared_cflag => "-D_WINDLL -DOPENSSL_USE_APPLINK", shared_ldflag => "-static-libgcc", + shared_rcflag => "--target=pe-i386", shared_extension => ".dll", }, "mingw64" => { @@ -1199,6 +1200,7 @@ shared_target => "cygwin-shared", shared_cflag => "-D_WINDLL", shared_ldflag => "-static-libgcc", + shared_rcflag => "--target=pe-x86-64", shared_extension => ".dll", }, diff --git a/Configure b/Configure index 722d7c1faf..d3800cbf77 100755 --- a/Configure +++ b/Configure @@ -2180,6 +2180,7 @@ sub print_table_entry "shared_target", "shared_cflag", "shared_ldflag", + "shared_rcflag", "shared_extension", "obj_extension", "exe_extension", diff --git a/Makefile.in b/Makefile.in index a1c3252bc0..b788042663 100644 --- a/Makefile.in +++ b/Makefile.in @@ -205,6 +205,7 @@ SHARED_LDFLAG={- $target{shared_ldflag} # $prefix is not /usr. . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$| ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -} +SHARED_RCFLAG={- $target{shared_rcflag} -} GENERAL= Makefile BASENAME= openssl @@ -255,6 +256,7 @@ BUILDENV= LC_ALL=C PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)'\ LIBDIR='$(LIBDIR)' \ DEPFLAG='$(DEPFLAG)' \ SHARED_LDFLAG='$(SHARED_LDFLAG)' \ + SHARED_RCFLAG='$(SHARED_RCFLAG)' \ ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \ EXE_EXT='$(EXE_EXT)' SHARED_LIBS='$(SHARED_LIBS)' \ SHLIB_EXT='$(SHLIB_EXT)' SHLIB_TARGET='$(SHLIB_TARGET)' \ diff --git a/Makefile.shared b/Makefile.shared index a474f16916..29e180845a 100644 --- a/Makefile.shared +++ b/Makefile.shared @@ -14,6 +14,10 @@ CFLAGS=$(CFLAG) LDFLAGS=$(LDFLAG) SHARED_LDFLAGS=$(SHARED_LDFLAG) +# SHARED_RCFLAGS are flags used with windres, i.e. when build for Cygwin +# or Mingw. +SHARED_RCFLAGS=$(SHARED_RCFLAG) + NM=nm # LIBNAME contains just the name of the library, without prefix ("lib" @@ -305,7 +309,7 @@ link_a.cygwin: fi; \ dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \ $(PERL) util/mkrc.pl $$dll_name | \ - $(CROSS_COMPILE)windres -o rc.o; \ + $(CROSS_COMPILE)windres $(SHARED_RCFLAGS) -o rc.o; \ extras="$$extras rc.o"; \ ALLSYMSFLAGS='-Wl,--whole-archive'; \ NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \ -- GitLab