Makefile.in 8.08 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@
PLUGINS=@PLUGINS@

#---[ 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@
SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
POTDIR=$(BASEDIR)/.pot

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

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

INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
MKDIR=@MKDIR_P@
MSGCAT=@MSGCAT@
AMTAR=@AMTAR@
RPMBUILD=@RPMBUILD@

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

DEPENDS=$(BASEDIR)/src/include/*.h $(BASEDIR)/src/include/lib3270/*.h $(BASEDIR)/src/include/pw3270/*.h Makefile

$(BINDBG)/%@DLLEXT@: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(BINDBG)/plugins/%@DLLEXT@: \
	$(DEPENDS) \
	./src/plugins/%/*
 
	@$(MAKE) -C src/plugins/$(basename $(notdir $@)) $@

$(BINDBG)/%@EXEEXT@: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(BINRLS)/%@DLLEXT@: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(BINRLS)/%.a: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(BINRLS)/plugins/%@DLLEXT@: \
	$(DEPENDS) \
	./src/plugins/%/*
 
	@$(MAKE) -C src/plugins/$(basename $(notdir $@)) $@

$(POTDIR)/%.pot: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(POTDIR)/%.pot: \
	./%/*
 
	@$(MAKE) -C $(basename $(notdir $@)) $@

$(POTDIR)/plugins/%.pot: \
	$(DEPENDS) \
	./src/plugins/%/*
 
	@$(MAKE) -C src/plugins/$(basename $(notdir $@)) $@

$(DESTDIR)$(libdir)/%@DLLEXT@: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) DESTDIR=$(DESTDIR) -C src/$(basename $(notdir $@)) install

$(DESTDIR)$(libdir)/%.a: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) DESTDIR=$(DESTDIR) -C src/$(basename $(notdir $@)) $@


$(DESTDIR)$(libdir)/$(PACKAGE_TARNAME)-plugins/%@DLLEXT@: \
	$(DEPENDS) \
	./src/plugins/%/*

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

$(BINRLS)/%@EXEEXT@: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) -C src/$(basename $(notdir $@)) $@

$(DESTDIR)$(bindir)/%@EXEEXT@: \
	$(DEPENDS) \
	./src/%/*
 
	@$(MAKE) DESTDIR=$(DESTDIR) -C src/$(basename $(notdir $@)) install

$(SRCDIR)/%: \
	%/Makefile

	@make -C `dirname $<` $@

$(BINDIR)/%.png: \
	branding/%.svg

	@$(MAKE) -C branding $@	

$(BINDIR)/%.png: \
	branding/%.png

	@$(MAKE) -C branding $@	


%.tar.bz2: \
	%.tar

	@echo $< ...
	@bzip2 --compress -9 --stdout $< > $@
	@chmod 0644 $@

%.tar.gz: \
	%.tar

	@echo $< ...
	@gzip -9 --stdout $< > $@
	@chmod 0644 $@


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

all: \
	$(BINRLS)/lib3270@DLLEXT@ \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ \
	$(foreach PLG, $(PLUGINS), $(BINRLS)/plugins/$(PLG)@DLLEXT@) \
	$(BINDIR)/$(PACKAGE_NAME).png \
	$(BINDIR)/$(PACKAGE_NAME)-logo.png \
	locale/$(PACKAGE_TARNAME).pot

Release: \
	$(BINRLS)/lib3270@DLLEXT@ \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ \
	$(foreach PLG, $(PLUGINS), $(BINRLS)/plugins/$(PLG)@DLLEXT@) \
	$(BINDIR)/$(PACKAGE_NAME).png \
	$(BINDIR)/$(PACKAGE_NAME)-logo.png \
	locale/$(PACKAGE_TARNAME).pot

locale/$(PACKAGE_TARNAME).pot: \
	$(POTDIR)/lib3270.pot \
	$(POTDIR)/pw3270.pot \
	$(POTDIR)/ui.pot \
	$(foreach PLG, $(PLUGINS), $(POTDIR)/plugins/$(PLG).pot)

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

install: \
	install-lib \
	install-app \
	install-sdk \
	$(foreach PLG, $(PLUGINS), $(DESTDIR)$(libdir)/$(PACKAGE_TARNAME)-plugins/$(PLG)@DLLEXT@)

install-lib: \
	$(DESTDIR)$(libdir)/lib3270@DLLEXT@ \

install-app: \
	install-branding \
	$(DESTDIR)$(bindir)/$(PACKAGE_TARNAME)@EXEEXT@ \
	locale/$(PACKAGE_TARNAME).pot

	@$(MKDIR) $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)
	@$(INSTALL_DATA) conf/colors.conf $(DESTDIR)$(datarootdir)/$(PACKAGE_NAME)

	@$(MAKE) -C ui install
	@$(MAKE) -C locale install

install-sdk:

	@$(MAKE) -C sdk install
	@$(MAKE) -C src/libpw3270cpp install

install-branding:

	@$(MAKE) -C branding install

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

Debug: \
	$(BINDBG)/lib3270@DLLEXT@ \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@ \
	$(foreach PLG, $(PLUGINS), $(BINDBG)/plugins/$(PLG)@DLLEXT@)

run: \
	$(BINDBG)/lib3270@DLLEXT@ \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@ \
	$(foreach PLG, $(PLUGINS), $(BINDBG)/plugins/$(PLG)@DLLEXT@)

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

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

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

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

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

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

	@$(MKDIR) $(BASEDIR)/rpm
	@$(MKDIR) $(BASEDIR)/rpm/SPECS
	@$(MKDIR) $(BASEDIR)/rpm/SOURCES
	@$(MKDIR) $(BASEDIR)/rpm/SRPMS
	@$(MKDIR) $(BASEDIR)/rpm/RPMS
	@$(MKDIR) $(BASEDIR)/rpm/BUILD
	@$(MKDIR) $(BASEDIR)/rpm/BUILDROOT
	@umask 002 ; $(RPMBUILD) \
		--define="_topdir $(BASEDIR)/rpm" \
		--define="_packager $(USER)@$(HOSTNAME)" \
		--clean \
		-ta $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2

$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar: \
	$(SRCDIR)

	@$(AMTAR) \
		--verbose \
		--format=ustar \
		--create \
		--exclude-vcs \
		--directory $(BASEDIR)/.src \
		--owner=root \
		--group=root \
		--file=$@ \
		$(PACKAGE_TARNAME)-@PACKAGE_VERSION@

$(SRCDIR): \
        clean \
		$(SRCDIR)/ui \
		$(SRCDIR)/src/lib3270 \
		$(SRCDIR)/src/pw3270 \
		$(SRCDIR)/src/libpw3270cpp \
		$(SRCDIR)/sdk \
		$(SRCDIR)/src/plugins/dbus3270 \
		$(SRCDIR)/src/plugins/hllapi


	@$(MKDIR) $(SRCDIR)
	@$(INSTALL_DATA) \
		*.in configure.ac *.cbp LICENCA LICENSE AUTHORS \
		$(SRCDIR)

	@$(MKDIR) $(SRCDIR)/win
	@$(INSTALL_DATA) \
		win/*.in \
		$(SRCDIR)/win

	@$(INSTALL_PROGRAM) \
		autogen.sh \
		$(SRCDIR)

	@$(MKDIR) $(SRCDIR)/locale
	@$(INSTALL_DATA) \
		locale/*.po \
		locale/*.in \
		$(SRCDIR)/locale

	@$(MKDIR) $(SRCDIR)/conf
	@$(INSTALL_DATA) \
		conf/*.conf \
		$(SRCDIR)/conf

	@$(MKDIR) $(SRCDIR)/rpm
	@$(INSTALL_DATA) \
		rpm/*.spec \
		$(SRCDIR)/rpm

	@$(MKDIR) $(SRCDIR)/debian
	@$(INSTALL_DATA) \
		debian/* \
		$(SRCDIR)/debian

	@$(MKDIR) $(SRCDIR)/scripts
	@$(INSTALL_DATA) \
		scripts/* \
		$(SRCDIR)/scripts

	@$(INSTALL_DATA) \
		rpm/*.spec \
		$(SRCDIR)


#---[ Clean Targets ]----------------------------------------------------------$(

cleanDebug:
	
	@$(MAKE) -C src/lib3270 cleanDebug
	@$(MAKE) -C src/pw3270 cleanDebug
	@$(MAKE) -C ui cleanDebug

cleanRelease:

	@$(MAKE) -C src/lib3270 cleanRelease
	@$(MAKE) -C src/pw3270 cleanRelease
	@$(MAKE) -C ui cleanRelease


clean: \
	cleanDebug \
	cleanRelease

	@rm -fr $(BINDIR)
	@rm -fr $(POTDIR)
	@rm -fr $(SRCDIR)
	@rm -fr $(BASEDIR)/.obj