Commit bccefb08a6ce0869e67ea1aaf452e97b04b283f4

Authored by Perry Werneck
1 parent 0158d397
Exists in master

Refactoring .NET module.

configure.ac
  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 27 dnl Process this file with autoconf to produce a configure script.
3 28  
4 29 dnl The minimum version of autoconf required.
5   -AC_PREREQ(2.59)
  30 +AC_PREREQ(2.61)
6 31  
7 32 dnl Initialise automake with the package name, version and
8 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 36 dnl Place auxilliary scripts here.
12 37 AC_CONFIG_AUX_DIR([scripts])
... ... @@ -24,8 +49,8 @@ dnl Check for iconv
24 49 AM_ICONV
25 50  
26 51 dnl Checks for programs.
27   -AC_PROG_CXX
28 52 AC_PROG_CC
  53 +AC_PROG_CXX
29 54 AC_PROG_SED
30 55 AC_PROG_LN_S
31 56  
... ... @@ -34,173 +59,119 @@ AC_LANG([C++])
34 59 dnl ---------------------------------------------------------------------------
35 60 dnl Initialize defaults
36 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 64 RLS_CFLAGS="-DNDEBUG=1"
  65 +PLUGINS=""
  66 +APP_RESOURCES=""
  67 +APP_LDFLAGS=""
  68 +DLL_LDFLAGS="-shared -Wl,-soname,\$(@F)"
41 69  
42 70 dnl ---------------------------------------------------------------------------
43 71 dnl Check for OS specifics
44 72 dnl ---------------------------------------------------------------------------
45 73  
46 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 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 108 LOGDIR="/var/log"
89   -
  109 + DLLEXT=".so"
90 110  
91 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 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 118 AC_SUBST(DLLEXT)
107 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 123 dnl ---------------------------------------------------------------------------
113 124 dnl Check for other programs
114 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 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 133 dnl ---------------------------------------------------------------------------
128 134 dnl Version info
129 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 140 app_vrs_major=$(echo $VERSION | cut -d. -f1)
135 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 143 AC_DEFINE_UNQUOTED(PACKAGE_MAJOR_VERSION, $app_vrs_major)
141 144 AC_DEFINE_UNQUOTED(PACKAGE_MINOR_VERSION, $app_vrs_minor)
142 145  
143 146 AC_SUBST(PACKAGE_MAJOR_VERSION,$app_vrs_major)
144 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 176 dnl ---------------------------------------------------------------------------
206 177 dnl Check for C++ 2011 support
... ... @@ -224,126 +195,82 @@ AS_VAR_POPDEF([CACHEVAR])dnl
224 195 AX_CHECK_COMPILE_FLAG([-std=gnu++11], [CFLAGS="$CFLAGS -std=gnu++11"])
225 196  
226 197 dnl ---------------------------------------------------------------------------
227   -dnl Check for ELF symbol visibility support
  198 +dnl Check for libintl
228 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 211 dnl ---------------------------------------------------------------------------
281   -dnl Check for compiler visibility flag
  212 +dnl Check for IPC3270
282 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 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 246 dnl ---------------------------------------------------------------------------
319 247 dnl Check for pic
320 248 dnl ---------------------------------------------------------------------------
  249 +
321 250 AC_ARG_ENABLE([pic],
322 251 [AS_HELP_STRING([--disable-pic], [disable support for PIC libraries (required to compile on 64bits)])],
323 252 [
324 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 267 esac
  268 +
343 269 ])
344 270  
345 271 if test "$app_cv_pic" == "yes"; then
346 272 CFLAGS="$CFLAGS -fPIC"
  273 + CXXFLAGS="$CXXFLAGS -fPIC"
347 274 fi
348 275  
349 276 dnl ---------------------------------------------------------------------------
... ... @@ -357,27 +284,22 @@ if test &quot;$app_cv_trace&quot; == &quot;yes&quot;; then
357 284 fi
358 285  
359 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 287 dnl Configure which files to generate.
372 288 dnl ---------------------------------------------------------------------------
373 289  
374   -AC_CONFIG_FILES(Makefile)
  290 +dnl AC_CONFIG_FILES(Makefile)
375 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 295 dnl ---------------------------------------------------------------------------
380 296 dnl Output the generated config.status script.
381 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 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 31 * @file config.h
3 32 *
... ... @@ -28,20 +57,7 @@
28 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 63 * @brief Ativa trace em um arquivo texto.
... ... @@ -50,5 +66,4 @@
50 66 #undef ENABLE_TRACE_TO_FILE
51 67  
52 68  
53   -
54 69 #endif // CONFIG_H_INCLUDED
... ...
src/native/Makefile.in
... ... @@ -24,25 +24,54 @@
24 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 61 prefix=@prefix@
37 62 exec_prefix=@exec_prefix@
38 63 bindir=@bindir@
39 64 sbindir=@sbindir@
40 65 libdir=@libdir@
  66 +includedir=@includedir@
  67 +datarootdir=@datarootdir@
  68 +localedir=@localedir@
  69 +docdir=@docdir@
  70 +sysconfdir=@sysconfdir@
41 71  
42 72 BASEDIR=@BASEDIR@
43   -SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
44 73  
45   -OBJDIR=$(BASEDIR)/.obj
  74 +OBJDIR=$(BASEDIR)/.obj/$(LIBNAME)
46 75 OBJDBG=$(OBJDIR)/Debug
47 76 OBJRLS=$(OBJDIR)/Release
48 77  
... ... @@ -50,116 +79,181 @@ BINDIR=$(BASEDIR)/.bin
50 79 BINDBG=$(BINDIR)/Debug
51 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 106 $(OBJDBG)/%.o: \
79 107 %.cc \
80 108 $(DEPENDS)
81 109  
82 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 129 $(OBJRLS)/%.o: \
89 130 %.cc \
90 131 $(DEPENDS)
91 132  
92 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 148 #---[ Release Targets ]------------------------------------------------------------------
99 149  
100 150 all: \
101   - $(BINRLS)/$(LIBNAME)
  151 + $(BINRLS)/$(SONAME)
102 152  
103 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 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 @@
  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 +
... ...