Commit c5ab786071711eb4b85a0ed11fe1be61ad52223f

Authored by Perry Werneck
1 parent 3d452141
Exists in master and in 1 other branch develop

Splitting virtual 3270 terminal to another project.

Showing 2 changed files with 272 additions and 72 deletions   Show diff stats
@@ -24,55 +24,82 @@ @@ -24,55 +24,82 @@
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 -MODULE_NAME=v3270 27 +#---[ Library configuration ]------------------------------------------------------------
28 28
29 -SOURCES=marshal.c widget.c oia.c iocallback.c keyboard.c draw.c mouse.c selection.c \  
30 - accessible.c security.c macros.c hostselect.c properties.c charset.c 29 +LIBNAME=libv@LIB3270_NAME@
31 30
32 -#---[ Configuration values ]------------------------------------------------------------- 31 +SOURCES= \
  32 + $(wildcard src/v3270/*.c) \
  33 + $(wildcard src/v3270ft/*.c) \
  34 + $(wildcard src/dialogs/*.c)
33 35
34 -PACKAGE_NAME=@PACKAGE_NAME@  
35 -PACKAGE_VERSION=@PACKAGE_VERSION@  
36 -PACKAGE_TARNAME=@PACKAGE_TARNAME@ 36 +TEST_SOURCES= \
  37 + $(wildcard testprogram/*.c)
  38 +
  39 +#---[ Tools ]----------------------------------------------------------------------------
  40 +
  41 +CC=@CC@
  42 +HOST_CC=@HOST_CC@
  43 +LD=@CC@
  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 +
  55 +#---[ Paths ]----------------------------------------------------------------------------
37 56
38 prefix=@prefix@ 57 prefix=@prefix@
39 exec_prefix=@exec_prefix@ 58 exec_prefix=@exec_prefix@
40 bindir=@bindir@ 59 bindir=@bindir@
41 sbindir=@sbindir@ 60 sbindir=@sbindir@
42 libdir=@libdir@ 61 libdir=@libdir@
  62 +includedir=@includedir@
  63 +datarootdir=@datarootdir@
  64 +localedir=@localedir@
  65 +docdir=@docdir@
  66 +sysconfdir=@sysconfdir@
43 67
44 BASEDIR=@BASEDIR@ 68 BASEDIR=@BASEDIR@
45 -SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/src/pw3270/$(MODULE_NAME)  
46 -POTDIR=$(BASEDIR)/.pot/$(PACKAGE_TARNAME)/$(MODULE_NAME)  
47 69
48 -OBJDIR=.obj 70 +POTDIR=$(BASEDIR)/.pot
  71 +
  72 +OBJDIR=$(BASEDIR)/.obj/$(LIBNAME)
49 OBJDBG=$(OBJDIR)/Debug 73 OBJDBG=$(OBJDIR)/Debug
50 OBJRLS=$(OBJDIR)/Release 74 OBJRLS=$(OBJDIR)/Release
51 75
52 -MKDIR=@MKDIR_P@  
53 -CC=@CC@  
54 -LD=@CC@  
55 -AR=@AR@  
56 -GENMARSHAL=@GENMARSHAL@  
57 -XGETTEXT=@XGETTEXT@  
58 -MSGCAT=@MSGCAT@  
59 -INSTALL=@INSTALL@  
60 -INSTALL_DATA=@INSTALL_DATA@  
61 -  
62 -CFLAGS=@CFLAGS@ \  
63 - @LIB3270_CFLAGS@ \  
64 - @PW3270_CFLAGS@ \  
65 - -Wno-deprecated-declarations \  
66 - @GTK_CFLAGS@  
67 -  
68 -LIBS=@LIBS@ @GTK_LIBS@ @LIB3270_LIBS@ 76 +BINDIR=$(BASEDIR)/.bin
  77 +BINDBG=$(BINDIR)/Debug
  78 +BINRLS=$(BINDIR)/Release
69 79
70 #---[ Rules ]---------------------------------------------------------------------------- 80 #---[ Rules ]----------------------------------------------------------------------------
71 81
72 DEPENDS= \ 82 DEPENDS= \
73 - $(BASEDIR)/src/include/*.h \  
74 - @LIB3270_INCLUDEPATH@/*.h \  
75 - $(BASEDIR)/src/include/v3270/*.h 83 + Makefile \
  84 + src/include/*.h \
  85 + src/include/v3270/*.h \
  86 + src/v3270/*.h \
  87 + src/v3270ft/*.h
  88 +
  89 +CFLAGS= \
  90 + @CFLAGS@ \
  91 + -g \
  92 + -I../include
  93 + -DBUILD_DATE=`date +%Y%m%d` \
  94 + @LIBSSL_CFLAGS@
  95 +
  96 +LIBS= \
  97 + @LIBS@ \
  98 + @LIBSSL_LIBS@ \
  99 + @LIBICONV@ \
  100 + @INTL_LIBS@
  101 +
  102 +#---[ Debug Rules ]----------------------------------------------------------------------
76 103
77 $(OBJDBG)/%.o: \ 104 $(OBJDBG)/%.o: \
78 %.c \ 105 %.c \
@@ -80,10 +107,20 @@ $(OBJDBG)/%.o: \ @@ -80,10 +107,20 @@ $(OBJDBG)/%.o: \
80 107
81 @echo $< ... 108 @echo $< ...
82 @$(MKDIR) `dirname $@` 109 @$(MKDIR) `dirname $@`
83 - @$(CC) $(CFLAGS) \  
84 - @DBG_CFLAGS@ \  
85 - -DBUILD_DATE=`date +"0x%Y%m%d"`\  
86 - -o $@ -c $< 110 + @$(CC) \
  111 + $(CFLAGS) \
  112 + -Wall -Wextra -fstack-check \
  113 + -DDEBUG=1 \
  114 + -o $@ -c $<
  115 +
  116 +$(OBJDBG)/%.o: \
  117 + %.rc
  118 +
  119 + @echo $< ...
  120 + @$(MKDIR) `dirname $@`
  121 + @$(WINDRES) $< -O coff -o $@
  122 +
  123 +#---[ Release Rules ]--------------------------------------------------------------------
87 124
88 $(OBJRLS)/%.o: \ 125 $(OBJRLS)/%.o: \
89 %.c \ 126 %.c \
@@ -91,97 +128,231 @@ $(OBJRLS)/%.o: \ @@ -91,97 +128,231 @@ $(OBJRLS)/%.o: \
91 128
92 @echo $< ... 129 @echo $< ...
93 @$(MKDIR) `dirname $@` 130 @$(MKDIR) `dirname $@`
94 - @$(CC) $(CFLAGS) \  
95 - @RLS_CFLAGS@ \  
96 - -DBUILD_DATE=`date +"0x%Y%m%d"` \  
97 - -o $@ -c $< 131 + @$(CC) \
  132 + $(CFLAGS) \
  133 + -DNDEBUG=1 \
  134 + -o $@ -c $<
  135 +
  136 +$(OBJRLS)/%.o: \
  137 + %.rc
  138 +
  139 + @echo $< ...
  140 + @$(MKDIR) `dirname $@`
  141 + @$(WINDRES) $< -O coff -o $@
98 142
99 -$(POTDIR)/%.pot: %.c 143 +#---[ Misc Rules ]-----------------------------------------------------------------------
  144 +
  145 +$(POTDIR)/$(LIBNAME)/%.pot: \
  146 + %.c
100 147
101 @echo $(notdir $@) ... 148 @echo $(notdir $@) ...
102 @$(MKDIR) `dirname $@` 149 @$(MKDIR) `dirname $@`
103 @$(XGETTEXT) \ 150 @$(XGETTEXT) \
104 - --default-domain=$(PACKAGE) \  
105 --language=C \ 151 --language=C \
106 --keyword=_ \ 152 --keyword=_ \
107 --keyword=N_ \ 153 --keyword=N_ \
108 --keyword=MSG_:2 \ 154 --keyword=MSG_:2 \
109 --output=$@ \ 155 --output=$@ \
110 $< 156 $<
111 -  
112 @touch $@ 157 @touch $@
113 158
114 -marshal.h: \  
115 - genmarshal 159 +$(POTDIR)/$(LIBNAME)/%.pot: \
  160 + %.rc
116 161
117 @echo $< ... 162 @echo $< ...
118 @$(MKDIR) `dirname $@` 163 @$(MKDIR) `dirname $@`
119 - @$(GENMARSHAL) --prefix=$(MODULE_NAME) --header genmarshal > $@ 164 + @touch $@
120 165
121 -marshal.c: \  
122 - marshal.h 166 +#---[ Release Targets ]------------------------------------------------------------------
123 167
124 - @echo $< ...  
125 - @$(MKDIR) `dirname $@`  
126 - @glib-genmarshal --prefix=$(MODULE_NAME) --body genmarshal > $@ 168 +all: \
  169 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  170 + $(BINRLS)/static/$(LIBNAME).a \
  171 + $(POTDIR)/$(LIBNAME).pot
127 172
128 -#---[ Release Targets ]------------------------------------------------------------------  
129 173
130 Release: \ 174 Release: \
131 - $(BASEDIR)/.obj/Release/$(MODULE_NAME).a 175 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  176 + $(BINRLS)/static/$(LIBNAME).a
  177 +
  178 +$(BINRLS)/$(LIBNAME)@DLLEXT@: \
  179 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  180 +
  181 + @echo $< ...
  182 + @rm -f $@
  183 + @$(LN_S) \
  184 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  185 + $@
  186 +
  187 +$(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  188 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  189 +
  190 + @rm -f $@
  191 + @$(LN_S) \
  192 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  193 + $@
132 194
133 -$(BASEDIR)/.obj/Release/$(MODULE_NAME).a: \ 195 +$(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  196 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
  197 +
  198 + @$(MKDIR) `dirname $@`
  199 + @echo $< ...
  200 + @$(LD) \
  201 + -shared -Wl,-soname,$(@F) \
  202 + -o $@ \
  203 + $(LDFLAGS) \
  204 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) \
  205 + $(LIBS)
  206 +
  207 +$(BINRLS)/static/$(LIBNAME).a: \
134 $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) 208 $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
135 209
136 @echo $@ ... 210 @echo $@ ...
137 @$(MKDIR) `dirname $@` 211 @$(MKDIR) `dirname $@`
138 @$(AR) rcs $@ $^ 212 @$(AR) rcs $@ $^
139 213
140 -pot: \  
141 - $(BASEDIR)/.pot/$(PACKAGE_TARNAME)/$(MODULE_NAME).pot  
142 214
143 -$(BASEDIR)/.pot/$(PACKAGE_TARNAME)/$(MODULE_NAME).pot: \  
144 - $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(SRC).pot) 215 +#---[ Install Targets ]------------------------------------------------------------------
  216 +
  217 +install: \
  218 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  219 + $(BINRLS)/static/$(LIBNAME).a
  220 +
  221 + # Install library
  222 + @mkdir -p $(DESTDIR)$(libdir)
  223 +
  224 + @$(INSTALL_PROGRAM) \
  225 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  226 + $(DESTDIR)$(libdir)
  227 +
  228 +
  229 + @$(LN_S) \
  230 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  231 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  232 +
  233 + @$(LN_S) \
  234 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  235 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@
  236 +
  237 + # Install static library
  238 + @$(INSTALL_DATA) \
  239 + $(BINRLS)/static/$(LIBNAME).a \
  240 + $(DESTDIR)$(libdir)
  241 +
  242 + # Install SDK
  243 +
  244 + @mkdir -p $(DESTDIR)$(includedir)/$(LIBNAME)
  245 +
  246 + @$(INSTALL_DATA) \
  247 + ../include/$(LIBNAME)/*.h \
  248 + $(DESTDIR)$(includedir)/$(LIBNAME)
  249 +
  250 + @$(INSTALL_DATA) \
  251 + ../include/$(LIBNAME).h \
  252 + $(DESTDIR)$(includedir)/$(LIBNAME).h
  253 +
  254 + # Install PKG-CONFIG files
  255 + @mkdir -p $(DESTDIR)$(libdir)/pkgconfig
  256 + @$(INSTALL_DATA) \
  257 + $(LIBNAME).pc \
  258 + $(DESTDIR)$(libdir)/pkgconfig/$(LIBNAME).pc
  259 +
  260 +
  261 +#---[ Misc Targets ]---------------------------------------------------------------------
  262 +
  263 +$(POTDIR)/$(LIBNAME).pot: \
  264 + $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
145 265
146 @rm -f $@ 266 @rm -f $@
147 @mkdir -p `dirname $@` 267 @mkdir -p `dirname $@`
148 @$(MSGCAT) --sort-output $^ > $@ 268 @$(MSGCAT) --sort-output $^ > $@
149 269
150 -$(SRCDIR): \  
151 - clean  
152 -  
153 - @$(MKDIR) $@  
154 - @$(INSTALL_DATA) *.c *.h *.in *.xbm *.cbp genmarshal $@ 270 +locale: \
  271 + $(POTDIR)/$(LIBNAME).pot
155 272
156 273
157 #---[ Debug Targets ]-------------------------------------------------------------------- 274 #---[ Debug Targets ]--------------------------------------------------------------------
158 275
159 Debug: \ 276 Debug: \
160 - $(BASEDIR)/.obj/Debug/$(MODULE_NAME).a 277 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  278 +
  279 +$(BINDBG)/$(LIBNAME)@EXEEXT@: \
  280 + $(foreach SRC, $(basename $(TEST_SOURCES)), $(OBJDBG)/$(SRC).o) \
  281 + $(BINDBG)/$(LIBNAME)@DLLEXT@
  282 +
  283 + @$(MKDIR) `dirname $@`
  284 + @echo $< ...
  285 + @$(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
161 286
162 -$(BASEDIR)/.obj/Debug/$(MODULE_NAME).a: \ 287 +run: \
  288 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  289 +
  290 +ifeq ($(VALGRIND),no)
  291 +
  292 + @LD_LIBRARY_PATH=$(BINDBG) \
  293 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  294 +
  295 +else
  296 + @touch valgrind.suppression
  297 +
  298 + @LD_LIBRARY_PATH=$(BINDBG) \
  299 + $(VALGRIND) --leak-check=full --track-origins=yes --gen-suppressions=all --suppressions=valgrind.suppression \
  300 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  301 +endif
  302 +
  303 +
  304 +$(BINDBG)/$(LIBNAME)@DLLEXT@: \
  305 + $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  306 +
  307 + @echo $< ...
  308 + @rm -f $@
  309 + @$(LN_S) \
  310 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  311 + $@
  312 +
  313 +$(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  314 + $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  315 +
  316 + @rm -f $@
  317 + @$(LN_S) \
  318 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  319 + $@
  320 +
  321 +$(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
163 $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) 322 $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
164 323
165 - @echo $@ ...  
166 @$(MKDIR) `dirname $@` 324 @$(MKDIR) `dirname $@`
167 - @$(AR) rcs $@ $^ 325 + @echo $< ...
  326 + @$(LD) \
  327 + -shared -Wl,-soname,$(@F) \
  328 + -o $@ \
  329 + $(LDFLAGS) \
  330 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
  331 + $(LIBS)
168 332
169 -#---[ Clean Targets]--------------------------------------------------------------------- 333 +#---[ Clean Targets ]--------------------------------------------------------------------
  334 +
  335 +clean: \
  336 + cleanDebug \
  337 + cleanRelease
  338 +
  339 + @rm -fr $(BASEDIR)/.tmp/$(LIBNAME)
  340 + @rm -fr $(POTDIR)/$(LIBNAME)
170 341
171 cleanDebug: 342 cleanDebug:
172 343
173 - @rm -fr $(BASEDIR)/.obj/Debug/$(MODULE_NAME).a \  
174 - $(OBJDBG) 344 + @rm -fr $(OBJDBG)
  345 + @rm -fr $(BINDBG)
175 346
176 cleanRelease: 347 cleanRelease:
177 348
178 - @rm -fr $(BASEDIR)/.obj/Release/$(MODULE_NAME).a \  
179 - $(OBJRLS)  
180 - 349 + @rm -fr $(OBJRLS)
  350 + @rm -fr $(BINRLS)
181 @rm -fr $(POTDIR) 351 @rm -fr $(POTDIR)
  352 + @rm -f lib$(LIBNAME).pot
182 353
183 clean: \ 354 clean: \
184 cleanDebug \ 355 cleanDebug \
185 cleanRelease 356 cleanRelease
186 357
187 - 358 +
autogen.sh 0 → 100755
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
  1 +#!/bin/bash
  2 +
  3 +test -n "$srcdir" || srcdir=`dirname "$0"`
  4 +test -n "$srcdir" || srcdir=.
  5 +
  6 +olddir=`pwd`
  7 +cd "$srcdir"
  8 +
  9 +aclocal
  10 +if test $? != 0 ; then
  11 + echo "aclocal failed."
  12 + exit -1
  13 +fi
  14 +
  15 +autoconf
  16 +if test $? != 0 ; then
  17 + echo "autoconf failed."
  18 + exit -1
  19 +fi
  20 +
  21 +mkdir -p scripts
  22 +automake --add-missing 2> /dev/null | true
  23 +
  24 +cd "$olddir"
  25 +test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
  26 +
  27 +
  28 +
  29 +