Makefile.in 6.62 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)
#

#---[ Configuration values ]---------------------------------------------------

PACKAGE_NAME=@PACKAGE_NAME@
PACKAGE_VERSION=@PACKAGE_VERSION@
PACKAGE_LEVEL=@PACKAGE_LEVEL@
PACKAGE_TARNAME=@PACKAGE_TARNAME@
PACKAGE_DESCRIPTION=@PACKAGE_DESCRIPTION@
PRODUCT_NAME=@PRODUCT_NAME@

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

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@
datarootdir=@datarootdir@
localedir=${datarootdir}/locale
docdir=@docdir@
sysconfdir=@sysconfdir@
mandir=@mandir@

BASEDIR=@BASEDIR@

POTDIR=$(BASEDIR)/.pot
BINDIR=$(BASEDIR)/.bin
BINDBG=$(BINDIR)/Debug
BINRLS=$(BINDIR)/Release

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

CC=@CC@
LD=@CC@
LN_S=@LN_S@
MKDIR=@MKDIR_P@
MSGCAT=@MSGCAT@
INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
HELP2MAN=@HELP2MAN@
VALGRIND=@VALGRIND@

#---[ Release Targets ]------------------------------------------------------------------

all: \
	$(foreach MODULE, $(MODULES), $(BINRLS)/@DLLPREFIX@$(MODULE)@DLLEXT@) \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ \
	$(BINRLS)/libpw3270cpp.a \
	locale/$(PACKAGE_TARNAME).pot

Release: \
	application \
	$(BINRLS)/libpw3270cpp.a

application: \
	$(foreach MODULE, $(MODULES), $(BINRLS)/@DLLPREFIX@$(MODULE)@DLLEXT@) \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ \

$(BINRLS)/libpw3270cpp.a: \
	src/libpw3270cpp/*

	@$(MAKE) -C src/libpw3270cpp Release

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

$(BINDBG)/%@EXEEXT@: \
	$(foreach MODULE, $(MODULES), $(BINDBG)/@DLLPREFIX@$(MODULE)@DLLEXT@) \
	src/% \
	src/%/*

	@make -C src/$(notdir $(basename $@)) $@

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

$(BINRLS)/%@EXEEXT@: \
	$(foreach MODULE, $(MODULES), $(BINDBG)/@DLLPREFIX@$(MODULE)@DLLEXT@) \
        src/% \
        src/%/*

	@$(MAKE) -C src/$(notdir $(basename $@)) $@

publish-release: \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@

	@rm -f ~/public-html/release-$(PACKAGE_TARNAME)-@host_cpu@.zip
	@zip \
		-9 -D \
		~/public_html/release-$(PACKAGE_TARNAME)-@host_cpu@.zip \
		$(BINRLS)/*

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

install: \
	install-application \
	install-devel

install-devel: \
	$(foreach MODULE, $(MODULES), install-$(MODULE)) \
	locale/$(PACKAGE_TARNAME).pot \
	install-sdk

	@$(MAKE) \
		-C src/libpw3270cpp \
		DESTDIR=$(DESTDIR) \
		install

install-application: \
	install-pw3270 \
	install-branding \
	install-ui \
	install-locale

ifneq ($(HELP2MAN),no)
	@$(MKDIR) $(DESTDIR)/$(mandir)/man1
	@LD_LIBRARY_PATH=$(BINRLS) \
		$(HELP2MAN) \
		--version-string="$(PACKAGE_TARNAME) - $(PACKAGE_DESCRIPTION) Vrs. $(PACKAGE_VERSION)" \
		$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ | gzip --best --stdout - > $(DESTDIR)/$(mandir)/man1/$(PACKAGE_NAME).1.gz
endif

	@$(MKDIR) $(DESTDIR)$(libdir)/@PRODUCT_NAME@-plugins

install-%: \
	modules/%/Makefile

	@$(MAKE) -C `dirname $<` DESTDIR=$(DESTDIR) install

install-%: \
	src/%/Makefile

	@$(MAKE) -C `dirname $<` DESTDIR=$(DESTDIR) install

install-%: \
	%/Makefile

	@$(MAKE) -C `dirname $<` DESTDIR=$(DESTDIR) install


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

$(POTDIR)/%.pot: \
	$(DEPENDS) \
	./src/%/*
 
	@echo $(notdir $@) ...
	@mkdir -p `dirname $@`
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(POTDIR)/%.pot: \
	$(datarootdir)/$(PRODUCT_NAME)/pot/%.pot
 
	@echo $(notdir $@) ...
	@mkdir -p `dirname $@`
	@cp "$^" "$@"

$(POTDIR)/%.pot: \
	./modules/%/* \
	./modules/%/src/* \
	./modules/%/Makefile
 
	@echo $(notdir $@) ...
	@mkdir -p `dirname $@`
	@$(MAKE) -C modules/$(basename $(notdir $@)) $@

$(POTDIR)/%.pot: \
	./modules/%/%.pot
 
	@echo $(notdir $@) ...
	@mkdir -p `dirname $@`

	@echo cp $^ $@
	@false

$(POTDIR)/%.pot: \
	./%/*
 
	@echo $(notdir $@) ...
	@mkdir -p `dirname $@`
	@$(MAKE) -C $(basename $(notdir $@)) $@


#---[ Debug Targets ]--------------------------------------------------------------------

Debug: \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

publish-debug: \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

	@rm -f ~/public-html/debug-$(PACKAGE_TARNAME)-@host_cpu@.zip
	@zip \
		-9 -D \
		~/public_html/debug-$(PACKAGE_TARNAME)-@host_cpu@.zip \
		$(BINDBG)/*

$(BINDBG)/libpw3270cpp.a: \
	src/libpw3270cpp/*

	@$(MAKE) -C src/libpw3270cpp Debug

run: \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

	@LD_LIBRARY_PATH=$(BINDBG) $(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

mem-check: \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

ifeq ($(VALGRIND),no)

	@LD_LIBRARY_PATH=$(BINDBG) \
		$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

else
	@touch valgrind.suppression

	@LD_LIBRARY_PATH=$(BINDBG) \
		$(VALGRIND) --leak-check=full --track-origins=yes --gen-suppressions=all --suppressions=valgrind.suppression \
			$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@
endif

#---[ Misc Targets ]---------------------------------------------------------------------

locale: \
	locale/$(PACKAGE_TARNAME).pot

	$(MAKE) -C locale all

locale/$(PACKAGE_TARNAME).pot: \
	$(POTDIR)/pw3270.pot \
	$(datarootdir)/$(PRODUCT_NAME)/pot/lib3270.pot \
	$(datarootdir)/$(PRODUCT_NAME)/pot/libv3270.pot \
	$(POTDIR)/ui.pot

	@rm -f $@
	@mkdir -p `dirname $@`
	@$(MSGCAT) --sort-output $^ > $@

#---[ Clean Targets ]--------------------------------------------------------------------

clean: \
	cleanDebug \
	cleanRelease

	@rm -fr $(POTDIR)
	@rm -fr $(BINDIR)92

cleanDebug:

	@rm -fr $(OBJDBG)
	@rm -fr $(BINDBG)
	@$(MAKE) -C src/pw3270 $@

cleanRelease:

	@rm -fr $(OBJRLS)
	@rm -fr $(BINRLS)
	@$(MAKE) -C src/pw3270 $@