Commit bccefb08a6ce0869e67ea1aaf452e97b04b283f4

Authored by Perry Werneck
1 parent 0158d397
Exists in master

Refactoring .NET module.

  1 +dnl
  2 +dnl Software pw3270, desenvolvido com base nos códigos fontes do C3270 e X3270
  3 +dnl (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 +dnl aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 +dnl
  6 +dnl Copyright (C) <2008> <Banco do Brasil S.A.>
  7 +dnl
  8 +dnl Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 +dnl os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 +dnl Free Software Foundation.
  11 +dnl
  12 +dnl Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 +dnl GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 +dnl A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 +dnl obter mais detalhes.
  16 +dnl
  17 +dnl Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 +dnl programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 +dnl Place, Suite 330, Boston, MA, 02111-1307, USA
  20 +dnl
  21 +dnl Contatos:
  22 +dnl
  23 +dnl perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  24 +dnl erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
  25 +dnl
1 26
2 dnl Process this file with autoconf to produce a configure script. 27 dnl Process this file with autoconf to produce a configure script.
3 28
4 dnl The minimum version of autoconf required. 29 dnl The minimum version of autoconf required.
5 -AC_PREREQ(2.59) 30 +AC_PREREQ(2.61)
6 31
7 dnl Initialise automake with the package name, version and 32 dnl Initialise automake with the package name, version and
8 dnl bug-reporting address. 33 dnl bug-reporting address.
9 -AC_INIT([lib3270-mono-bindings], [5.1], [perry.werneck@gmail.com]) 34 +AC_INIT([lib3270-mono-bindings], [5.2], [perry.werneck@gmail.com])
10 35
11 dnl Place auxilliary scripts here. 36 dnl Place auxilliary scripts here.
12 AC_CONFIG_AUX_DIR([scripts]) 37 AC_CONFIG_AUX_DIR([scripts])
@@ -24,8 +49,8 @@ dnl Check for iconv @@ -24,8 +49,8 @@ dnl Check for iconv
24 AM_ICONV 49 AM_ICONV
25 50
26 dnl Checks for programs. 51 dnl Checks for programs.
27 -AC_PROG_CXX  
28 AC_PROG_CC 52 AC_PROG_CC
  53 +AC_PROG_CXX
29 AC_PROG_SED 54 AC_PROG_SED
30 AC_PROG_LN_S 55 AC_PROG_LN_S
31 56
@@ -34,173 +59,119 @@ AC_LANG([C++]) @@ -34,173 +59,119 @@ AC_LANG([C++])
34 dnl --------------------------------------------------------------------------- 59 dnl ---------------------------------------------------------------------------
35 dnl Initialize defaults 60 dnl Initialize defaults
36 dnl --------------------------------------------------------------------------- 61 dnl ---------------------------------------------------------------------------
37 -DLLFLAGS="-shared -Wl,-soname,\$(@F)"  
38 -LDSTATIC=""  
39 -DBG_CFLAGS="-DDEBUG=1" 62 +
  63 +DBG_CFLAGS="-g -fstack-check -DDEBUG=1"
40 RLS_CFLAGS="-DNDEBUG=1" 64 RLS_CFLAGS="-DNDEBUG=1"
  65 +PLUGINS=""
  66 +APP_RESOURCES=""
  67 +APP_LDFLAGS=""
  68 +DLL_LDFLAGS="-shared -Wl,-soname,\$(@F)"
41 69
42 dnl --------------------------------------------------------------------------- 70 dnl ---------------------------------------------------------------------------
43 dnl Check for OS specifics 71 dnl Check for OS specifics
44 dnl --------------------------------------------------------------------------- 72 dnl ---------------------------------------------------------------------------
45 73
46 case "$host" in 74 case "$host" in
47 - *-mingw32)  
48 - RLS_LDFLAGS="-Wl,--strip-all"  
49 - DBG_LDFLAGS=""  
50 - APP_LDFLAGS=""  
51 -  
52 - DBG_DATADIR=""  
53 - RLS_DATADIR="" 75 + *-mingw32|*-pc-msys)
  76 + app_cv_osname="windows"
54 77
55 - EXEEXT=".exe"  
56 -  
57 - DLLPREFIX="" 78 + CFLAGS="$CFLAGS -pthread -D_WIN32_WINNT=0x0600"
  79 + LIBS="$LIBS -lws2_32 -lwtsapi32 -lcomdlg32"
58 DLLEXT=".dll" 80 DLLEXT=".dll"
59 81
60 - CFLAGS="$CFLAGS -Wall -Werror -D_WIN32_WINNT=0x0600"  
61 - LDFLAGS="-static-libgcc -static-libstdc++ $LDFLAGS"  
62 - LDSTATIC="-Wl,-Bstatic -lstdc++ -lpthread -Wl,-Bdynamic"  
63 - LIBS="$LIBS -lws2_32 -lntdll -lwtsapi32" 82 + app_win32_revision=$(date +%-y.%-m.%-d.%-H)
  83 + AC_SUBST(WIN32_VERSION,$app_win32_revision)
64 84
65 - LOGDIR=.  
66 - ;; 85 + app_win32_file_version=$(date +%-y,%-m,%-d,%-H)
  86 + AC_SUBST(WIN32_FILE_VERSION,$app_win32_file_version)
67 87
68 - *)  
69 - RLS_LDFLAGS=""  
70 - DBG_LDFLAGS=""  
71 - APP_LDFLAGS="" 88 + AC_CONFIG_FILES(src/native/windows/resources.rc)
72 89
73 - DBG_DATADIR="-DDATADIR=."  
74 - DBG_CFLAGS="-fstack-check $DBG_CFLAGS"  
75 -  
76 - RLS_DATADIR="-DDATADIR=\$(datarootdir)/\$(PACKAGE_NAME)"  
77 -  
78 - EXEEXT=""  
79 -  
80 - DLLPREFIX="lib"  
81 - DLLEXT=".so"  
82 -  
83 - CFLAGS="$CFLAGS -Wall -Werror" 90 + if test "$host_cpu" = "x86_64"; then
  91 + app_cv_programfiles="PROGRAMFILES64"
  92 + app_cv_winarch="64"
  93 + else
  94 + app_cv_programfiles="PROGRAMFILES"
  95 + app_cv_winarch="32"
  96 + fi
84 97
85 - # LIBS="-Wl,--no-allow-shlib-undefined,--as-needed,--no-undefined -pthread $LIBS"  
86 - LIBS="-pthread $LIBS" 98 + AC_SUBST(PROGRAMFILES,$app_cv_programfiles)
  99 + AC_SUBST(WINARCH,$app_cv_winarch)
  100 + ;;
87 101
  102 + *)
  103 + CFLAGS="$CFLAGS -pthread"
  104 + LDFLAGS="$LDFLAGS -pthread"
  105 + app_cv_datadir="/usr/share"
  106 + app_cv_confdir="/etc"
  107 + app_cv_osname="linux"
88 LOGDIR="/var/log" 108 LOGDIR="/var/log"
89 - 109 + DLLEXT=".so"
90 110
91 esac 111 esac
92 112
  113 +AC_SUBST(DATADIR,$app_cv_datadir)
  114 +AC_SUBST(CONFDIR,$app_cv_confdir)
  115 +AC_SUBST(OSNAME,$app_cv_osname)
93 AC_SUBST(LIBS) 116 AC_SUBST(LIBS)
94 -  
95 -AC_SUBST(DBG_DATADIR)  
96 -AC_SUBST(DBG_CFLAGS)  
97 -  
98 -AC_SUBST(RLS_DATADIR)  
99 -AC_SUBST(RLS_CFLAGS)  
100 -  
101 -AC_SUBST(DBG_LDFLAGS)  
102 -AC_SUBST(RLS_LDFLAGS)  
103 -AC_SUBST(APP_LDFLAGS)  
104 -  
105 -AC_SUBST(EXEEXT) 117 +AC_SUBST(LOGDIR)
106 AC_SUBST(DLLEXT) 118 AC_SUBST(DLLEXT)
107 AC_SUBST(DLLPREFIX) 119 AC_SUBST(DLLPREFIX)
108 -  
109 -AC_SUBST(LOGDIR)  
110 -AC_SUBST(LDSTATIC) 120 +AC_SUBST(LDFLAGS)
  121 +AC_SUBST(DLL_LDFLAGS)
111 122
112 dnl --------------------------------------------------------------------------- 123 dnl ---------------------------------------------------------------------------
113 dnl Check for other programs 124 dnl Check for other programs
114 dnl --------------------------------------------------------------------------- 125 dnl ---------------------------------------------------------------------------
115 -AC_PATH_TOOL([STRIP], [strip])  
116 -AC_PATH_TOOL([RPMBUILD], [rpmbuild], [no])  
117 -AC_PATH_TOOL([MAKENSIS], [makensis], [no])  
118 -AC_PATH_TOOL([VALGRIND], [valgrind], [no]) 126 +
  127 +AC_PATH_TOOL([AR], [ar], [ar])
119 AC_PATH_TOOL([WINDRES], [windres], [no]) 128 AC_PATH_TOOL([WINDRES], [windres], [no])
120 -AC_PATH_TOOL([ZIP], [zip], [zip])  
121 -AC_PATH_TOOL([MCS], [mcs], [mcs])  
122 -AC_PATH_TOOL([VBNC], [vbnc2], [vbnc2])  
123 -AC_PATH_TOOL([GACUTIL], [gacutil], [gacutil])  
124 -AC_PATH_TOOL([SN], [sn], [sn])  
125 -AC_PATH_PROG([MONO], [mono], [no]) 129 +AC_PATH_TOOL([VALGRIND], [valgrind], [no])
  130 +
  131 +PKG_CHECK_EXISTS
126 132
127 dnl --------------------------------------------------------------------------- 133 dnl ---------------------------------------------------------------------------
128 dnl Version info 134 dnl Version info
129 dnl --------------------------------------------------------------------------- 135 dnl ---------------------------------------------------------------------------
130 136
131 -AC_DEFINE(PACKAGE_RELEASE,APP_LEVEL)  
132 -AC_SUBST(PACKAGE_RELEASE, APP_LEVEL) 137 +AC_SUBST(PACKAGE_DESCRIPTION,".NET Bindings for lib3270/pw3270")
  138 +app_cv_zipname=$PACKAGE
133 139
134 app_vrs_major=$(echo $VERSION | cut -d. -f1) 140 app_vrs_major=$(echo $VERSION | cut -d. -f1)
135 app_vrs_minor=$(echo $VERSION | cut -d. -f2) 141 app_vrs_minor=$(echo $VERSION | cut -d. -f2)
136 142
137 -AC_SUBST(PACKAGE_MAJOR_VERSION,$app_vrs_major)  
138 -AC_SUBST(PACKAGE_MINOR_VERSION,$app_vrs_minor)  
139 -  
140 AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_VERSION, $app_vrs_major) 143 AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_VERSION, $app_vrs_major)
141 AC_DEFINE_UNQUOTED(PACKAGE_MINOR_VERSION, $app_vrs_minor) 144 AC_DEFINE_UNQUOTED(PACKAGE_MINOR_VERSION, $app_vrs_minor)
142 145
143 AC_SUBST(PACKAGE_MAJOR_VERSION,$app_vrs_major) 146 AC_SUBST(PACKAGE_MAJOR_VERSION,$app_vrs_major)
144 AC_SUBST(PACKAGE_MINOR_VERSION,$app_vrs_minor) 147 AC_SUBST(PACKAGE_MINOR_VERSION,$app_vrs_minor)
145 148
146 -app_cv_description="C# Bindings for lib3270/pw3270"  
147 -app_cv_zipname=$PACKAGE  
148 -  
149 -AC_DEFINE_UNQUOTED(PACKAGE_DESCRIPTION,"$app_cv_description")  
150 -AC_SUBST(PACKAGE_DESCRIPTION,"$app_cv_description")  
151 -  
152 -dnl ---------------------------------------------------------------------------  
153 -dnl Check for integer types & library functions  
154 -dnl --------------------------------------------------------------------------- 149 +AC_ARG_WITH([release], [AS_HELP_STRING([--with-release], [Set release])], [ app_cv_release="$withval" ],[ app_cv_release="`date +%-y`.`date +%-m`.`date +%-d`" ])
155 150
156 -AC_CHECK_TYPES([pid_t, uint8_t, uint16_t, uint32_t, int32_t, uint64_t, int64_t])  
157 -  
158 -dnl ---------------------------------------------------------------------------  
159 -dnl Check for libintl  
160 -dnl ---------------------------------------------------------------------------  
161 -  
162 -AC_PATH_TOOL([XGETTEXT], [xgettext], [no])  
163 -AC_PATH_TOOL([MSGCAT], [msgcat], [no])  
164 -AC_PATH_TOOL([MSGINIT], [msginit], [no])  
165 -AC_PATH_TOOL([MSGMERGE], [msgmerge], [no])  
166 -AC_PATH_TOOL([MSGFMT], [msgfmt], [no])  
167 -  
168 -AC_CHECK_HEADER(libintl.h, [  
169 - AC_DEFINE(HAVE_LIBINTL, 1)  
170 -]) 151 +app_rls_major=$(echo $app_cv_release.0.0 | cut -d. -f1)
  152 +app_rls_minor=$(echo $app_cv_release.0.0 | cut -d. -f2)
171 153
172 -dnl --------------------------------------------------  
173 -dnl test for clock_gettime  
174 -dnl -------------------------------------------------- 154 +AC_DEFINE_UNQUOTED(PACKAGE_RELEASE, $app_cv_release)
  155 +AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_RELEASE, $app_rls_major)
  156 +AC_DEFINE_UNQUOTED(PACKAGE_MINOR_RELEASE, $app_rls_minor)
175 157
176 -AC_CHECK_FUNCS(clock_gettime, [], [  
177 - AC_CHECK_LIB(rt, clock_gettime, [  
178 - AC_DEFINE(HAVE_CLOCK_GETTIME, 1)  
179 - LIBS="$LIBS -lrt"  
180 - ])  
181 -]) 158 +AC_SUBST(PACKAGE_RELEASE,$app_cv_release)
  159 +AC_SUBST(PACKAGE_MAJOR_RELEASE,$app_rls_major)
  160 +AC_SUBST(PACKAGE_MINOR_RELEASE,$app_rls_minor)
182 161
183 -dnl --------------------------------------------------  
184 -dnl test for in_addr_t  
185 -dnl --------------------------------------------------  
186 -AC_MSG_CHECKING(for in_addr_t in netinet/in.h)  
187 -AC_EGREP_HEADER(in_addr_t, netinet/in.h,  
188 - [ AC_DEFINE([HAVE_IN_ADDR_T], [1], [Define to 1 if in_addr_t is available.]) AC_MSG_RESULT(yes) ],  
189 - AC_MSG_RESULT(no)) 162 +case "$host" in
  163 + *-mingw32|*-pc-msys)
  164 + AC_SUBST(NATIVE_SONAME,lib3270-mono.dll)
  165 + ;;
190 166
191 -dnl ---------------------------------------------------------------------------  
192 -dnl test for reentrant time routines  
193 -dnl --------------------------------------------------------------------------- 167 + s390x-*)
  168 + AC_SUBST(NATIVE_SONAME,lib3270-mono.so)
  169 + ;;
194 170
195 -AC_MSG_CHECKING(for localtime_r in time.h)  
196 -AC_EGREP_HEADER(localtime_r, time.h,  
197 - [ AC_DEFINE([HAVE_LOCALTIME_R], [1], [Define to 1 if localtime_r is available.]) AC_MSG_RESULT(yes) ],  
198 - AC_MSG_RESULT(no)) 171 + *)
  172 + AC_SUBST(NATIVE_SONAME,lib3270-mono.so.$app_vrs_major.$app_vrs_minor)
199 173
200 -AC_MSG_CHECKING(for gmtime_r in time.h)  
201 -AC_EGREP_HEADER(gmtime_r, time.h,  
202 - [ AC_DEFINE([HAVE_GMTIME_R], [1], [Define to 1 if gmtime_r is available.]) AC_MSG_RESULT(yes) ],  
203 - AC_MSG_RESULT(no)) 174 +esac
204 175
205 dnl --------------------------------------------------------------------------- 176 dnl ---------------------------------------------------------------------------
206 dnl Check for C++ 2011 support 177 dnl Check for C++ 2011 support
@@ -224,126 +195,82 @@ AS_VAR_POPDEF([CACHEVAR])dnl @@ -224,126 +195,82 @@ AS_VAR_POPDEF([CACHEVAR])dnl
224 AX_CHECK_COMPILE_FLAG([-std=gnu++11], [CFLAGS="$CFLAGS -std=gnu++11"]) 195 AX_CHECK_COMPILE_FLAG([-std=gnu++11], [CFLAGS="$CFLAGS -std=gnu++11"])
225 196
226 dnl --------------------------------------------------------------------------- 197 dnl ---------------------------------------------------------------------------
227 -dnl Check for ELF symbol visibility support 198 +dnl Check for libintl
228 dnl --------------------------------------------------------------------------- 199 dnl ---------------------------------------------------------------------------
229 -m4_define([GLIB_CHECK_COMPILE_WARNINGS],  
230 -[m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl  
231 -rm -f conftest.$ac_objext  
232 -glib_ac_compile_save="$ac_compile"  
233 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext'  
234 -AS_IF([_AC_EVAL_STDERR($ac_compile) &&  
235 - AC_TRY_COMMAND([(if test -s conftest.err; then false ; else true; fi)])],  
236 - [$2],  
237 - [echo "$as_me: failed program was:" >&AS_MESSAGE_LOG_FD  
238 -cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD  
239 -m4_ifvaln([$3],[$3])dnl])  
240 -ac_compile="$glib_ac_compile_save"  
241 -rm -f conftest.$ac_objext conftest.err m4_ifval([$1], [conftest.$ac_ext])[]dnl  
242 -])# GLIB_CHECK_COMPILE_WARNINGS  
243 -  
244 -AC_MSG_CHECKING(for GNUC visibility attribute)  
245 -GLIB_CHECK_COMPILE_WARNINGS([  
246 -void  
247 -__attribute__ ((visibility ("hidden")))  
248 - f_hidden (void)  
249 -{  
250 -}  
251 -void  
252 -__attribute__ ((visibility ("internal")))  
253 - f_internal (void)  
254 -{  
255 -}  
256 -void  
257 -__attribute__ ((visibility ("protected")))  
258 - f_protected (void)  
259 -{  
260 -}  
261 -void  
262 -__attribute__ ((visibility ("default")))  
263 - f_default (void)  
264 -{  
265 -}  
266 -int main (int argc, char **argv)  
267 -{  
268 - f_hidden();  
269 - f_internal();  
270 - f_protected();  
271 - f_default();  
272 - return 0;  
273 -}  
274 -],g_have_gnuc_visibility=yes,g_have_gnuc_visibility=no)  
275 -AC_MSG_RESULT($g_have_gnuc_visibility)  
276 -if test x$g_have_gnuc_visibility = xyes; then  
277 - AC_DEFINE(HAVE_GNUC_VISIBILITY, 1, [supports GCC visibility attributes])  
278 -fi 200 +
  201 +INTL_LIBS=""
  202 +
  203 +AC_PATH_TOOL([XGETTEXT], [xgettext], [no])
  204 +AC_PATH_TOOL([MSGCAT], [msgcat], [no])
  205 +AC_PATH_TOOL([MSGINIT], [msginit], [no])
  206 +AC_PATH_TOOL([MSGMERGE], [msgmerge], [no])
  207 +AC_PATH_TOOL([MSGFMT], [msgfmt], [no])
  208 +
  209 +AC_SUBST(INTL_LIBS)
279 210
280 dnl --------------------------------------------------------------------------- 211 dnl ---------------------------------------------------------------------------
281 -dnl Check for compiler visibility flag 212 +dnl Check for IPC3270
282 dnl --------------------------------------------------------------------------- 213 dnl ---------------------------------------------------------------------------
283 -AC_MSG_CHECKING(whether $CC accepts -fvisibility=hidden)  
284 -  
285 -SAVED_CFLAGS="${CFLAGS}"  
286 -CFLAGS="-fvisibility=hidden"  
287 -GLIB_CHECK_COMPILE_WARNINGS([  
288 -int main (int argc, char **argv)  
289 -{  
290 - return 0;  
291 -}  
292 -],app_cv_fvisibility_ok=yes,app_cv_fvisibility_ok=no)  
293 -AC_MSG_RESULT($app_cv_fvisibility_ok)  
294 -  
295 -CFLAGS="${SAVED_CFLAGS}"  
296 -  
297 -dnl AC_CACHE_VAL(app_cv_fvisibility_ok,  
298 -dnl [ac_save_cc="$CC"  
299 -dnl CC="$CC -fvisibility=hidden"  
300 -dnl AC_TRY_RUN([int main() { return 0; }],  
301 -dnl app_cv_fvisibility_ok=yes,  
302 -dnl app_cv_fvisibility_ok=no,  
303 -dnl app_cv_fvisibility_ok=no)  
304 -dnl CC="$ac_save_cc"])  
305 -dnl AC_MSG_RESULT($app_cv_fvisibility_ok)  
306 -if test $app_cv_fvisibility_ok = yes; then  
307 - CFLAGS="$CFLAGS -fvisibility=hidden" 214 +
  215 +AC_ARG_WITH([static-ipc3270],
  216 + [AS_HELP_STRING([--with-static-ipc3270], [Uses static version of ipc3270])],
  217 +[
  218 + app_cv_static_ipc3270=$withval
  219 +],[
  220 + app_cv_static_ipc3270="auto"
  221 +])
  222 +
  223 +if test "$app_cv_static_ipc3270" == "auto"; then
  224 + case "$host" in
  225 + *-mingw32|*-pc-msys)
  226 + app_cv_static_ipc3270="yes"
  227 + ;;
  228 +
  229 + *)
  230 + app_cv_static_ipc3270="no"
  231 +
  232 + esac
  233 +
308 fi 234 fi
309 235
310 -dnl ---------------------------------------------------------------------------  
311 -dnl Check for D-Bus  
312 -dnl --------------------------------------------------------------------------- 236 +if test "$app_cv_static_ipc3270" == "yes"; then
  237 + LDFLAGS="-static -static-libgcc -static-libstdc++ $LDFLAGS"
  238 + PKG_CHECK_MODULES( [IPC3270], [ipc3270-static], AC_DEFINE(USING_STATIC_IPC3270), AC_MSG_ERROR([IPC3270 not present.]))
  239 +else
  240 + PKG_CHECK_MODULES( [IPC3270], [ipc3270], AC_DEFINE(USING_SHARED_IPC3270), AC_MSG_ERROR([IPC3270 not present.]))
  241 +fi
313 242
314 -PKG_CHECK_MODULES( [DBUS], [dbus-1], AC_DEFINE(HAVE_DBUS), AC_MSG_NOTICE([ No DBUS support.]) )  
315 -AC_SUBST(DBUS_LIBS)  
316 -AC_SUBST(DBUS_CFLAGS) 243 +AC_SUBST(IPC3270_LIBS)
  244 +AC_SUBST(IPC3270_CFLAGS)
317 245
318 dnl --------------------------------------------------------------------------- 246 dnl ---------------------------------------------------------------------------
319 dnl Check for pic 247 dnl Check for pic
320 dnl --------------------------------------------------------------------------- 248 dnl ---------------------------------------------------------------------------
  249 +
321 AC_ARG_ENABLE([pic], 250 AC_ARG_ENABLE([pic],
322 [AS_HELP_STRING([--disable-pic], [disable support for PIC libraries (required to compile on 64bits)])], 251 [AS_HELP_STRING([--disable-pic], [disable support for PIC libraries (required to compile on 64bits)])],
323 [ 252 [
324 app_cv_pic="$enableval" 253 app_cv_pic="$enableval"
325 ],[ 254 ],[
326 255
327 - case "$host" in  
328 - *-mingw32)  
329 - app_cv_pic="no" 256 + case "$host_cpu" in
  257 + x86_64)
  258 + app_cv_pic="yes"
330 ;; 259 ;;
331 260
332 - s390x-*)  
333 - app_cv_pic="yes" 261 + aarch64)
  262 + app_cv_pic="yes"
334 ;; 263 ;;
335 264
336 *) 265 *)
337 - if test "$host_cpu" = "x86_64"; then  
338 - app_cv_pic="yes"  
339 - else  
340 - app_cv_pic="no"  
341 - fi 266 + app_cv_pic="no"
342 esac 267 esac
  268 +
343 ]) 269 ])
344 270
345 if test "$app_cv_pic" == "yes"; then 271 if test "$app_cv_pic" == "yes"; then
346 CFLAGS="$CFLAGS -fPIC" 272 CFLAGS="$CFLAGS -fPIC"
  273 + CXXFLAGS="$CXXFLAGS -fPIC"
347 fi 274 fi
348 275
349 dnl --------------------------------------------------------------------------- 276 dnl ---------------------------------------------------------------------------
@@ -357,27 +284,22 @@ if test &quot;$app_cv_trace&quot; == &quot;yes&quot;; then @@ -357,27 +284,22 @@ if test &quot;$app_cv_trace&quot; == &quot;yes&quot;; then
357 fi 284 fi
358 285
359 dnl --------------------------------------------------------------------------- 286 dnl ---------------------------------------------------------------------------
360 -dnl Output config  
361 -dnl ---------------------------------------------------------------------------  
362 -  
363 -AC_SUBST(DLLFLAGS)  
364 -AC_SUBST(BASEDIR,$ac_pwd)  
365 -  
366 -AC_DEFINE_UNQUOTED(ZIPNAME, $app_cv_zipname)  
367 -AC_SUBST(ZIPNAME,$app_cv_zipname)  
368 -  
369 -  
370 -dnl ---------------------------------------------------------------------------  
371 dnl Configure which files to generate. 287 dnl Configure which files to generate.
372 dnl --------------------------------------------------------------------------- 288 dnl ---------------------------------------------------------------------------
373 289
374 -AC_CONFIG_FILES(Makefile) 290 +dnl AC_CONFIG_FILES(Makefile)
375 AC_CONFIG_FILES(src/native/Makefile) 291 AC_CONFIG_FILES(src/native/Makefile)
376 -AC_CONFIG_FILES(src/pw3270-sharp/Makefile)  
377 -AC_CONFIG_FILES(src/pw3270-sharp/pw3270-sharp.pc) 292 +dnl AC_CONFIG_FILES(src/pw3270-sharp/Makefile)
  293 +dnl AC_CONFIG_FILES(src/pw3270-sharp/pw3270-sharp.pc)
378 294
379 dnl --------------------------------------------------------------------------- 295 dnl ---------------------------------------------------------------------------
380 dnl Output the generated config.status script. 296 dnl Output the generated config.status script.
381 dnl --------------------------------------------------------------------------- 297 dnl ---------------------------------------------------------------------------
  298 +AC_DEFINE_UNQUOTED(ZIPNAME, $app_cv_zipname)
  299 +AC_SUBST(ZIPNAME,$app_cv_zipname)
  300 +
  301 +AC_SUBST(BASEDIR,$ac_pwd)
  302 +
382 AC_OUTPUT 303 AC_OUTPUT
383 304
  305 +
src/include/config.h.in
  1 +/*
  2 + * "Software G3270, 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 config.h 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 de Mendonça)
  27 + *
  28 + */
  29 +
1 /** 30 /**
2 * @file config.h 31 * @file config.h
3 * 32 *
@@ -28,20 +57,7 @@ @@ -28,20 +57,7 @@
28 * @brief Revisão svn quando o pacote foi configurado. 57 * @brief Revisão svn quando o pacote foi configurado.
29 * 58 *
30 */ 59 */
31 - #undef PACKAGE_REVISION  
32 -  
33 - /**  
34 - * @brief Indica se o compilador atual possui suporte a "visibility"  
35 - *  
36 - * Quando disponível indica que o compilador atual permite tornar  
37 - * visíveis numa biblioteca apenas as funções declaradas para isso  
38 - * evitando que todos os símbolos fiquem visíveis.  
39 - *  
40 - * Isso permite um melhor controle sobre quais funções podem ser usados  
41 - * pelo programa principal.  
42 - *  
43 - */  
44 - #undef HAVE_GNUC_VISIBILITY 60 + #undef PACKAGE_RELEASE
45 61
46 /** 62 /**
47 * @brief Ativa trace em um arquivo texto. 63 * @brief Ativa trace em um arquivo texto.
@@ -50,5 +66,4 @@ @@ -50,5 +66,4 @@
50 #undef ENABLE_TRACE_TO_FILE 66 #undef ENABLE_TRACE_TO_FILE
51 67
52 68
53 -  
54 #endif // CONFIG_H_INCLUDED 69 #endif // CONFIG_H_INCLUDED
src/native/Makefile.in
@@ -24,25 +24,54 @@ @@ -24,25 +24,54 @@
24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça) 24 # erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
25 # 25 #
26 26
27 -SOURCES=actions.cc get.cc init.cc screen.cc set.cc network.cc  
28 -LIBNAME=lib3270-mono@DLLEXT@ 27 +#---[ Library configuration ]------------------------------------------------------------
29 28
30 -#---[ Configuration values ]------------------------------------------------------------- 29 +LIBNAME=lib3270-mono
  30 +SONAME=@SONAME@
31 31
32 -PACKAGE_NAME=@PACKAGE_NAME@  
33 -PACKAGE_VERSION=@PACKAGE_VERSION@  
34 -PACKAGE_TARNAME=@PACKAGE_TARNAME@ 32 +SOURCES= \
  33 + $(wildcard *.cc) \
  34 + $(wildcard @OSNAME@/*.rc) \
  35 + $(wildcard @OSNAME@/*.cc)
  36 +
  37 +TEST_SOURCES= \
  38 + $(wildcard src/testprogram/*.cc)
  39 +
  40 +#---[ Tools ]----------------------------------------------------------------------------
  41 +
  42 +CXX=@CXX@
  43 +LD=@CXX@
  44 +LN_S=@LN_S@
  45 +MKDIR=@MKDIR_P@
  46 +INSTALL=@INSTALL@
  47 +INSTALL_DATA=@INSTALL_DATA@
  48 +INSTALL_PROGRAM=@INSTALL_PROGRAM@
  49 +XGETTEXT=@XGETTEXT@
  50 +MSGCAT=@MSGCAT@
  51 +WINDRES=@WINDRES@
  52 +AR=@AR@
  53 +VALGRIND=@VALGRIND@
  54 +GENMARSHAL=@GENMARSHAL@
  55 +CONVERT=@CONVERT@
  56 +OPTIPNG=@OPTIPNG@
  57 +ZIP=@ZIP@
  58 +
  59 +#---[ Paths ]----------------------------------------------------------------------------
35 60
36 prefix=@prefix@ 61 prefix=@prefix@
37 exec_prefix=@exec_prefix@ 62 exec_prefix=@exec_prefix@
38 bindir=@bindir@ 63 bindir=@bindir@
39 sbindir=@sbindir@ 64 sbindir=@sbindir@
40 libdir=@libdir@ 65 libdir=@libdir@
  66 +includedir=@includedir@
  67 +datarootdir=@datarootdir@
  68 +localedir=@localedir@
  69 +docdir=@docdir@
  70 +sysconfdir=@sysconfdir@
41 71
42 BASEDIR=@BASEDIR@ 72 BASEDIR=@BASEDIR@
43 -SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)  
44 73
45 -OBJDIR=$(BASEDIR)/.obj 74 +OBJDIR=$(BASEDIR)/.obj/$(LIBNAME)
46 OBJDBG=$(OBJDIR)/Debug 75 OBJDBG=$(OBJDIR)/Debug
47 OBJRLS=$(OBJDIR)/Release 76 OBJRLS=$(OBJDIR)/Release
48 77
@@ -50,116 +79,181 @@ BINDIR=$(BASEDIR)/.bin @@ -50,116 +79,181 @@ BINDIR=$(BASEDIR)/.bin
50 BINDBG=$(BINDIR)/Debug 79 BINDBG=$(BINDIR)/Debug
51 BINRLS=$(BINDIR)/Release 80 BINRLS=$(BINDIR)/Release
52 81
53 -INSTALL=@INSTALL@  
54 -INSTALL_DATA=@INSTALL_DATA@  
55 -INSTALL_PROGRAM=@INSTALL_PROGRAM@ 82 +#---[ Rules ]----------------------------------------------------------------------------
56 83
57 -LN_S=@LN_S@ 84 +DEPENDS= \
  85 + Makefile \
  86 + *.h \
  87 + $(BASEDIR)/src/include/*.h
58 88
59 -VALGRIND=@VALGRIND@  
60 -AMTAR=@AMTAR@  
61 -SHELL=@SHELL@  
62 -STRIP=@STRIP@  
63 -MKDIR=@MKDIR_P@  
64 89
65 -CXX=@CXX@  
66 -CC=@CC@  
67 -LD=@CXX@ 90 +CFLAGS= \
  91 + @CFLAGS@ \
  92 + -g \
  93 + -I$(BASEDIR)/src/include \
  94 + -DBUILD_DATE=`date +%Y%m%d` \
  95 + @IPC3270_CFLAGS@
68 96
69 -LIBS=-lpw3270cpp @LIBS@ @LIBICONV@ @DBUS_LIBS@  
70 -CFLAGS=-I../include @CFLAGS@ @DBUS_CFLAGS@  
71 -LDFLAGS=@LDFLAGS@  
72 -LDSTATIC=@LDSTATIC@ 97 +LDFLAGS=\
  98 + @LDFLAGS@
73 99
74 -#---[ Rules ]---------------------------------------------------------------------------- 100 +LIBS= \
  101 + @LIBS@ \
  102 + @IPC3270_LIBS@
75 103
76 -DEPENDS=*.h Makefile 104 +#---[ Debug Rules ]----------------------------------------------------------------------
77 105
78 $(OBJDBG)/%.o: \ 106 $(OBJDBG)/%.o: \
79 %.cc \ 107 %.cc \
80 $(DEPENDS) 108 $(DEPENDS)
81 109
82 @echo $< ... 110 @echo $< ...
83 - @$(MKDIR) `dirname $@`  
84 - @$(CXX) $(CFLAGS) -fstack-check -DDEBUG=1 \  
85 - -DBUILD_DATE=`date +"0x%Y%m%d"`\  
86 - -g -o $@ -c $< 111 + @$(MKDIR) $(dir $@)
  112 +
  113 + @$(CXX) \
  114 + $(CFLAGS) \
  115 + -Wall -Wextra -fstack-check \
  116 + -DDEBUG=1 \
  117 + -o $@ \
  118 + -c $<
  119 +
  120 +$(OBJDBG)/%.o: \
  121 + %.rc
  122 +
  123 + @echo $< ...
  124 + @$(MKDIR) $(dir $@)
  125 + @$(WINDRES) $< -O coff -o $@
  126 +
  127 +#---[ Release Rules ]--------------------------------------------------------------------
87 128
88 $(OBJRLS)/%.o: \ 129 $(OBJRLS)/%.o: \
89 %.cc \ 130 %.cc \
90 $(DEPENDS) 131 $(DEPENDS)
91 132
92 @echo $< ... 133 @echo $< ...
93 - @$(MKDIR) `dirname $@`  
94 - @$(CXX) $(CFLAGS) -DNDEBUG=1 \  
95 - -DBUILD_DATE=`date +"0x%Y%m%d"` \  
96 - -o $@ -c $< 134 + @$(MKDIR) $(dir $@)
  135 + @$(CXX) \
  136 + $(CFLAGS) \
  137 + -DNDEBUG=1 \
  138 + -o $@ \
  139 + -c $<
  140 +
  141 +$(OBJRLS)/%.o: \
  142 + %.rc
  143 +
  144 + @echo $< ...
  145 + @$(MKDIR) $(dir $@)
  146 + @$(WINDRES) $< -O coff -o $@
97 147
98 #---[ Release Targets ]------------------------------------------------------------------ 148 #---[ Release Targets ]------------------------------------------------------------------
99 149
100 all: \ 150 all: \
101 - $(BINRLS)/$(LIBNAME) 151 + $(BINRLS)/$(SONAME)
102 152
103 Release: \ 153 Release: \
104 - $(BINRLS)/$(LIBNAME) 154 + $(BINRLS)/$(SONAME)
  155 +
  156 +$(BINRLS)/$(SONAME): \
  157 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
  158 +
  159 + @$(MKDIR) $(dir $@)
  160 + @echo $< ...
  161 + @$(LD) \
  162 + @DLL_LDFLAGS@ \
  163 + -o $@ \
  164 + $(LDFLAGS) \
  165 + $^ \
  166 + $(LIBS)
  167 +
  168 +#---[ Install Targets ]------------------------------------------------------------------
105 169
106 install: \ 170 install: \
107 - $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ 171 + $(BINRLS)/$(SONAME)
108 172
109 - @$(MKDIR) $(DESTDIR)/$(libdir)  
110 - @$(INSTALL_PROGRAM) $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $(DESTDIR)/$(libdir) 173 + # Install library
  174 + @$(MKDIR) $(DESTDIR)$(libdir)
111 175
112 - @rm -f $(DESTDIR)/$(libdir)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@  
113 - @rm -f $(DESTDIR)/$(libdir)/$(LIBNAME) 176 + @$(INSTALL_PROGRAM) \
  177 + $(BINRLS)/$(SONAME) \
  178 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
114 179
115 - @$(LN_S) $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $(DESTDIR)/$(libdir)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@  
116 - @$(LN_S) $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $(DESTDIR)/$(libdir)/$(LIBNAME) 180 + @$(LN_S) \
  181 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  182 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
117 183
118 -$(BINRLS)/$(LIBNAME): \  
119 - $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@ 184 + @$(LN_S) \
  185 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  186 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@
120 187
121 - @rm -f $@  
122 - @$(LN_S) $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $@  
123 188
  189 +#---[ Debug Targets ]--------------------------------------------------------------------
124 190
125 -$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@: \  
126 - $(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ 191 +Debug: \
  192 + $(BINDBG)/$(LIBNAME)@EXEEXT@
127 193
128 - @rm -f $@  
129 - @$(LN_S) $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $@ 194 +$(BINDBG)/$(LIBNAME)@EXEEXT@: \
  195 + $(foreach SRC, $(basename $(TEST_SOURCES)), $(OBJDBG)/$(SRC).o) \
  196 + $(BINDBG)/$(SONAME)
130 197
  198 + @$(MKDIR) $(dir $@)
  199 + @echo $< ...
  200 + @$(LD) \
  201 + -o $@ \
  202 + $^ \
  203 + -L$(BINDBG) \
  204 + -Wl,-rpath,$(BINDBG) \
  205 + $(LDFLAGS) \
  206 + $(LIBS)
  207 +
  208 +run: \
  209 + $(BINDBG)/$(LIBNAME)@EXEEXT@
131 210
132 -$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \  
133 - $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) 211 +ifeq ($(VALGRIND),no)
134 212
135 - @echo $(basename $@) ...  
136 - @$(MKDIR) `dirname $@`  
137 - @$(LD) -shared -Wl,-soname,$(LIBNAME) $(LDFLAGS) -o $@ $^ $(LIBS) $(LDSTATIC) 213 + @LD_LIBRARY_PATH=$(BINDBG) \
  214 + $(BINDBG)/$(LIBNAME)@EXEEXT@
138 215
139 -#---[ Debug Targets ]-------------------------------------------------------------------- 216 +else
  217 + @touch valgrind.suppression
140 218
141 -Debug: \  
142 - $(BINDBG)/$(LIBNAME) 219 + @LD_LIBRARY_PATH=$(BINDBG) \
  220 + $(VALGRIND) --leak-check=full --track-origins=yes --gen-suppressions=all --suppressions=valgrind.suppression \
  221 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  222 +endif
143 223
144 -$(BINDBG)/$(LIBNAME): \  
145 - $(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@  
146 224
147 - @rm -f $@  
148 - @$(LN_S) $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $@ 225 +$(BINDBG)/$(SONAME): \
  226 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
149 227
  228 + @$(MKDIR) $(dir $@)
  229 + @echo $< ...
  230 + @$(LD) \
  231 + -shared -Wl,-soname,$(@F) \
  232 + -o $@ \
  233 + -L$(BINDBG) \
  234 + $(LDFLAGS) \
  235 + $^ \
  236 + $(LIBS)
150 237
151 -$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@: \  
152 - $(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@  
153 238
154 - @rm -f $@  
155 - @$(LN_S) $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $@ 239 +#---[ Clean Targets ]--------------------------------------------------------------------
156 240
  241 +clean: \
  242 + cleanDebug \
  243 + cleanRelease
157 244
158 -$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \  
159 - $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) 245 +cleanDebug:
  246 +
  247 + @rm -fr $(OBJDBG)
  248 + @rm -fr $(BINDBG)
  249 +
  250 +cleanRelease:
  251 +
  252 + @rm -fr $(OBJRLS)
  253 + @rm -fr $(BINRLS)
160 254
161 - @echo $(basename $@) ...  
162 - @$(MKDIR) `dirname $@`  
163 - @$(LD) -shared -Wl,-soname,$(LIBNAME) $(LDFLAGS) -o $@ $^ $(LIBS) $(LDSTATIC) 255 +clean: \
  256 + cleanDebug \
  257 + cleanRelease
164 258
165 259
src/native/windows/resources.rc.in 0 → 100644
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +#include <windows.h>
  2 +
  3 +VS_VERSION_INFO VERSIONINFO
  4 +FILEVERSION @WIN32_FILE_VERSION@
  5 +PRODUCTVERSION @PACKAGE_MAJOR_VERSION@,@PACKAGE_MINOR_VERSION@,@PACKAGE_MAJOR_RELEASE@,@PACKAGE_MINOR_RELEASE@
  6 +
  7 +BEGIN
  8 +
  9 + BLOCK "StringFileInfo"
  10 + BEGIN
  11 + BLOCK "080904E4"
  12 + BEGIN
  13 + VALUE "FileDescription", "@PACKAGE_DESCRIPTION@\0"
  14 + VALUE "CompanyName", "Banco do Brasil S. A.\0"
  15 + VALUE "FileVersion", "@WIN32_VERSION@\0"
  16 + VALUE "LegalCopyright", "(C) 2019 Banco do Brasil S. A. All Rights Reserved\0"
  17 + VALUE "OriginalFilename", "lib3270-mono-bindings@DLLEXT@\0"
  18 + VALUE "ProductName", "pw3270\0"
  19 + VALUE "ProductVersion", "@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@.@PACKAGE_MAJOR_RELEASE@.@PACKAGE_MINOR_RELEASE@\0"
  20 + END
  21 + END
  22 +
  23 + BLOCK "VarFileInfo"
  24 + BEGIN
  25 + VALUE "Translation", 0x809, 0x04E4
  26 + END
  27 +
  28 +END
  29 +