Makefile.in 5.75 KB
#
# "Software pw3270, desenvolvido com base nos códigos fontes do WC3270  e X3270
# (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
# aplicativos mainframe. Registro no INPI sob o nome G3270.
#
# Copyright (C) <2008> <Banco do Brasil S.A.>
#
# Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
# os termos da GPL v.2 - Licença Pública Geral  GNU,  conforme  publicado  pela
# Free Software Foundation.
#
# Este programa é distribuído na expectativa de  ser  útil,  mas  SEM  QUALQUER
# GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou  de  ADEQUAÇÃO
# A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
# obter mais detalhes.
#
# Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
# programa;  se  não, escreva para a Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA, 02111-1307, USA
#
# Contatos:
#
# perry.werneck@gmail.com	(Alexandre Perry de Souza Werneck)
# erico.mendonca@gmail.com	(Erico Mascarenhas de Mendonça)
# licinio@bb.com.br			(Licínio Luis Branco)
# kraucer@bb.com.br			(Kraucer Fernandes Mazuco)
#

PACKAGE=@PACKAGE_NAME@

DEBUG_CFLAGS=-DDEBUG=1 -g -Wall
DEPENDS ?= *.h ../include/*.h ../include/lib3270/*.h Makefile

#---[ Paths ]------------------------------------------------------------------

prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
localedir=@localedir@
datarootdir=@datarootdir@
sysconfdir=@sysconfdir@

#---[ Tools ]------------------------------------------------------------------

CFLAGS=@CFLAGS@ @DLL_CFLAGS@ -DDATAROOTDIR=\"$(datarootdir)\" -DSYSCONFDIR=\"$(sysconfdir)\" -I../include
SSL_CFLAGS=@LIBSSL_CFLAGS@

DLL_FLAGS=@DLL_FLAGS@
LDFLAGS=@LDFLAGS@

LIBS=@LIBS@ @LIBSSL_LIBS@ @INTL_LIBS@ @SOCKET_LIBS@ @LIBICONV@

#---[ Tools ]------------------------------------------------------------------

MKDIR=@MKDIR_P@
CC=@CC@
LD=@CC@
HOST_CC=@HOST_CC@
STRIP=@STRIP@
INSTALL=@INSTALL@
INSTALL_PROGRAM=$(INSTALL) -m 755
INSTALL_DATA=$(INSTALL) -m 644
VALGRIND=@VALGRIND@
XGETTEXT=@XGETTEXT@
MSGCAT=@MSGCAT@
LN_S=@LN_S@

#---[       ]------------------------------------------------------------------

OBJEXT=.o

#---[ Paths ]------------------------------------------------------------------

ROOTDIR ?= .
OBJDIR  ?= $(ROOTDIR)/.obj
BINDIR  ?= $(ROOTDIR)/.bin
TMPDIR  ?= $(ROOTDIR)/.tmp
DEPENDS ?= *.h Makefile

BINDBG  ?= $(BINDIR)/Debug
BINRLS  ?= $(BINDIR)/Release
LIBDBG  ?= $(BINDIR)/Debug@DLLDIR@

OBJDBG = $(OBJDIR)/Debug
OBJRLS = $(OBJDIR)/Release
LIBRLS = $(OBJDIR)/Release@DLLDIR@

#---[ Rules ]------------------------------------------------------------------

$(OBJDBG)/%.o: %.c $(DEPENDS)
	@echo "  CC   `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CC) $(DEBUG_CFLAGS) $(CFLAGS) $(SSL_CFLAGS) -o $@ -c $<

$(OBJRLS)/%.o: %.c $(DEPENDS)
	@echo "  CC   `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CC) $(CFLAGS) $(SSL_CFLAGS) -o $@ -c $<

$(TMPDIR)/pot/%.pot: %.c
	@echo "  TEXT `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(XGETTEXT)	--default-domain=$(PACKAGE) --language=C \
			--keyword=_ --keyword=N_ --keyword=MSG_:2 --output=$@ $<
	@touch $@


#---[ Sources ]----------------------------------------------------------------

include sources.mak

#---[ Misc targets ]-----------------------------------------------------------

Release: $(BINRLS)/lib3270@DLLEXT@

install: Release
	$(MKDIR) $(DESTDIR)$(libdir)
	$(INSTALL_PROGRAM) $(BINRLS)/lib3270@DLLEXT@.@VERSION@ $(DESTDIR)$(libdir)
	$(LN_S) lib3270@DLLEXT@.@VERSION@ $(DESTDIR)$(libdir)/lib3270@DLLEXT@.@MAJOR_VERSION@
	$(LN_S) lib3270@DLLEXT@.@MAJOR_VERSION@ $(DESTDIR)$(libdir)/lib3270@DLLEXT@

Debug: $(BINDBG)/lib3270@DLLEXT@

$(BINDBG)/lib3270@DLLEXT@: $(BINDBG)/lib3270@DLLEXT@.@VERSION@
	@rm -f $@
	@cd $(BINDBG) && $(LN_S) lib3270@DLLEXT@.@VERSION@ lib3270@DLLEXT@

$(BINDBG)/lib3270@DLLEXT@.@VERSION@: $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@)
	@echo "  CCLD `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(LD) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @LDLIBFLAGS@ -o $@ $^ $(LIBS)

$(BINRLS)/lib3270@DLLEXT@: $(BINRLS)/lib3270@DLLEXT@.@VERSION@
	@rm -f $@
	@cd $(BINRLS) && $(LN_S) lib3270@DLLEXT@.@VERSION@ lib3270@DLLEXT@

$(BINRLS)/lib3270@DLLEXT@.@VERSION@: $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC)@OBJEXT@)
	@echo "  CCLD `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(LD) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @LDLIBFLAGS@ -o $@ $^ $(LIBS)
	@$(STRIP) $@

$(BINDBG)/testprogram$(EXEEXT): $(OBJDBG)/testprogram.o $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@)
	@echo "  CCLD `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(LD) -o $@ $^ $(LIBS)

$(BINDIR)/pot/lib3270.pot: $(foreach SRC, $(basename $(SOURCES)), $(TMPDIR)/pot/$(SRC).pot)
	@rm -f $@
	@mkdir -p `dirname $@`
	@$(MSGCAT) --sort-output $^ > $@

test: $(BINDBG)/testprogram$(EXEEXT)

run: $(BINDBG)/testprogram$(EXEEXT)
ifeq ($(VALGRIND),no)
	@PATH="$(BINDIR)/Debug@DLLDIR@:$(PATH)" "$(BINDBG)/testprogram$(EXEEXT)"
else
	@PATH="$(BINDIR)/Debug@DLLDIR@:$(PATH)" G_DEBUG=gc-friendly G_SLICE=always-malloc \$(VALGRIND) --leak-check=full --suppressions=valgrind.suppression --gen-suppressions=all $(BINDBG)/testprogram$(EXEEXT)
endif

memchk: $(BINDBG)/testprogram$(EXEEXT)
ifeq ($(VALGRIND),no)
	@cd "$(ROOTDIR)" ; .bin/Debug/testprogram$(EXEEXT)
else
	@cd "$(ROOTDIR)" ; \$(VALGRIND) --leak-check=full --gen-suppressions=all $(BINDBG)/testprogram$(EXEEXT)
endif

version.c: ./mkversion.sh
	@echo "  GEN  $@"
	@chmod +x ./mkversion.sh
	@./mkversion.sh

fallbacks.c: X3270.xad mkfb.c
	@echo "  GEN  $@"
	@$(MKDIR) $(BINDIR)
	@$(HOST_CC) -g -o $(BINDIR)/mkfb@EXEEXT@ mkfb.c
	@$(BINDIR)/mkfb@EXEEXT@ -c X3270.xad $@

cleantest: clean

clean:
	@rm -fr .obj
	@rm -fr .bin
	@rm -fr .tmp
	@rm -f *.log
	@rm -f version.c
	@rm -f fallbacks.c
	@rm -f lib3270.pot
	@rm -fr debian