From 395ae012511efe122cbebc491d21c997e3cf4854 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 9 Aug 2019 09:26:16 -0300 Subject: [PATCH] Adding support for delayed load of the library on windows. --- Makefile.in | 41 +++++++++++++++++++++++++++++++++-------- configure.ac | 4 ++++ sdk/lib3270-delayed.pc.in | 17 +++++++++++++++++ 3 files changed, 54 insertions(+), 8 deletions(-) create mode 100644 sdk/lib3270-delayed.pc.in diff --git a/Makefile.in b/Makefile.in index 3f7596f..74b71b3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -184,12 +184,23 @@ $(POTDIR)/$(LIBNAME)/%.pot: \ all: \ $(BINRLS)/$(SONAME) \ - $(BINRLS)/static/$(LIBNAME).a \ + $(BINRLS)/$(LIBNAME).a \ $(POTDIR)/lib3270.pot Release: \ $(BINRLS)/$(SONAME) \ - $(BINRLS)/static/$(LIBNAME).a + $(BINRLS)/$(LIBNAME).a + +$(BINRLS)/$(LIBNAME).delayed.dll.a: \ + $(BINRLS)/$(SONAME) + + @$(MKDIR) $(dir $@) + @echo $< ... + + @@DLLTOOL@ \ + -d $(BINRLS)/$(LIBNAME).def \ + --output-delaylib $@ + $(BINRLS)/$(SONAME): \ $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) @@ -204,7 +215,7 @@ $(BINRLS)/$(SONAME): \ -L$(BINRLS) \ $(LIBS) -$(BINRLS)/static/$(LIBNAME).a: \ +$(BINRLS)/$(LIBNAME).a: \ $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) @echo $@ ... @@ -240,18 +251,33 @@ install-shared: \ @mkdir -p $(DESTDIR)$(datarootdir)/pw3270 install-static: \ - $(BINRLS)/static/$(LIBNAME).a + $(BINRLS)/$(LIBNAME).a # Install static library + @$(MKDIR) $(DESTDIR)$(libdir) @$(INSTALL_DATA) \ - $(BINRLS)/static/$(LIBNAME).a \ - $(DESTDIR)$(libdir)/$(LIBNAME)-static.a + $(BINRLS)/$(LIBNAME).a \ + $(DESTDIR)$(libdir)/$(LIBNAME).static.a - @mkdir -p $(DESTDIR)$(libdir)/pkgconfig + @$(MKDIR) $(DESTDIR)$(libdir)/pkgconfig @$(INSTALL_DATA) \ sdk/lib3270-static.pc \ $(DESTDIR)$(libdir)/pkgconfig/lib3270-static.pc +install-delayed: \ + $(BINRLS)/$(LIBNAME).delayed.dll.a + + # Install static library + @$(MKDIR) $(DESTDIR)$(libdir) + @$(INSTALL_DATA) \ + $(BINRLS)/$(LIBNAME).delayed.dll.a \ + $(DESTDIR)$(libdir) + + @$(MKDIR) $(DESTDIR)$(libdir)/pkgconfig + @$(INSTALL_DATA) \ + sdk/lib3270-delayed.pc \ + $(DESTDIR)$(libdir)/pkgconfig/lib3270-delayed.pc + install-dev: \ $(POTDIR)/lib3270.pot @@ -359,7 +385,6 @@ else $(BINDBG)/$(LIBNAME)@EXEEXT@ endif - $(BINDBG)/$(SONAME): \ $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) diff --git a/configure.ac b/configure.ac index 86e7e8e..54a339c 100644 --- a/configure.ac +++ b/configure.ac @@ -54,6 +54,7 @@ AC_PROG_CXX AC_PROG_SED AC_PROG_LN_S AC_PATH_TOOL([AR], [ar], [ar]) +AC_PATH_TOOL([DLLTOOL], [dlltool], [dlltool]) AC_LANG([C]) @@ -94,6 +95,9 @@ case "$host" in app_cv_static='yes' + AC_CONFIG_FILES(sdk/lib3270-delayed.pc) + INSTALL_PACKAGES="$INSTALL_PACKAGES delayed" + ;; s390x-*) diff --git a/sdk/lib3270-delayed.pc.in b/sdk/lib3270-delayed.pc.in new file mode 100644 index 0000000..bc8bb5c --- /dev/null +++ b/sdk/lib3270-delayed.pc.in @@ -0,0 +1,17 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +version_major=@PACKAGE_MAJOR_VERSION@ +version_minor=@PACKAGE_MINOR_VERSION@ +sdk_version=@LIB3270_SDK_VERSION@ +library_name=@LIB3270_NAME@ + +Name: @PACKAGE_NAME@ +Description: @PACKAGE_DESCRIPTION@ +Version: @PACKAGE_VERSION@ +Libs: -L\@libdir@ -l@LIB3270_NAME@.delayed.dll +Libs.private: @LIBS@ @LIBSSL_LIBS@ @LIBICONV@ @INTL_LIBS@ @LDAP_LIBS@ @LIBCURL_LIBS@ +Cflags: -I@includedir@ + -- libgit2 0.21.2