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

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

PACKAGE_NAME=@PACKAGE_NAME@
PACKAGE_VERSION=@PACKAGE_VERSION@
PACKAGE_TARNAME=@PACKAGE_TARNAME@

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

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@
includedir=@includedir@
datarootdir=@datarootdir@
localedir=@localedir@
docdir=@docdir@
sysconfdir=@sysconfdir@
mandir=@mandir@

BINDIR=.bin
EXEEXT=@EXEEXT@
DBGLIB=-L../../$(BINDIR)/Debug@DLLDIR@ -l3270
RLSLIB=-L../../$(BINDIR)/Release@DLLDIR@ -l3270
TMPDIR=.tmp
GLOBAL_DEPS=$(PWD)/include/*.h $(PWD)/include/lib3270/*.h
LANG_FILES=$(wildcard po/*.po)

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

VALGRIND=@VALGRIND@
MKDIR=@MKDIR_P@
INSTALL=@INSTALL@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_DATA=@INSTALL_DATA@
RPMBUILD=@RPMBUILD@
DPKGBUILD=@DPKGBUILD@
CONVERT=@CONVERT@
MSGCAT=@MSGCAT@
MSGINIT=@MSGINIT@
MSGMERGE=@MSGMERGE@
MSGFMT=@MSGFMT@
XML2POT=src/tools/xml2pot@EXEEXT@
SHELL=@SHELL@
AMTAR=@AMTAR@
DBGCMDPREFIX=@DBGCMDPREFIX@
MAKENSIS=@MAKENSIS@

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

%.tar.bz2: %.tar
	@echo "  GEN  `basename $@`"
	@bzip2 --compress -9 --stdout $< > $@
	@chmod 0644 $@

%.tar.gz: %.tar
	@echo "  GEN  `basename $@`"
	@gzip -9 --stdout $< > $@
	@chmod 0644 $@


src/pw3270/%.png: src/pw3270/pixmaps/%.svg
ifneq ($(CONVERT),no)
	@echo "  GEN  `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CONVERT) --format=png --output=$@ $<
endif

%.png: src/pw3270/pixmaps/%.svg
ifneq ($(CONVERT),no)
	@echo "  GEN  `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CONVERT) --format=png --output=$@ $<
endif


debian/%.install: src/%/Makefile
	@$(MAKE) DEBDIR=../../debian -C $(dir $^) ../../$@

$(BINDIR)/pot/%.pot: src/%/Makefile
	@$(MAKE) BINDIR=../../$(BINDIR) -C $(dir $^) ../../$@

po/%.po: $(PACKAGE_NAME).po
	@echo "  GEN  `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(MKDIR) $(TMPDIR)/po
	@cp $@ $(TMPDIR)/$@ 2> $(TMPDIR)/cp.err > $(TMPDIR)/cp.out || true
	@touch $(TMPDIR)/$@
	@$(MSGMERGE) $(TMPDIR)/$@ $(PACKAGE_NAME).po --output-file=$@

$(BINDIR)/Release/$(localedir)/%/LC_MESSAGES/$(PACKAGE_NAME).mo: po/%.po
	@echo "  FMT  `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(MSGFMT) -c -v -o $@ $^

src/tools/%@EXEEXT@: src/tools/%.c
	@make -C src/tools $(notdir $@)

#---[ Release targets ]--------------------------------------------------------

all: $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) locale filelist

Release: $(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT) locale pixmaps

$(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT): src/pw3270/* $(BINDIR)/Release@DLLDIR@/@DLLPREFIX@3270@DLLEXT@ $(DEPENDS)
	@$(MAKE) BINDIR="../../$(BINDIR)" LIB3270_LIBS="$(RLSLIB)" LIB3270_CFLAGS="-I../../src/include" -C src/pw3270 ../../$(BINDIR)/Release/$(PACKAGE_TARNAME)$(EXEEXT)

$(BINDIR)/Release@DLLDIR@/@DLLPREFIX@3270@DLLEXT@: src/lib3270/* src/include/lib3270/* src/include/* Makefile
	@$(MAKE) BINRLS=../../.bin/Release@DLLDIR@ -C src/lib3270 ../../.bin/Release@DLLDIR@/@DLLPREFIX@3270@DLLEXT@

#---[ File lists ]-------------------------------------------------------------

filelist: debian/lib3270.install debian/lib3270-dev.install debian/pw3270.install

debian/lib3270-dev.install: Makefile
	@echo "  GEN  `basename $@`"
	@$(MKDIR) `dirname $@`
	@echo "$(includedir)/lib3270.h" > $@
	@echo "$(includedir)/lib3270" >> $@
	@echo "$(datarootdir)/@PACKAGE_NAME@/ui/99debug.xml" >> $@
	@echo "$(libdir)/pkgconfig/*.pc" >: $@

#---[ Debug targets ]----------------------------------------------------------

Debug: $(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT)

$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT): src/pw3270/* $(BINDIR)/Debug@DLLDIR@/@DLLPREFIX@3270@DLLEXT@ $(DEPENDS)
	@$(MAKE) BINDIR="../../$(BINDIR)" LIB3270_LIBS="$(DBGLIB)" LIB3270_CFLAGS="-I../../src/include" -C src/pw3270 ../../$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT)

$(BINDIR)/Debug@DLLDIR@/@DLLPREFIX@3270@DLLEXT@: src/lib3270/* src/include/lib3270/* src/include/* Makefile
	@$(MAKE) BINDBG=../../.bin/Debug@DLLDIR@ -C src/lib3270 ../../.bin/Debug@DLLDIR@/@DLLPREFIX@3270@DLLEXT@

run: $(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT) $(PACKAGE_NAME).png $(PACKAGE_NAME)-logo.png
	@$(DBGCMDPREFIX) "$(BINDIR)/Debug/$(PACKAGE_TARNAME)$(EXEEXT)"

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

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

tgz: $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz

bz2: $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2

rpm: $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2
ifneq ($(RPMBUILD),no)
	@$(MKDIR) $(PWD)/$(TMPDIR)/rpmbuild
	@TMPDIR=$(PWD)/$(TMPDIR)/rpmbuild $(RPMBUILD) --define="_sourcedir $(PWD)" -ba --clean $(PACKAGE_TARNAME).spec
	@rm -fr $(PWD)/$(TMPDIR)/rpmbuild
endif

deb: clean
ifneq ($(DPKGBUILD),no)
	$(DPKGBUILD) -rfakeroot -uc -us
endif


srpm: $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2
ifneq ($(RPMBUILD),no)
	@$(RPMBUILD) --define="_srcrpmdir $(PWD)" -bs $(PACKAGE_TARNAME).spec
endif

nsi: Release
ifneq ($(MAKENSIS),no)
	@chmod +x makegtkruntime.sh
	@./makegtkruntime.sh
	@$(MAKENSIS) $(PACKAGE_NAME).nsi
endif

$(PACKAGE_NAME).po: $(TMPDIR)/$(PACKAGE_NAME).pot
	@echo "  INIT `basename $@`"
	@$(MSGINIT) --no-translator -o $@ --locale=en_US -i $^

$(BINDIR)/pot/ui.pot: $(XML2POT) $(wildcard ui/*.xml)
	@echo "  TEXT `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(XML2POT) $(wildcard ui/*.xml) > $@

$(TMPDIR)/$(PACKAGE_NAME).pot: $(BINDIR)/pot/pw3270.pot $(BINDIR)/pot/lib3270.pot $(BINDIR)/pot/ui.pot
	@echo "  TEXT `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(MSGCAT) --sort-output $^ | sed "s&VERSION&$(PACKAGE_VERSION)&;s&CHARSET&UTF-8&;s&PACKAGE&$(PACKAGE_NAME)&g" > $@

pixmaps: src/pw3270/$(PACKAGE_NAME).png src/pw3270/$(PACKAGE_NAME)-logo.png

$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar: clean pixmaps filelist
	@rm -fr $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
#	@find src -name Makefile -exec rm -f {} \;
	@$(MKDIR) $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp *.m4 $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@NOCONFIGURE=1 ./autogen.sh $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp ChangeLog $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp configure.ac $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
#	@cp configure $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp *.in $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp AUTHORS LICENSE $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp -r src $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@cp -r scripts $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
#	@cp $(PACKAGE_TARNAME).spec $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)

	@$(MKDIR) $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/ui
	@cp ui/* $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/ui

	@$(MKDIR) $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/debian
	@cp debian/* $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/debian

	@$(MKDIR) $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/po
	@cp po/*.po $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/po

	@$(MKDIR) $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/man
	@cp -r man/* $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/man

	@$(AMTAR) --create --directory $(TMPDIR) --exclude-vcs --owner=root --group=root --file=$@ $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)

	@rm -fr $(TMPDIR)/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
	@echo $@

install: install-sdk install-lib install-app install-man

install-app: install-locale
	@$(MAKE) BINDIR="../../$(BINDIR)" LIB3270_LIBS="$(RLSLIB)" LIB3270_CFLAGS="-I../../src/include" -C src/pw3270 install
	@$(MKDIR) $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)/ui
	@$(INSTALL_DATA) ui/*.xml $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)/ui

install-lib:
	@$(MAKE) BINRLS="../../.bin/Release@DLLDIR@" -C src/lib3270 install

locale: $(foreach MO, $(basename $(LANG_FILES)), $(BINDIR)/Release/$(localedir)/$(notdir $(MO))/LC_MESSAGES/$(PACKAGE_NAME).mo)

install-locale: $(foreach MO, $(basename $(LANG_FILES)), $(BINDIR)/Release/$(localedir)/$(notdir $(MO))/LC_MESSAGES/$(PACKAGE_NAME).mo)
	@echo -e $(foreach MO, $(notdir $(basename $(LANG_FILES))), mkdir -p $(DESTDIR)/$(localedir)/$(MO)/LC_MESSAGES\\n$(INSTALL_DATA) $(BINDIR)/Release/$(localedir)/$(MO)/LC_MESSAGES/$(PACKAGE_NAME).mo $(DESTDIR)/$(localedir)/$(MO)/LC_MESSAGES/$(PACKAGE_NAME).mo \\n ) | $(SHELL)


install-man:
	@$(MKDIR) $(DESTDIR)$(mandir)/man1
	@$(INSTALL_DATA) man/man1/pw3270.1 $(DESTDIR)/$(mandir)/man1/pw3270.1
	@$(MKDIR) $(DESTDIR)$(mandir)/man5
	@$(INSTALL_DATA) man/man5/pw3270.5 $(DESTDIR)/$(mandir)/man5/pw3270.5


install-sdk:
	@$(MKDIR) $(DESTDIR)$(includedir)/lib3270
	@$(INSTALL_DATA) src/include/lib3270.h $(DESTDIR)/$(includedir)
	@$(INSTALL_DATA) src/include/lib3270/config.h $(DESTDIR)/$(includedir)/lib3270
	@$(INSTALL_DATA) src/include/lib3270/selection.h $(DESTDIR)/$(includedir)/lib3270
	@$(INSTALL_DATA) src/include/lib3270/popup.h $(DESTDIR)/$(includedir)/lib3270
	@$(INSTALL_DATA) src/include/v3270.h $(DESTDIR)/$(includedir)
	@$(INSTALL_DATA) src/include/pw3270.h $(DESTDIR)/$(includedir)
	@$(MKDIR) $(DESTDIR)/$(libdir)/pkgconfig
	@$(INSTALL_DATA) lib3270.pc $(DESTDIR)/$(libdir)/pkgconfig
	@$(INSTALL_DATA) pw3270.pc $(DESTDIR)/$(libdir)/pkgconfig

clean:
	@rm -fr .obj
	@rm -fr .bin
	@rm -fr .tmp
	@rm -f $(PACKAGE_NAME).po
	@make -C src/lib3270 clean
	@make -C src/pw3270 clean
	@make -C src/tools clean
	@rm -f $(PACKAGE_NAME).png
	@rm -f $(PACKAGE_NAME)-logo.png
	@rm -f *.log
	@echo "$@"

cleanDebug: clean
	@echo "$@"

distclean: clean
	@make -C src/pw3270 distclean
	@rm -f debian/*.install
	@rm -f src/pw3270/Makefile
	@rm -f config.status
	@rm -f src/lib3270/mkversion.sh
	@rm -f src/lib3270/Makefile
	@rm -f src/include/lib3270/config.h
	@rm -f src/pw3270/uiparser/Makefile
	@rm -fr autom4te.cache
	@rm -f *.pc
	@rm -f $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar*

	@rm -f Makefile
	@echo "$@"