Commit 5e674a1fdee5cdd215bfb3f89f7b35b622dc8352
1 parent
38a6d1d8
Exists in
master
and in
1 other branch
Updating packages.
Showing
10 changed files
with
336 additions
and
74 deletions
Show diff stats
Makefile.in
| ... | ... | @@ -112,7 +112,7 @@ $(OBJDBG)/%.o: \ |
| 112 | 112 | |
| 113 | 113 | @$(CXX) \ |
| 114 | 114 | $(CFLAGS) \ |
| 115 | - -Wall -Wextra -fstack-check \ | |
| 115 | + -g -Wall -Wextra -fstack-check \ | |
| 116 | 116 | -DDEBUG=1 \ |
| 117 | 117 | -o $@ \ |
| 118 | 118 | -c $< |
| ... | ... | @@ -159,7 +159,7 @@ $(BINRLS)/$(SONAME): \ |
| 159 | 159 | @$(MKDIR) $(dir $@) |
| 160 | 160 | @echo $< ... |
| 161 | 161 | @$(LD) \ |
| 162 | - @DLL_LDFLAGS@ \ | |
| 162 | + -shared -Wl,-soname,$(@F) \ | |
| 163 | 163 | -o $@ \ |
| 164 | 164 | $(LDFLAGS) \ |
| 165 | 165 | $^ \ | ... | ... |
configure.ac
| ... | ... | @@ -57,18 +57,6 @@ AC_PROG_LN_S |
| 57 | 57 | AC_LANG([C++]) |
| 58 | 58 | |
| 59 | 59 | dnl --------------------------------------------------------------------------- |
| 60 | -dnl Initialize defaults | |
| 61 | -dnl --------------------------------------------------------------------------- | |
| 62 | - | |
| 63 | -DBG_CFLAGS="-g -fstack-check -DDEBUG=1" | |
| 64 | -RLS_CFLAGS="-DNDEBUG=1" | |
| 65 | -PLUGINS="" | |
| 66 | -APP_RESOURCES="" | |
| 67 | -APP_LDFLAGS="" | |
| 68 | -DLL_LDFLAGS="-shared -Wl,-soname,\$(@F)" | |
| 69 | -DEPENDS="" | |
| 70 | - | |
| 71 | -dnl --------------------------------------------------------------------------- | |
| 72 | 60 | dnl Version info |
| 73 | 61 | dnl --------------------------------------------------------------------------- |
| 74 | 62 | |
| ... | ... | @@ -109,7 +97,9 @@ case "$host" in |
| 109 | 97 | *-mingw32|*-pc-msys) |
| 110 | 98 | app_cv_osname="windows" |
| 111 | 99 | |
| 112 | - CFLAGS="$CFLAGS -pthread -D_WIN32_WINNT=0x0600" | |
| 100 | + CFLAGS="$CFLAGS -D_WIN32_WINNT=0x0600" | |
| 101 | + LDFLAGS="-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive,-Bdynamic -static-libgcc -static-libstdc++ $LDFLAGS" | |
| 102 | + | |
| 113 | 103 | LIBS="$LIBS -lws2_32 -lwtsapi32 -lcomdlg32" |
| 114 | 104 | DLLEXT=".dll" |
| 115 | 105 | |
| ... | ... | @@ -137,8 +127,8 @@ case "$host" in |
| 137 | 127 | ;; |
| 138 | 128 | |
| 139 | 129 | *) |
| 140 | - CFLAGS="$CFLAGS -pthread" | |
| 141 | - LDFLAGS="$LDFLAGS -pthread" | |
| 130 | + CFLAGS="$CFLAGS" | |
| 131 | + LDFLAGS="$LDFLAGS" | |
| 142 | 132 | app_cv_datadir="/usr/share" |
| 143 | 133 | app_cv_confdir="/etc" |
| 144 | 134 | app_cv_osname="linux" |
| ... | ... | @@ -155,8 +145,6 @@ AC_SUBST(LIBS) |
| 155 | 145 | AC_SUBST(LOGDIR) |
| 156 | 146 | AC_SUBST(DLLEXT) |
| 157 | 147 | AC_SUBST(DLLPREFIX) |
| 158 | -AC_SUBST(LDFLAGS) | |
| 159 | -AC_SUBST(DLL_LDFLAGS) | |
| 160 | 148 | |
| 161 | 149 | dnl --------------------------------------------------------------------------- |
| 162 | 150 | dnl Check for other programs |
| ... | ... | @@ -261,10 +249,9 @@ if test "$app_cv_static_ipc3270" == "auto"; then |
| 261 | 249 | fi |
| 262 | 250 | |
| 263 | 251 | if test "$app_cv_static_ipc3270" == "yes"; then |
| 264 | - LDFLAGS="-static -static-libgcc -static-libstdc++ $LDFLAGS" | |
| 265 | 252 | PKG_CHECK_MODULES( [IPC3270], [ipc3270-static], AC_DEFINE(USING_STATIC_IPC3270), AC_MSG_ERROR([IPC3270 not present.])) |
| 266 | 253 | else |
| 267 | - PKG_CHECK_MODULES( [IPC3270], [ipc3270], AC_DEFINE(USING_SHARED_IPC3270), AC_MSG_ERROR([IPC3270 not present.])) | |
| 254 | + PKG_CHECK_MODULES( [IPC3270], [ipc3270], AC_DEFINE(USING_DYNAMIC_IPC3270), AC_MSG_ERROR([IPC3270 not present.])) | |
| 268 | 255 | fi |
| 269 | 256 | |
| 270 | 257 | AC_SUBST(IPC3270_LIBS) |
| ... | ... | @@ -309,12 +296,14 @@ dnl --------------------------------------------------------------------------- |
| 309 | 296 | dnl Configure which files to generate. |
| 310 | 297 | dnl --------------------------------------------------------------------------- |
| 311 | 298 | |
| 312 | -AC_SUBST(DEPENDS) | |
| 313 | 299 | AC_CONFIG_FILES(Makefile) |
| 314 | 300 | |
| 315 | 301 | dnl --------------------------------------------------------------------------- |
| 316 | 302 | dnl Output the generated config.status script. |
| 317 | 303 | dnl --------------------------------------------------------------------------- |
| 304 | + | |
| 305 | +AC_SUBST(LDFLAGS) | |
| 306 | + | |
| 318 | 307 | AC_SUBST(BASEDIR,$ac_pwd) |
| 319 | 308 | |
| 320 | 309 | AC_OUTPUT | ... | ... |
hllapi.cbp
| ... | ... | @@ -42,6 +42,7 @@ |
| 42 | 42 | <Unit filename="src/core/private.h" /> |
| 43 | 43 | <Unit filename="src/core/set.cc" /> |
| 44 | 44 | <Unit filename="src/core/tools.cc" /> |
| 45 | + <Unit filename="src/core/windows/init.cc" /> | |
| 45 | 46 | <Unit filename="src/core/windows/resources.rc" /> |
| 46 | 47 | <Unit filename="src/include/config.h" /> |
| 47 | 48 | <Unit filename="src/include/lib3270/hllapi.h" /> | ... | ... |
rpm/libhllapi.spec
| 1 | 1 | # |
| 2 | -# spec file for packages pw3270-plugin-ipc | |
| 2 | +# spec file for package libhllapi | |
| 3 | 3 | # |
| 4 | 4 | # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. |
| 5 | 5 | # Copyright (C) <2008> <Banco do Brasil S.A.> |
| ... | ... | @@ -16,15 +16,10 @@ |
| 16 | 16 | # Please submit bugfixes or comments via http://bugs.opensuse.org/ |
| 17 | 17 | # |
| 18 | 18 | |
| 19 | -#---[ Versions ]------------------------------------------------------------------------------------------------------ | |
| 20 | - | |
| 21 | -%define MAJOR_VERSION 5 | |
| 22 | -%define MINOR_VERSION 2 | |
| 23 | - | |
| 24 | -#---[ Main package ]-------------------------------------------------------------------------------------------------- | |
| 19 | +#---[ Package header ]------------------------------------------------------------------------------------------------ | |
| 25 | 20 | |
| 26 | 21 | Summary: HLLAPI client library for lib3270/pw3270 |
| 27 | -Name: libhllapi5_2 | |
| 22 | +Name: libhllapi | |
| 28 | 23 | Version: 5.2 |
| 29 | 24 | Release: 0 |
| 30 | 25 | License: LGPL-3.0 |
| ... | ... | @@ -32,8 +27,7 @@ Source: lib3270-hllapi-bindings-%{version}.tar.xz |
| 32 | 27 | |
| 33 | 28 | Url: https://github.com/PerryWerneck/lib3270-hllapi-bindings.git |
| 34 | 29 | |
| 35 | -Group: System/X11/Terminals | |
| 36 | -BuildRoot: /var/tmp/%{name}-%{version} | |
| 30 | +Group: Development/Libraries/C and C++ | |
| 37 | 31 | |
| 38 | 32 | BuildRequires: autoconf >= 2.61 |
| 39 | 33 | BuildRequires: automake |
| ... | ... | @@ -63,6 +57,24 @@ HLLAPI client library for pw3270/lib3270 |
| 63 | 57 | |
| 64 | 58 | See more details at https://softwarepublico.gov.br/social/pw3270/ |
| 65 | 59 | |
| 60 | +#---[ Library ]------------------------------------------------------------------------------------------------------- | |
| 61 | + | |
| 62 | +%define MAJOR_VERSION %(echo %{version} | cut -d. -f1) | |
| 63 | +%define MINOR_VERSION %(echo %{version} | cut -d. -f2) | |
| 64 | +%define _libvrs %{MAJOR_VERSION}_%{MINOR_VERSION} | |
| 65 | + | |
| 66 | +%package -n %{name}%{_libvrs} | |
| 67 | +Summary: HLLAPI client library for lib3270/pw3270 | |
| 68 | +Group: Development/Libraries/C and C++ | |
| 69 | + | |
| 70 | +%description -n %{name}%{_libvrs} | |
| 71 | + | |
| 72 | +HLLAPI client library for pw3270/lib3270 | |
| 73 | + | |
| 74 | +See more details at https://softwarepublico.gov.br/social/pw3270/ | |
| 75 | + | |
| 76 | +#---[ Development package ]------------------------------------------------------------------------------------------- | |
| 77 | + | |
| 66 | 78 | %package devel |
| 67 | 79 | Summary: HLLAPI Development files. |
| 68 | 80 | |
| ... | ... | @@ -76,7 +88,8 @@ Development files for lib3270/pw3270 HLLAPI client library. |
| 76 | 88 | %prep |
| 77 | 89 | %setup -n lib3270-hllapi-bindings-%{version} |
| 78 | 90 | |
| 79 | -NOCONFIGURE=1 ./autogen.sh | |
| 91 | +NOCONFIGURE=1 \ | |
| 92 | + ./autogen.sh | |
| 80 | 93 | |
| 81 | 94 | %configure |
| 82 | 95 | |
| ... | ... | @@ -87,33 +100,33 @@ make all |
| 87 | 100 | %install |
| 88 | 101 | rm -rf $RPM_BUILD_ROOT |
| 89 | 102 | |
| 90 | -make \ | |
| 91 | - DESTDIR=%{?buildroot:%{buildroot}} \ | |
| 92 | - install | |
| 103 | +%makeinstall | |
| 93 | 104 | |
| 94 | -%files | |
| 105 | +%files -n %{name}%{_libvrs} | |
| 95 | 106 | %defattr(-,root,root) |
| 96 | -%doc AUTHORS LICENSE README.md | |
| 97 | 107 | |
| 98 | -%{_libdir}/libhllapi.so.%{MAJOR_VERSION} | |
| 99 | -%{_libdir}/libhllapi.so.%{MAJOR_VERSION}.%{MINOR_VERSION} | |
| 108 | +# https://en.opensuse.org/openSUSE:Packaging_for_Leap#RPM_Distro_Version_Macros | |
| 109 | +%if 0%{?sle_version} > 120200 | |
| 110 | +%doc AUTHORS README.md | |
| 111 | +%license LICENSE | |
| 112 | +%else | |
| 113 | +%doc AUTHORS README.md LICENSE | |
| 114 | +%endif | |
| 115 | + | |
| 116 | +%{_libdir}/%{name}.so.%{MAJOR_VERSION} | |
| 117 | +%{_libdir}/%{name}.so.%{MAJOR_VERSION}.%{MINOR_VERSION} | |
| 100 | 118 | |
| 101 | 119 | %files devel |
| 102 | 120 | %defattr(-,root,root) |
| 103 | -%{_libdir}/libhllapi.so | |
| 121 | + | |
| 122 | +%{_libdir}/%{name}.so | |
| 104 | 123 | %{_includedir}/lib3270/hllapi.h |
| 105 | 124 | |
| 106 | -%pre | |
| 107 | -/sbin/ldconfig | |
| 108 | -exit 0 | |
| 125 | +%pre -n %{name}%{_libvrs} -p /sbin/ldconfig | |
| 109 | 126 | |
| 110 | -%post | |
| 111 | -/sbin/ldconfig | |
| 112 | -exit 0 | |
| 127 | +%post -n %{name}%{_libvrs} -p /sbin/ldconfig | |
| 113 | 128 | |
| 114 | -%postun | |
| 115 | -/sbin/ldconfig | |
| 116 | -exit 0 | |
| 129 | +%postun -n %{name}%{_libvrs} -p /sbin/ldconfig | |
| 117 | 130 | |
| 118 | 131 | %changelog |
| 119 | 132 | ... | ... |
src/core/tools.cc
| ... | ... | @@ -34,6 +34,54 @@ |
| 34 | 34 | |
| 35 | 35 | HLLAPI_API_CALL hllapi_get_datadir(LPSTR datadir) { |
| 36 | 36 | |
| 37 | + LSTATUS rc; | |
| 38 | + HKEY hKey = 0; | |
| 39 | + unsigned long szDatadir = strlen(datadir); | |
| 40 | + | |
| 41 | + static const char * keys[] = { | |
| 42 | + | |
| 43 | + "Software\\" LIB3270_STRINGIZE_VALUE_OF(PRODUCT_NAME), | |
| 44 | + "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" LIB3270_STRINGIZE_VALUE_OF(PRODUCT_NAME), | |
| 45 | + | |
| 46 | +#ifdef LIB3270_NAME | |
| 47 | + "Software\\" LIB3270_STRINGIZE_VALUE_OF(LIB3270_NAME), | |
| 48 | + "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" LIB3270_STRINGIZE_VALUE_OF(LIB3270_NAME), | |
| 49 | +#endif | |
| 50 | + | |
| 51 | + "Software\\pw3270", | |
| 52 | + "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\pw3270" | |
| 53 | + }; | |
| 54 | + | |
| 55 | + size_t ix; | |
| 56 | + | |
| 57 | + string installLocation; | |
| 58 | + | |
| 59 | + *datadir = 0; | |
| 60 | + | |
| 61 | + for(ix = 0; !*datadir && ix < (sizeof(keys)/sizeof(keys[0])); ix++) { | |
| 62 | + | |
| 63 | + rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE,keys[ix],0,KEY_QUERY_VALUE,&hKey); | |
| 64 | + if(rc == ERROR_SUCCESS) { | |
| 65 | + | |
| 66 | + unsigned long datatype; // #defined in winnt.h (predefined types 0-11) | |
| 67 | + unsigned long datalen = (unsigned long) szDatadir; | |
| 68 | + | |
| 69 | + memset(datadir,0,datalen); | |
| 70 | + | |
| 71 | + rc = RegQueryValueExA(hKey,"InstallLocation",NULL,&datatype,(LPBYTE) datadir,&datalen); | |
| 72 | + if(rc != ERROR_SUCCESS) { | |
| 73 | + *datadir = 0; // Just in case | |
| 74 | + } | |
| 75 | + | |
| 76 | + RegCloseKey(hKey); | |
| 77 | + | |
| 78 | + } | |
| 79 | + | |
| 80 | + } | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + /* | |
| 37 | 85 | #ifdef _WIN32 |
| 38 | 86 | HKEY hKey = 0; |
| 39 | 87 | unsigned long datalen = strlen(datadir); |
| ... | ... | @@ -48,6 +96,7 @@ |
| 48 | 96 | RegCloseKey(hKey); |
| 49 | 97 | } |
| 50 | 98 | #endif // _WIN32 |
| 99 | +*/ | |
| 51 | 100 | |
| 52 | 101 | return *datadir; |
| 53 | 102 | } | ... | ... |
| ... | ... | @@ -0,0 +1,200 @@ |
| 1 | +/* | |
| 2 | + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 | |
| 3 | + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a | |
| 4 | + * aplicativos mainframe. Registro no INPI sob o nome G3270. | |
| 5 | + * | |
| 6 | + * Copyright (C) <2008> <Banco do Brasil S.A.> | |
| 7 | + * | |
| 8 | + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob | |
| 9 | + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela | |
| 10 | + * Free Software Foundation. | |
| 11 | + * | |
| 12 | + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER | |
| 13 | + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO | |
| 14 | + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para | |
| 15 | + * obter mais detalhes. | |
| 16 | + * | |
| 17 | + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este | |
| 18 | + * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin | |
| 19 | + * St, Fifth Floor, Boston, MA 02110-1301 USA | |
| 20 | + * | |
| 21 | + * Este programa está nomeado como - e possui - linhas de código. | |
| 22 | + * | |
| 23 | + * Contatos: | |
| 24 | + * | |
| 25 | + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) | |
| 26 | + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) | |
| 27 | + * | |
| 28 | + */ | |
| 29 | + | |
| 30 | +/** | |
| 31 | + * @file | |
| 32 | + * | |
| 33 | + * @brief Win32 delayed loading support methods. | |
| 34 | + * | |
| 35 | + * @author perry.werneck@gmail.com | |
| 36 | + * | |
| 37 | + */ | |
| 38 | + | |
| 39 | + #include <config.h> | |
| 40 | + #include <winsock2.h> | |
| 41 | + #include <windows.h> | |
| 42 | + #include "../private.h" | |
| 43 | + #include <lmcons.h> | |
| 44 | + #include <delayimp.h> | |
| 45 | + #include <fcntl.h> | |
| 46 | + #include <string> | |
| 47 | + #include <stdexcept> | |
| 48 | + #include <lib3270.h> | |
| 49 | + | |
| 50 | + #ifdef USING_STATIC_IPC3270 | |
| 51 | + | |
| 52 | + extern "C" { | |
| 53 | + | |
| 54 | + extern __declspec (dllexport) PfnDliHook __pfnDliNotifyHook2; | |
| 55 | + extern __declspec (dllexport) PfnDliHook __pfnDliFailureHook2; | |
| 56 | + | |
| 57 | + FARPROC WINAPI hllapi_delay_load_hook(unsigned reason, DelayLoadInfo * info); | |
| 58 | + | |
| 59 | + } | |
| 60 | + | |
| 61 | + using std::string; | |
| 62 | + | |
| 63 | +/*---[ Implement ]----------------------------------------------------------------------------------*/ | |
| 64 | + | |
| 65 | + // https://docs.microsoft.com/en-us/cpp/build/reference/loading-all-imports-for-a-delay-loaded-dll?view=vs-2019 | |
| 66 | + | |
| 67 | + PfnDliHook __pfnDliNotifyHook2 = hllapi_delay_load_hook; | |
| 68 | + PfnDliHook __pfnDliFailureHook2 = hllapi_delay_load_hook; | |
| 69 | + | |
| 70 | + static HANDLE hModule = 0; | |
| 71 | + static HANDLE hEventLog = 0; | |
| 72 | + | |
| 73 | + BOOL WINAPI DllMain(HANDLE hInstance, DWORD dwcallpurpose, LPVOID lpvResvd) { | |
| 74 | + switch(dwcallpurpose) { | |
| 75 | + case DLL_PROCESS_ATTACH: | |
| 76 | + hModule = hInstance; | |
| 77 | + hEventLog = RegisterEventSource(NULL, LIB3270_STRINGIZE_VALUE_OF(PRODUCT_NAME)); | |
| 78 | + break; | |
| 79 | + | |
| 80 | + case DLL_PROCESS_DETACH: | |
| 81 | + hModule = 0; | |
| 82 | + DeregisterEventSource(hEventLog); | |
| 83 | + hEventLog = 0; | |
| 84 | + break; | |
| 85 | + | |
| 86 | + } | |
| 87 | + | |
| 88 | + return TRUE; | |
| 89 | + } | |
| 90 | + | |
| 91 | + static void eventlog(const char *msg) { | |
| 92 | + | |
| 93 | + char username[UNLEN + 1]; | |
| 94 | + DWORD szName = sizeof(username); | |
| 95 | + | |
| 96 | + memset(username,0,UNLEN + 1); | |
| 97 | + | |
| 98 | + if(!GetUserName(username, &szName)) { | |
| 99 | + username[0] = 0; | |
| 100 | + } | |
| 101 | + | |
| 102 | + const char *outMsg[] = { | |
| 103 | + username, | |
| 104 | + PACKAGE_NAME, | |
| 105 | + msg | |
| 106 | + }; | |
| 107 | + | |
| 108 | + debug("Event: \"%s\"",msg); | |
| 109 | + | |
| 110 | + ReportEvent( | |
| 111 | + hEventLog, | |
| 112 | + EVENTLOG_ERROR_TYPE, | |
| 113 | + 1, | |
| 114 | + 0, | |
| 115 | + NULL, | |
| 116 | + 3, | |
| 117 | + 0, | |
| 118 | + outMsg, | |
| 119 | + NULL | |
| 120 | + ); | |
| 121 | + | |
| 122 | + } | |
| 123 | + | |
| 124 | + static void dummyProc() { | |
| 125 | + throw std::runtime_error("Operation not supported"); | |
| 126 | + } | |
| 127 | + | |
| 128 | + FARPROC WINAPI hllapi_delay_load_hook(unsigned reason, DelayLoadInfo * info) { | |
| 129 | + | |
| 130 | + static string savedpath; | |
| 131 | + | |
| 132 | + // https://docs.microsoft.com/en-us/cpp/build/reference/structure-and-constant-definitions?view=vs-2019 | |
| 133 | + switch (reason) { | |
| 134 | + case dliNoteStartProcessing: | |
| 135 | + { | |
| 136 | + | |
| 137 | + char datadir[4096]; | |
| 138 | + memset(datadir,' ',sizeof(datadir)); | |
| 139 | + datadir[sizeof(datadir)-1] = 0; | |
| 140 | + | |
| 141 | + hllapi_get_datadir(datadir); | |
| 142 | + | |
| 143 | + if(*datadir) { | |
| 144 | + | |
| 145 | + char curdir[4096]; | |
| 146 | + memset(curdir,0,sizeof(curdir)); | |
| 147 | + | |
| 148 | + if(GetCurrentDirectory(sizeof(curdir)-1,curdir)) { | |
| 149 | + savedpath = curdir; | |
| 150 | + } else { | |
| 151 | + savedpath.clear(); | |
| 152 | + } | |
| 153 | + | |
| 154 | + SetCurrentDirectory(curdir); | |
| 155 | + | |
| 156 | + } | |
| 157 | + | |
| 158 | + } | |
| 159 | + break; | |
| 160 | + | |
| 161 | + case dliNoteEndProcessing: | |
| 162 | + if(!savedpath.empty()) { | |
| 163 | + SetCurrentDirectory(savedpath.c_str()); | |
| 164 | + savedpath.clear(); | |
| 165 | + | |
| 166 | + } | |
| 167 | + break; | |
| 168 | + | |
| 169 | + case dliNotePreLoadLibrary: | |
| 170 | + break; | |
| 171 | + | |
| 172 | + case dliNotePreGetProcAddress: | |
| 173 | + break; | |
| 174 | + | |
| 175 | + case dliFailLoadLib: | |
| 176 | + { | |
| 177 | + string msg = "Can't load "; | |
| 178 | + msg += (const char *) info->szDll; | |
| 179 | + eventlog(msg.c_str()); | |
| 180 | + } | |
| 181 | + return (FARPROC) hModule; | |
| 182 | + | |
| 183 | + case dliFailGetProc: | |
| 184 | + { | |
| 185 | + string msg = "Can't find method on "; | |
| 186 | + msg += (const char *) info->szDll; | |
| 187 | + eventlog(msg.c_str()); | |
| 188 | + } | |
| 189 | + return (FARPROC) dummyProc; | |
| 190 | + | |
| 191 | + } | |
| 192 | + | |
| 193 | + // Returning NULL causes the delay load machinery to perform default | |
| 194 | + // processing for this notification. | |
| 195 | + return NULL; | |
| 196 | + | |
| 197 | + } | |
| 198 | + | |
| 199 | + #endif // USING_STATIC_IPC3270 | |
| 200 | + | ... | ... |
src/include/config.h.in
src/testprogram/testprogram.cc
win/hllapi.nsi
| ... | ... | @@ -4,11 +4,11 @@ |
| 4 | 4 | |
| 5 | 5 | Name "hllapi" |
| 6 | 6 | Caption "hllapi - PW3270 HLLAPI Module" |
| 7 | -outfile "hllapi-5.2.19.9-i686.exe" | |
| 7 | +outfile "hllapi-5.2.19.9-x86_64.exe" | |
| 8 | 8 | |
| 9 | 9 | XPStyle on |
| 10 | 10 | |
| 11 | -installDir "$PROGRAMFILES\hllapi" | |
| 11 | +installDir "$PROGRAMFILES64\hllapi" | |
| 12 | 12 | |
| 13 | 13 | # Get installation folder from registry if available |
| 14 | 14 | InstallDirRegKey HKLM "Software\hllapi" "InstallLocation" |
| ... | ... | @@ -17,10 +17,10 @@ RequestExecutionLevel admin |
| 17 | 17 | |
| 18 | 18 | # Properties |
| 19 | 19 | VIProductVersion "5.2.19.9" |
| 20 | -VIFileVersion "19.9.2.11" | |
| 20 | +VIFileVersion "19.9.23.14" | |
| 21 | 21 | |
| 22 | 22 | VIAddVersionKey "ProductVersion" "5.2.19.9" |
| 23 | -VIAddVersionKey "FileVersion" "19.9.2.11" | |
| 23 | +VIAddVersionKey "FileVersion" "19.9.23.14" | |
| 24 | 24 | |
| 25 | 25 | VIAddVersionKey "ProductName" "hllapi" |
| 26 | 26 | VIAddVersionKey "FileDescription" "PW3270 HLLAPI Module" |
| ... | ... | @@ -51,7 +51,7 @@ SubSection "hllapi" SecMain |
| 51 | 51 | |
| 52 | 52 | Section "Core" SecCore |
| 53 | 53 | |
| 54 | - SetRegView 32 | |
| 54 | + SetRegView 64 | |
| 55 | 55 | ${DisableX64FSRedirection} |
| 56 | 56 | |
| 57 | 57 | # define the output path for this file |
| ... | ... | @@ -107,7 +107,7 @@ Section "Uninstall" |
| 107 | 107 | DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\hllapi" |
| 108 | 108 | DeleteRegKey HKLM "Software\hllapi" |
| 109 | 109 | |
| 110 | - SetRegView 32 | |
| 110 | + SetRegView 64 | |
| 111 | 111 | DeleteRegKey HKLM "Software\hllapi" |
| 112 | 112 | |
| 113 | 113 | SectionEnd | ... | ... |
win/pack.sh
| ... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 | PROJECT_DIR=$(readlink -f $(dirname $(dirname $(readlink -f $0)))) |
| 3 | 3 | |
| 4 | 4 | PUBLISH=0 |
| 5 | +CLEAR_OLD=0 | |
| 5 | 6 | |
| 6 | 7 | pack() { |
| 7 | 8 | |
| ... | ... | @@ -11,7 +12,8 @@ pack() { |
| 11 | 12 | |
| 12 | 13 | BUILDDIR=$(mktemp -d) |
| 13 | 14 | |
| 14 | - ./configure --cache=.${1}.cache \ | |
| 15 | + ./configure \ | |
| 16 | + --cache=.${1}.cache \ | |
| 15 | 17 | --host=${1}-w64-mingw32 \ |
| 16 | 18 | --prefix=/usr/${1}-w64-mingw32/sys-root/mingw \ |
| 17 | 19 | --bindir=${BUILDDIR} \ |
| ... | ... | @@ -54,19 +56,27 @@ pack() { |
| 54 | 56 | exit -1 |
| 55 | 57 | fi |
| 56 | 58 | |
| 57 | - if [ -d ~/public_html ]; then | |
| 58 | - mkdir -p ~/public_html/win | |
| 59 | - cp -v *.exe ~/public_html/win | |
| 60 | - if [ "$?" != "0" ]; then | |
| 61 | - exit -1 | |
| 59 | + PRODUCT_NAME=$(${1}-w64-mingw32-pkg-config --variable=product_name lib3270) | |
| 60 | + | |
| 61 | + if [ ! -z ${PRODUCT_NAME} ]; then | |
| 62 | + | |
| 63 | + if [ -d ~/public_html/win/${PRODUCT_NAME}/${2} ]; then | |
| 64 | + | |
| 65 | + if [ "${CLEAR_OLD}" == "1" ]; then | |
| 66 | + rm -fr ~/public_html/win/${PRODUCT_NAME}/${2}/hllapi-*.exe | |
| 67 | + fi | |
| 68 | + | |
| 69 | + cp -v *.exe ~/public_html/win/${PRODUCT_NAME}/${2} | |
| 70 | + | |
| 62 | 71 | fi |
| 63 | - fi | |
| 64 | 72 | |
| 65 | - if [ "${PUBLISH}" == "1" ] && [ ! -z ${WIN_PACKAGE_SERVER} ]; then | |
| 66 | - scp *.exe ${WIN_PACKAGE_SERVER} | |
| 67 | - if [ "$?" != "0" ]; then | |
| 68 | - exit -1 | |
| 73 | + if [ "${PUBLISH}" == "1" ] && [ ! -z ${WIN_PACKAGE_SERVER} ]; then | |
| 74 | + echo scp *.exe ${WIN_PACKAGE_SERVER}/${PRODUCT_NAME}/${2} | |
| 75 | + if [ "$?" != "0" ]; then | |
| 76 | + exit -1 | |
| 77 | + fi | |
| 69 | 78 | fi |
| 79 | + | |
| 70 | 80 | fi |
| 71 | 81 | |
| 72 | 82 | mv -f *.exe ${PROJECT_DIR} |
| ... | ... | @@ -99,10 +109,7 @@ do |
| 99 | 109 | ;; |
| 100 | 110 | |
| 101 | 111 | CLEAR) |
| 102 | - if [ -d ~/public_html/win ]; then | |
| 103 | - rm -fr ~/public_html/win/hllapi-*-{i686,x86_64}.exe | |
| 104 | - fi | |
| 105 | - | |
| 112 | + CLEAR_OLD=1 | |
| 106 | 113 | ;; |
| 107 | 114 | HELP) |
| 108 | 115 | echo "${0} nome_da_matriz" |
| ... | ... | @@ -137,7 +144,7 @@ if [ "$?" != "0" ]; then |
| 137 | 144 | exit -1 |
| 138 | 145 | fi |
| 139 | 146 | |
| 140 | -pack i686 | |
| 141 | -pack x86_64 | |
| 147 | +pack i686 x86_32 | |
| 148 | +pack x86_64 x86_64 | |
| 142 | 149 | |
| 143 | 150 | ... | ... |