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

PACKAGE_NAME=@PACKAGE_NAME@
SOURCES=info.cc get.cc set.cc service.cc init.cc connect.cc

UNO_CLASSES=	/com/sun/star/uno/XWeak \
				/com/sun/star/uno/RuntimeException \
				/com/sun/star/lang/WrappedTargetException


#---[ LibreOffice SDK ]--------------------------------------------------------

OO_SDK_HOME=@OO_SDK_HOME@
OO_SDK_URE_HOME=@OO_SDK_URE_HOME@

UNO=@UNO@
UNOPKG=@UNOPKG@
IDLC=@IDLC@
REGMERGE=@REGMERGE@
CPPUMAKER=@CPPUMAKER@
CONVERT=@CONVERT@
ZIP=@ZIP@

TYPES_RDB=@OO_TYPES@

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

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@
includedir=@includedir@
instdir=$(DESTDIR)/$(libdir)/libreoffice/share/extensions/$(PACKAGE_NAME)

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

CXX=@CXX@
MKDIR=@MKDIR_P@
INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@

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

OBJDIR ?= .obj
BINDIR ?= .bin
RDBDIR ?= .rdb
URDDIR ?= .urd

OBJDBG ?= $(OBJDIR)/Debug
BINDBG ?= $(BINDIR)/Debug

OBJRLS ?= $(OBJDIR)/Release
BINRLS ?= $(BINDIR)/Release

#---[ lib3270 common class ]---------------------------------------------------

DEBUG_CFLAGS=-DDEBUG=1 -g -Wall
PW3270_CFLAGS=-I../include
CLASSLIBDIR=../classlib
include $(CLASSLIBDIR)/class.mak

#---[ Build options ]----------------------------------------------------------

CXXFLAGS=@CXXFLAGS@ @OO_CXXFLAGS@ -I../include -I./include -DLANGUAGE_BINDING_NAME=\"gcc3\"

OO_LDFLAGS=-L$(OO_SDK_HOME)/lib -L$(OO_SDK_URE_HOME)/lib \
			-Wl,-rpath-link=$(OO_SDK_URE_HOME)/lib,-rpath=$(OO_SDK_URE_HOME)/lib \
			@OO_LDFLAGS@

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

$(URDDIR)/%.urd: %.idl
	@echo "  IDLC `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(IDLC) -w -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $<

$(URDDIR)/%.urd: @IDLDIR@/%.idl
	@echo "  IDLC `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(IDLC) -w -C -I$(OO_SDK_HOME)/idl -O`dirname $@` $<

$(RDBDIR)/%.rdb: $(URDDIR)/%.urd
	@echo "  REGM `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(REGMERGE) $@ /UCR $<

include/%.hpp: $(RDBDIR)/%.rdb
	@echo "  CPPU `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CPPUMAKER) -O./include $(TYPES_RDB) $<

$(OBJDBG)/%.o: %.cc include/$(PACKAGE_NAME)/lib3270.hpp \
			$(foreach CLS, $(UNO_CLASSES), include/$(CLS).hpp) \
			globals.hpp \
			Makefile
	@echo "  CC   `basename $@`"
	@mkdir -p `dirname $@`
	@$(CXX) -DDEBUG=1 $(CXXFLAGS) -o $@ -c $<

$(OBJRLS)/%.o: %.cc include/$(PACKAGE_NAME)/lib3270.hpp \
			$(foreach CLS, $(UNO_CLASSES), include/$(CLS).hpp) \
			globals.hpp \
			Makefile
	@echo "  CC   `basename $@`"
	@mkdir -p `dirname $@`
	@$(CXX) -DNDEBUG=1 $(CXXFLAGS) -o $@ -c $<

#---[ UNO targets ]------------------------------------------------------------

include/$(PACKAGE_NAME)/lib3270.hpp: $(RDBDIR)/$(PACKAGE_NAME).rdb
	@echo "  CPPU `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CPPUMAKER) -O./include -T$(PACKAGE_NAME).lib3270 $(TYPES_RDB) $<

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

all: $(BINDIR)/$(PACKAGE_NAME).oxt

Release: include/$(PACKAGE_NAME)/lib3270.hpp \
		$(foreach CLS, $(UNO_CLASSES), include/$(CLS).hpp) \
		$(RDBDIR)/$(PACKAGE_NAME).rdb \
		$(BINDIR)/$(PACKAGE_NAME).oxt

install: $(BINRLS)/$(PACKAGE_NAME).uno@DLLEXT@ \
		$(RDBDIR)/$(PACKAGE_NAME).rdb \
		description.xml \
		manifest.xml \
		description.txt
	@$(MKDIR) $(instdir)
	@$(MKDIR) $(instdir)/META-INF
	@$(INSTALL_DATA) manifest.xml $(instdir)/META-INF

	@$(INSTALL_DATA) description.xml $(instdir)
	@$(INSTALL_DATA) description.txt $(instdir)

	@$(INSTALL_PROGRAM) $(BINRLS)/$(PACKAGE_NAME).uno@DLLEXT@ $(instdir)
	@$(INSTALL_DATA) $(RDBDIR)/$(PACKAGE_NAME).rdb $(instdir)

	@$(CONVERT) ../$(PACKAGE_NAME)/pixmaps/$(PACKAGE_NAME).svg --format=png > $(instdir)/$(PACKAGE_NAME).png
	@chmod 644 $(instdir)/$(PACKAGE_NAME).png

$(BINDIR)/$(PACKAGE_NAME).oxt: \
			$(BINRLS)/$(PACKAGE_NAME).uno@DLLEXT@ \
			$(RDBDIR)/$(PACKAGE_NAME).rdb \
			description.xml \
			manifest.xml \
			description.txt
	@rm -f $@
	@$(MKDIR) `dirname $@`

	@$(MKDIR) $(BINRLS)/$(PACKAGE).oxt.tmp

	@cp $(RDBDIR)/$(PACKAGE_NAME).rdb $(BINRLS)/$(PACKAGE).oxt.tmp
	@cp $(BINRLS)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINRLS)/$(PACKAGE).oxt.tmp

	@$(MKDIR) $(BINRLS)/$(PACKAGE).oxt.tmp/META-INF
	@cp manifest.xml $(BINRLS)/$(PACKAGE).oxt.tmp/META-INF

	@cp description.xml $(BINRLS)/$(PACKAGE).oxt.tmp
	@cp description.txt $(BINRLS)/$(PACKAGE).oxt.tmp

	@$(CONVERT) ../$(PACKAGE_NAME)/pixmaps/$(PACKAGE_NAME).svg --format=png > $(BINRLS)/$(PACKAGE).oxt.tmp/$(PACKAGE_NAME).png

	@cd $(BINRLS)/$(PACKAGE).oxt.tmp ; $(ZIP) -r -m ../$(PACKAGE_NAME).oxt .
	@rm -fr $(BINRLS)/$(PACKAGE).oxt.tmp
	@echo $@ Ok.

$(BINRLS)/$(PACKAGE_NAME).uno@DLLEXT@: \
			$(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC)@OBJEXT@) \
			$(CLASS_RELEASE_OBJECTS)
	@echo "  LD   `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CXX) @SYSDLL_FLAGS@ $(LDFLAGS) $(OO_LDFLAGS) $(CLASS_LIBS) -o $@ $^


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

Debug: $(BINDBG)/$(PACKAGE_NAME).oxt

run: $(BINDBG)/$(PACKAGE_NAME).oxt
	@SHARED=false $(UNOPKG) add --verbose --force $(BINDBG)/$(PACKAGE_NAME).oxt
	@libreoffice testmacros.odt
	@SHARED=false $(UNOPKG) remove $(PACKAGE_NAME)

add: $(BINDBG)/$(PACKAGE_NAME).oxt
	@SHARED=false $(UNOPKG) add --verbose --force $(BINDBG)/$(PACKAGE_NAME).oxt

$(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@: \
			$(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC)@OBJEXT@) \
			$(CLASS_DEBUG_OBJECTS)
	@echo "  LD   `basename $@`"
	@$(MKDIR) `dirname $@`
	@$(CXX) @SYSDLL_FLAGS@ $(LDFLAGS) $(OO_LDFLAGS) $(CLASS_LIBS) -o $@ $^


$(BINDBG)/$(PACKAGE_NAME).oxt: \
			$(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ \
			$(RDBDIR)/$(PACKAGE_NAME).rdb \
			description.xml \
			manifest.xml \
			description.txt
	@rm -f $@
	@$(MKDIR) `dirname $@`

	@$(MKDIR) $(BINDBG)/$(PACKAGE).oxt.tmp

	@cp $(RDBDIR)/$(PACKAGE_NAME).rdb $(BINDBG)/$(PACKAGE).oxt.tmp
	@cp $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINDBG)/$(PACKAGE).oxt.tmp

	@$(MKDIR) $(BINDBG)/$(PACKAGE).oxt.tmp/META-INF
	@cp manifest.xml $(BINDBG)/$(PACKAGE).oxt.tmp/META-INF

	@cp description.xml $(BINDBG)/$(PACKAGE).oxt.tmp
	@cp description.txt $(BINDBG)/$(PACKAGE).oxt.tmp

	@$(CONVERT) ../$(PACKAGE_NAME)/pixmaps/$(PACKAGE_NAME).svg --format=png > $(BINDBG)/$(PACKAGE).oxt.tmp/$(PACKAGE_NAME).png

	@cp $(BINDBG)/$(PACKAGE_NAME).uno@DLLEXT@ $(BINDBG)/$(PACKAGE_NAME).oxt.tmp
	@cd $(BINDBG)/$(PACKAGE).oxt.tmp ; $(ZIP) -r -m ../$(PACKAGE_NAME).oxt .
	@rm -fr $(BINDBG)/$(PACKAGE).oxt.tmp
	@echo $@ Ok.


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

cleanDebug: clean

clean:
	@rm -f *.urd
	@rm -fr $(RDBDIR)
	@rm -fr $(URDDIR)
	@rm -fr include
	@rm -f *.rdb
	@rm -fr $(OBJDIR)
	@rm -fr $(BINDIR)