Commit d8474916cb0e19cfb7cbf7f4540f9542e55aa178

Authored by Perry Werneck
1 parent bb90989d

Creating Makefile for C++ library.

configure.ac
... ... @@ -50,6 +50,7 @@ AM_ICONV
50 50  
51 51 dnl Checks for programs.
52 52 AC_PROG_CC
  53 +AC_PROG_CXX
53 54 AC_PROG_SED
54 55 AC_PROG_LN_S
55 56 AC_PATH_TOOL([AR], [ar], [ar])
... ... @@ -450,6 +451,8 @@ AC_CONFIG_FILES(src/lib3270/Makefile)
450 451 AC_CONFIG_FILES(src/lib3270/version.c)
451 452 AC_CONFIG_FILES(src/lib3270/lib3270.pc)
452 453  
  454 +AC_CONFIG_FILES(src/lib3270++/Makefile)
  455 +
453 456 dnl ---------------------------------------------------------------------------
454 457 dnl Output the generated config.status script.
455 458 dnl ---------------------------------------------------------------------------
... ...
src/lib3270++/Makefile.in 0 → 100644
... ... @@ -0,0 +1,364 @@
  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., 59 Temple
  19 +# Place, Suite 330, Boston, MA, 02111-1307, USA
  20 +#
  21 +# Contatos:
  22 +#
  23 +# perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  24 +# erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
  25 +#
  26 +
  27 +#---[ Library configuration ]------------------------------------------------------------
  28 +
  29 +LIBNAME=lib@LIB3270_NAME@++
  30 +
  31 +SOURCES= \
  32 + $(wildcard *.cc)
  33 +
  34 +TEST_SOURCES= \
  35 + $(wildcard testprogram/*.cc)
  36 +
  37 +#---[ Tools ]----------------------------------------------------------------------------
  38 +
  39 +CXX=@CXX@
  40 +HOST_CC=@HOST_CC@
  41 +LD=@CXX@
  42 +LN_S=@LN_S@
  43 +MKDIR=@MKDIR_P@
  44 +INSTALL=@INSTALL@
  45 +INSTALL_DATA=@INSTALL_DATA@
  46 +INSTALL_PROGRAM=@INSTALL_PROGRAM@
  47 +XGETTEXT=@XGETTEXT@
  48 +MSGCAT=@MSGCAT@
  49 +WINDRES=@WINDRES@
  50 +AR=@AR@
  51 +VALGRIND=@VALGRIND@
  52 +
  53 +#---[ Paths ]----------------------------------------------------------------------------
  54 +
  55 +prefix=@prefix@
  56 +exec_prefix=@exec_prefix@
  57 +bindir=@bindir@
  58 +sbindir=@sbindir@
  59 +libdir=@libdir@
  60 +includedir=@includedir@
  61 +datarootdir=@datarootdir@
  62 +localedir=@localedir@
  63 +docdir=@docdir@
  64 +sysconfdir=@sysconfdir@
  65 +
  66 +BASEDIR=@BASEDIR@
  67 +
  68 +POTDIR=$(BASEDIR)/.pot
  69 +
  70 +OBJDIR=$(BASEDIR)/.obj/$(LIBNAME)
  71 +OBJDBG=$(OBJDIR)/Debug
  72 +OBJRLS=$(OBJDIR)/Release
  73 +
  74 +BINDIR=$(BASEDIR)/.bin
  75 +BINDBG=$(BINDIR)/Debug
  76 +BINRLS=$(BINDIR)/Release
  77 +
  78 +#---[ Rules ]----------------------------------------------------------------------------
  79 +
  80 +DEPENDS= \
  81 + Makefile \
  82 + ../include/*.h \
  83 + ../include/lib3270/*.h \
  84 + ../lib3270/*.h
  85 +
  86 +
  87 +CFLAGS= \
  88 + @CFLAGS@ \
  89 + -g \
  90 + -I../include
  91 + -DBUILD_DATE=`date +%Y%m%d`
  92 +
  93 +LIBS= \
  94 + @LIBS@ \
  95 + @LIBICONV@ \
  96 + @INTL_LIBS@
  97 +
  98 +#---[ Debug Rules ]----------------------------------------------------------------------
  99 +
  100 +$(OBJDBG)/%.o: \
  101 + %.cc \
  102 + $(DEPENDS)
  103 +
  104 + @echo $< ...
  105 + @$(MKDIR) `dirname $@`
  106 + @$(CXX) \
  107 + $(CFLAGS) \
  108 + -Wall -Wextra -fstack-check \
  109 + -DDEBUG=1 \
  110 + -o $@ -c $<
  111 +
  112 +$(OBJDBG)/%.o: \
  113 + %.rc
  114 +
  115 + @echo $< ...
  116 + @$(MKDIR) `dirname $@`
  117 + @$(WINDRES) $< -O coff -o $@
  118 +
  119 +#---[ Release Rules ]--------------------------------------------------------------------
  120 +
  121 +$(OBJRLS)/%.o: \
  122 + %.cc \
  123 + $(DEPENDS)
  124 +
  125 + @echo $< ...
  126 + @$(MKDIR) `dirname $@`
  127 + @$(CXX) \
  128 + $(CFLAGS) \
  129 + -DNDEBUG=1 \
  130 + -o $@ -c $<
  131 +
  132 +$(OBJRLS)/%.o: \
  133 + %.rc
  134 +
  135 + @echo $< ...
  136 + @$(MKDIR) `dirname $@`
  137 + @$(WINDRES) $< -O coff -o $@
  138 +
  139 +#---[ Misc Rules ]-----------------------------------------------------------------------
  140 +
  141 +$(POTDIR)/$(LIBNAME)/%.pot: \
  142 + %.cc
  143 +
  144 + @echo $(notdir $@) ...
  145 + @$(MKDIR) `dirname $@`
  146 + @$(XGETTEXT) \
  147 + --language=C \
  148 + --keyword=_ \
  149 + --keyword=N_ \
  150 + --keyword=MSG_:2 \
  151 + --output=$@ \
  152 + $<
  153 + @touch $@
  154 +
  155 +$(POTDIR)/$(LIBNAME)/%.pot: \
  156 + %.rc
  157 +
  158 + @echo $< ...
  159 + @$(MKDIR) `dirname $@`
  160 + @touch $@
  161 +
  162 +#---[ Release Targets ]------------------------------------------------------------------
  163 +
  164 +all: \
  165 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  166 + $(BINRLS)/$(LIBNAME).a \
  167 + $(POTDIR)/$(LIBNAME).pot
  168 +
  169 +
  170 +Release: \
  171 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  172 + $(BINRLS)/$(LIBNAME).a
  173 +
  174 +$(BINRLS)/$(LIBNAME)@DLLEXT@: \
  175 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  176 +
  177 + @echo $< ...
  178 + @rm -f $@
  179 + @$(LN_S) \
  180 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  181 + $@
  182 +
  183 +$(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  184 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  185 +
  186 + @rm -f $@
  187 + @$(LN_S) \
  188 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  189 + $@
  190 +
  191 +$(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  192 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
  193 +
  194 + @$(MKDIR) `dirname $@`
  195 + @echo $< ...
  196 + @$(LD) \
  197 + -shared -Wl,-soname,$(@F) \
  198 + -o $@ \
  199 + $(LDFLAGS) \
  200 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) \
  201 + $(LIBS)
  202 +
  203 +$(BINRLS)/$(LIBNAME).a: \
  204 + $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o)
  205 +
  206 + @echo $@ ...
  207 + @$(MKDIR) `dirname $@`
  208 + @$(AR) rcs $@ $^
  209 +
  210 +
  211 +#---[ Install Targets ]------------------------------------------------------------------
  212 +
  213 +install: \
  214 + $(BINRLS)/$(LIBNAME)@DLLEXT@ \
  215 + $(BINRLS)/$(LIBNAME).a
  216 +
  217 + # Install library
  218 + @mkdir -p $(DESTDIR)$(libdir)
  219 +
  220 + @$(INSTALL_PROGRAM) \
  221 + $(BINRLS)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  222 + $(DESTDIR)$(libdir)
  223 +
  224 +
  225 + @$(LN_S) \
  226 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  227 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  228 +
  229 + @$(LN_S) \
  230 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  231 + $(DESTDIR)$(libdir)/$(LIBNAME)@DLLEXT@
  232 +
  233 + # Install static library
  234 + @$(INSTALL_DATA) \
  235 + $(BINRLS)/$(LIBNAME).a \
  236 + $(DESTDIR)$(libdir)
  237 +
  238 + # Install SDK
  239 +
  240 + @mkdir -p $(DESTDIR)$(includedir)/$(LIBNAME)
  241 +
  242 + @$(INSTALL_DATA) \
  243 + ../include/$(LIBNAME)/*.h \
  244 + $(DESTDIR)$(includedir)/$(LIBNAME)
  245 +
  246 + @$(INSTALL_DATA) \
  247 + ../include/$(LIBNAME).h \
  248 + $(DESTDIR)$(includedir)/$(LIBNAME).h
  249 +
  250 + # Install PKG-CONFIG files
  251 + @mkdir -p $(DESTDIR)$(libdir)/pkgconfig
  252 + @$(INSTALL_DATA) \
  253 + $(LIBNAME).pc \
  254 + $(DESTDIR)$(libdir)/pkgconfig/$(LIBNAME).pc
  255 +
  256 +
  257 +#---[ Misc Targets ]---------------------------------------------------------------------
  258 +
  259 +$(BASEDIR)/.tmp/$(LIBNAME)/fallbacks.c: \
  260 + X3270.xad \
  261 + $(wildcard mkfb/*.c)
  262 +
  263 + @$(MKDIR) `dirname $@`
  264 + @$(MKDIR) $(BINDIR)
  265 + @echo $< ...
  266 + @$(HOST_CC) -g -o $(BINDIR)/mkfb@EXEEXT@ $(wildcard mkfb/*.c)
  267 + @$(BINDIR)/mkfb@EXEEXT@ -c X3270.xad $@
  268 +
  269 +$(POTDIR)/$(LIBNAME).pot: \
  270 + $(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(LIBNAME)/$(SRC).pot)
  271 +
  272 + @rm -f $@
  273 + @mkdir -p `dirname $@`
  274 + @$(MSGCAT) --sort-output $^ > $@
  275 +
  276 +locale: \
  277 + lib$(LIBNAME).pot
  278 +
  279 +
  280 +#---[ Debug Targets ]--------------------------------------------------------------------
  281 +
  282 +Debug: \
  283 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  284 +
  285 +$(BINDBG)/$(LIBNAME)@EXEEXT@: \
  286 + $(foreach SRC, $(basename $(TEST_SOURCES)), $(OBJDBG)/$(SRC).o) \
  287 + $(BINDBG)/$(LIBNAME)@DLLEXT@
  288 +
  289 + @$(MKDIR) `dirname $@`
  290 + @echo $< ...
  291 + $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
  292 +
  293 +run: \
  294 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  295 +
  296 +ifeq ($(VALGRIND),no)
  297 +
  298 + @LD_LIBRARY_PATH=$(BINDBG) \
  299 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  300 +
  301 +else
  302 + @touch valgrind.suppression
  303 +
  304 + @LD_LIBRARY_PATH=$(BINDBG) \
  305 + $(VALGRIND) --leak-check=full --track-origins=yes --gen-suppressions=all --suppressions=valgrind.suppression \
  306 + $(BINDBG)/$(LIBNAME)@EXEEXT@
  307 +endif
  308 +
  309 +
  310 +$(BINDBG)/$(LIBNAME)@DLLEXT@: \
  311 + $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@
  312 +
  313 + @echo $< ...
  314 + @rm -f $@
  315 + @$(LN_S) \
  316 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@ \
  317 + $@
  318 +
  319 +$(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@: \
  320 + $(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@
  321 +
  322 + @rm -f $@
  323 + @$(LN_S) \
  324 + $(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
  325 + $@
  326 +
  327 +$(BINDBG)/$(LIBNAME)@DLLEXT@.@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
  328 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o)
  329 +
  330 + @$(MKDIR) `dirname $@`
  331 + @echo $< ...
  332 + @$(LD) \
  333 + -shared -Wl,-soname,$(@F) \
  334 + -o $@ \
  335 + $(LDFLAGS) \
  336 + $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) \
  337 + $(LIBS)
  338 +
  339 +#---[ Clean Targets ]--------------------------------------------------------------------
  340 +
  341 +clean: \
  342 + cleanDebug \
  343 + cleanRelease
  344 +
  345 + @rm -fr $(BASEDIR)/.tmp/$(LIBNAME)
  346 + @rm -fr $(POTDIR)/$(LIBNAME)
  347 +
  348 +cleanDebug:
  349 +
  350 + @rm -fr $(OBJDBG)
  351 + @rm -fr $(BINDBG)
  352 +
  353 +cleanRelease:
  354 +
  355 + @rm -fr $(OBJRLS)
  356 + @rm -fr $(BINRLS)
  357 + @rm -fr $(POTDIR)
  358 + @rm -f lib$(LIBNAME).pot
  359 +
  360 +clean: \
  361 + cleanDebug \
  362 + cleanRelease
  363 +
  364 +
... ...
src/lib3270/Makefile.in
... ... @@ -293,7 +293,7 @@ $(BINDBG)/$(LIBNAME)@EXEEXT@: \
293 293  
294 294 @$(MKDIR) `dirname $@`
295 295 @echo $< ...
296   - $(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
  296 + @$(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
297 297  
298 298 run: \
299 299 $(BINDBG)/$(LIBNAME)@EXEEXT@
... ...