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

LIBNAME=@DLLPREFIX@jni3270@DLLEXT@
PLUGIN=j3270@DLLEXT@

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

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@
datadir=@datadir@
includedir=@includedir@
sysconfdir=@sysconfdir@
jnidir=@jnidir@
jvmjardir=@jvmjardir@
javadocdir=@javadocdir@

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

PACKAGE_NAME=pw3270
PACKAGE_TARNAME=pw3270-plugin-java
PACKAGE_VERSION=@PACKAGE_VERSION@

BASEDIR=@BASEDIR@
SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)

OBJDIR=$(BASEDIR)/.obj
OBJDBG=$(OBJDIR)/Debug
OBJRLS=$(OBJDIR)/Release

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

INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@

LN_S=@LN_S@
JAVA=@JAVA@
JAVAC=@JAVAC@
MKDIR=@MKDIR_P@
JAVADOC=@JAVADOC@
AMTAR=@AMTAR@
RPMBUILD=@RPMBUILD@

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

$(BINDIR)/java/%.class: \
	testprograms/%.java \
	$(BINDIR)/java/pw3270/terminal.class

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(JAVAC) -encoding utf-8 -cp $(BINDIR)/java -d $(BINDIR)/java $<


%.tar.bz2: \
	%.tar

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

%.tar.gz: \
	%.tar

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

install-%: \
	src/%/Makefile \
	all

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

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

all: \
	$(BINRLS)/$(LIBNAME) \
	$(BINRLS)/$(PLUGIN) \
	$(BINRLS)/pw3270.jar \
	javadoc

install: \
	install-jni \
	install-plugin \
	install-doc

install-doc: \
	javadoc

	@$(MKDIR) $(DESTDIR)/$(javadocdir)/$(PACKAGE_NAME)
	@cp -rv ./javadoc/* $(DESTDIR)/$(javadocdir)/$(PACKAGE_NAME)
	@find $(DESTDIR)/$(javadocdir)/$(PACKAGE_NAME) -type f -exec chmod 644 {} \;
	@find $(DESTDIR)/$(javadocdir)/$(PACKAGE_NAME) -type d -exec chmod 755 {} \;

Release: \
	$(BINRLS)/$(LIBNAME) \
	$(BINRLS)/$(PLUGIN) \
	javadoc

zip: \
	pw3270-java-@PACKAGE_VERSION@.@host@.zip


pw3270-java-@PACKAGE_VERSION@.@host@.zip: \
	$(BINRLS)/$(LIBNAME) \
	$(BINRLS)/$(PLUGIN) \
	$(BINRLS)/pw3270.jar \
	javadoc

	@rm -f $@
	@zip -9 -r $@ ./javadoc

	@$(MKDIR) ./jvm-exports
	@$(INSTALL_DATA) $(BINRLS)/pw3270.jar ./jvm-exports
	@zip -9 -m -r $@ ./jvm-exports
	@rm -fr ./jvm-exports

	@$(MKDIR) ./plugin
	@$(INSTALL_PROGRAM) $(BINRLS)/$(PLUGIN) ./plugin
	@zip -9 -m -r $@ ./plugin/
	@rm -fr ./plugin

	@$(MKDIR) ./jni
	@$(INSTALL_PROGRAM) $(BINRLS)/$(LIBNAME) ./jni
	@zip -9 -m -r $@ ./jni
	@rm -fr ./jni

	@zip -9 -r $@ ./testprograms

javadoc: src/terminal.java
	@$(JAVADOC) -encoding utf-8 -d $@ $^

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

ifneq ($(RPMBUILD),no)
	@$(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
endif

bz2: \
	$(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

	@$(MKDIR) $(SRCDIR)
	@cp *.ac $(SRCDIR)
	@cp *.in $(SRCDIR)
	@cp *.cbp $(SRCDIR)
	@cp *.sh $(SRCDIR)
	@cp README.md $(SRCDIR)
	@cp LICENCA $(SRCDIR)
	@cp LICENSE $(SRCDIR)
	@cp AUTHORS $(SRCDIR)
	@cp rpm/*.spec $(SRCDIR)

	@$(MKDIR) $(SRCDIR)/debian
	@cp debian/* $(SRCDIR)/debian

	@$(MKDIR) $(SRCDIR)/testprograms
	@cp testprograms/* $(SRCDIR)/testprograms

	@$(MKDIR) $(SRCDIR)/scripts
	@cp scripts/* $(SRCDIR)/scripts

	@$(MKDIR) $(SRCDIR)/src
	@cp src/*.java $(SRCDIR)/src

	@$(MKDIR) $(SRCDIR)/src/include
	@cp src/include/*.in $(SRCDIR)/src/include

	@$(MKDIR) $(SRCDIR)/src/include
	@cp src/include/*.h $(SRCDIR)/src/include

	@$(MKDIR) $(SRCDIR)/src/jni  
	@cp src/jni/*.h $(SRCDIR)/src/jni
	@cp src/jni/*.in $(SRCDIR)/src/jni
	@cp src/jni/*.cc $(SRCDIR)/src/jni

	@$(MKDIR) $(SRCDIR)/src/plugin  
	@cp src/plugin/*.h $(SRCDIR)/src/plugin
	@cp src/plugin/*.in $(SRCDIR)/src/plugin
	@cp src/plugin/*.cc $(SRCDIR)/src/plugin

$(BINRLS)/pw3270.jar: \
	src/jni/*.cc \
	src/include/*.h

	@make -C src/jni $@


$(BINRLS)/$(LIBNAME): \
	src/jni/*.cc \
	src/include/*.h

	@make -C src/jni $@

$(BINRLS)/$(PLUGIN): \
	$(BINRLS)/$(LIBNAME) \
	src/plugin/*.cc \
	src/include/*.h

	@make -C src/plugin $@

Debug: \
	$(BINDBG)/$(LIBNAME) \
	$(BINDBG)/$(PLUGIN)

run: \
	$(BINDBG)/$(LIBNAME) \
	$(BINDIR)/java/version.class

	@LD_LIBRARY_PATH=$(BINDBG) java -Djava.library.path=$(BINDBG) -cp .bin/java/ version


$(BINDBG)/$(LIBNAME): \
	src/jni/*.cc \
	src/include/*.h

	@make -C src/jni $@

$(BINDBG)/$(PLUGIN): \
	$(BINDBG)/$(LIBNAME) \
	src/plugin/*.cc \
	src/include/*.h

	@make -C src/plugin $@

cleanDebug: \
	clean

clean:
	@rm -fr $(BINDIR)
	@rm -fr $(OBJDIR)
	@rm -fr $(SRCDIR)
	@rm -fr jni
	@rm -fr javadoc