Commit 395ae012511efe122cbebc491d21c997e3cf4854

Authored by Perry Werneck
1 parent 269d476d

Adding support for delayed load of the library on windows.

Makefile.in
... ... @@ -184,12 +184,23 @@ $(POTDIR)/$(LIBNAME)/%.pot: \
184 184  
185 185 all: \
186 186 $(BINRLS)/$(SONAME) \
187   - $(BINRLS)/static/$(LIBNAME).a \
  187 + $(BINRLS)/$(LIBNAME).a \
188 188 $(POTDIR)/lib3270.pot
189 189  
190 190 Release: \
191 191 $(BINRLS)/$(SONAME) \
192   - $(BINRLS)/static/$(LIBNAME).a
  192 + $(BINRLS)/$(LIBNAME).a
  193 +
  194 +$(BINRLS)/$(LIBNAME).delayed.dll.a: \
  195 + $(BINRLS)/$(SONAME)
  196 +
  197 + @$(MKDIR) $(dir $@)
  198 + @echo $< ...
  199 +
  200 + @@DLLTOOL@ \
  201 + -d $(BINRLS)/$(LIBNAME).def \
  202 + --output-delaylib $@
  203 +
193 204  
194 205 $(BINRLS)/$(SONAME): \
195 206 $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
... ... @@ -204,7 +215,7 @@ $(BINRLS)/$(SONAME): \
204 215 -L$(BINRLS) \
205 216 $(LIBS)
206 217  
207   -$(BINRLS)/static/$(LIBNAME).a: \
  218 +$(BINRLS)/$(LIBNAME).a: \
208 219 $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
209 220  
210 221 @echo $@ ...
... ... @@ -240,18 +251,33 @@ install-shared: \
240 251 @mkdir -p $(DESTDIR)$(datarootdir)/pw3270
241 252  
242 253 install-static: \
243   - $(BINRLS)/static/$(LIBNAME).a
  254 + $(BINRLS)/$(LIBNAME).a
244 255  
245 256 # Install static library
  257 + @$(MKDIR) $(DESTDIR)$(libdir)
246 258 @$(INSTALL_DATA) \
247   - $(BINRLS)/static/$(LIBNAME).a \
248   - $(DESTDIR)$(libdir)/$(LIBNAME)-static.a
  259 + $(BINRLS)/$(LIBNAME).a \
  260 + $(DESTDIR)$(libdir)/$(LIBNAME).static.a
249 261  
250   - @mkdir -p $(DESTDIR)$(libdir)/pkgconfig
  262 + @$(MKDIR) $(DESTDIR)$(libdir)/pkgconfig
251 263 @$(INSTALL_DATA) \
252 264 sdk/lib3270-static.pc \
253 265 $(DESTDIR)$(libdir)/pkgconfig/lib3270-static.pc
254 266  
  267 +install-delayed: \
  268 + $(BINRLS)/$(LIBNAME).delayed.dll.a
  269 +
  270 + # Install static library
  271 + @$(MKDIR) $(DESTDIR)$(libdir)
  272 + @$(INSTALL_DATA) \
  273 + $(BINRLS)/$(LIBNAME).delayed.dll.a \
  274 + $(DESTDIR)$(libdir)
  275 +
  276 + @$(MKDIR) $(DESTDIR)$(libdir)/pkgconfig
  277 + @$(INSTALL_DATA) \
  278 + sdk/lib3270-delayed.pc \
  279 + $(DESTDIR)$(libdir)/pkgconfig/lib3270-delayed.pc
  280 +
255 281 install-dev: \
256 282 $(POTDIR)/lib3270.pot
257 283  
... ... @@ -359,7 +385,6 @@ else
359 385 $(BINDBG)/$(LIBNAME)@EXEEXT@
360 386 endif
361 387  
362   -
363 388 $(BINDBG)/$(SONAME): \
364 389 $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
365 390  
... ...
configure.ac
... ... @@ -54,6 +54,7 @@ AC_PROG_CXX
54 54 AC_PROG_SED
55 55 AC_PROG_LN_S
56 56 AC_PATH_TOOL([AR], [ar], [ar])
  57 +AC_PATH_TOOL([DLLTOOL], [dlltool], [dlltool])
57 58  
58 59 AC_LANG([C])
59 60  
... ... @@ -94,6 +95,9 @@ case &quot;$host&quot; in
94 95  
95 96 app_cv_static='yes'
96 97  
  98 + AC_CONFIG_FILES(sdk/lib3270-delayed.pc)
  99 + INSTALL_PACKAGES="$INSTALL_PACKAGES delayed"
  100 +
97 101 ;;
98 102  
99 103 s390x-*)
... ...
sdk/lib3270-delayed.pc.in 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +prefix=@prefix@
  2 +exec_prefix=@exec_prefix@
  3 +libdir=@libdir@
  4 +includedir=@includedir@
  5 +
  6 +version_major=@PACKAGE_MAJOR_VERSION@
  7 +version_minor=@PACKAGE_MINOR_VERSION@
  8 +sdk_version=@LIB3270_SDK_VERSION@
  9 +library_name=@LIB3270_NAME@
  10 +
  11 +Name: @PACKAGE_NAME@
  12 +Description: @PACKAGE_DESCRIPTION@
  13 +Version: @PACKAGE_VERSION@
  14 +Libs: -L\@libdir@ -l@LIB3270_NAME@.delayed.dll
  15 +Libs.private: @LIBS@ @LIBSSL_LIBS@ @LIBICONV@ @INTL_LIBS@ @LDAP_LIBS@ @LIBCURL_LIBS@
  16 +Cflags: -I@includedir@
  17 +
... ...