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

MODULE_NAME=hllapi
LIBNAME=lib$(MODULE_NAME)@DLLEXT@

PLUGIN_SOURCES=pluginmain.c
API_SOURCES=calls.c hllapi.c

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

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

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libdir=@libdir@

BASEDIR=@BASEDIR@
SRCDIR=$(BASEDIR)/.src/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/src/plugins/$(MODULE_NAME)
POTDIR=$(BASEDIR)/.pot/plugins/$(MODULE_NAME)

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

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

MKDIR=@MKDIR_P@
CC=@CC@
CXX=@CXX@
LD=@CXX@
AR=@AR@
XGETTEXT=@XGETTEXT@
MSGCAT=@MSGCAT@
INSTALL=@INSTALL@
INSTALL_DATA=@INSTALL_DATA@
INSTALL_PROGRAM=@INSTALL_PROGRAM@
LN_S=@LN_S@

CFLAGS=@CFLAGS@ @GTK_CFLAGS@ -I$(BASEDIR)/src/include

LIBS=@LIBS@ 
API_LIBS=$(LIBS) -lpw3270cpp @LIBICONV@
PLUGIN_LIBS=$(LIBS) @GTK_LIBS@ @GLIB_LIBS@ @LIB3270_LIBS@ @PW3270_LIBS@

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

DEPENDS=*.h Makefile

$(OBJDBG)/%.o: \
	%.c \
	$(DEPENDS)

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CC) $(CFLAGS) \
				@DBG_CFLAGS@ \
				-DBUILD_DATE=`date +"0x%Y%m%d"`\
				-o $@ -c $<

$(OBJDBG)/%.o: \
	%.cc \
	$(DEPENDS)

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(CFLAGS) \
				@DBG_CFLAGS@ \
				-DBUILD_DATE=`date +"0x%Y%m%d"`\
				-o $@ -c $<

$(OBJRLS)/%.o: \
	%.c \
	$(DEPENDS)

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CC) $(CFLAGS) \
				@RLS_CFLAGS@ \
				-DBUILD_DATE=`date +"0x%Y%m%d"` \
				-o $@ -c $<

$(OBJRLS)/%.o: \
	%.cc \
	$(DEPENDS)

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CXX) $(CFLAGS) \
				@RLS_CFLAGS@ \
				-DBUILD_DATE=`date +"0x%Y%m%d"` \
				-o $@ -c $<

$(POTDIR)/%.pot: %.c

	@echo $(notdir $@) ...
	@$(MKDIR) `dirname $@`
	@$(XGETTEXT) \
		--default-domain=$(PACKAGE) \
		--language=C \
		--keyword=_ \
		--keyword=N_ \
		--keyword=MSG_:2 \
		--output=$@ \
		$<

	@touch $@

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

Release: \
	$(BINRLS)/plugins/$(MODULE_NAME)@DLLEXT@

install: \
	$(BINRLS)/$(LIBNAME) \
	$(BINRLS)/plugins/$(MODULE_NAME)@DLLEXT@

	@echo $@ ...
	@$(MKDIR) $(DESTDIR)$(libdir)/$(PACKAGE_TARNAME)-plugins
	@$(INSTALL_PROGRAM) $(BINRLS)/$(MODULE_NAME)@DLLEXT@ $(DESTDIR)$(libdir)/$(PACKAGE_TARNAME)-plugins/$(MODULE_NAME)@DLLEXT@

	@$(MKDIR) $(DESTDIR)$(libdir)
	@$(INSTALL_PROGRAM) $(BINRLS)/$(LIBNAME) $(DESTDIR)$(libdir)

$(DESTDIR)$(libdir)/$(PACKAGE_TARNAME)-plugins/$(MODULE_NAME)@DLLEXT@: \
	$(BINRLS)/$(LIBNAME) \
	$(BINRLS)/plugins/$(MODULE_NAME)@DLLEXT@

	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(INSTALL_PROGRAM) $(BINRLS)/plugins/$(MODULE_NAME)@DLLEXT@ $@

	@$(MKDIR) $(DESTDIR)$(libdir)
	@$(INSTALL_PROGRAM) $(BINRLS)/$(LIBNAME) $(DESTDIR)$(libdir)

$(BINRLS)/$(LIBNAME): \
	$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@

	@echo $(basename $@) ...
	@$(MKDIR) `dirname $@`
	@$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $@

$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@: \
	$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@

	@echo $(basename $@) ...
	@$(MKDIR) `dirname $@`
	@$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $@

$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
	$(foreach SRC, $(basename $(API_SOURCES)), $(OBJRLS)/$(SRC).o)

	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(LD) \
		@DLL_LDFLAGS@ \
		-Wl,-soname,`basename $@` \
		-L$(BASEDIR)/.bin/Release \
		@STATIC_LDFLAGS@ \
		-o $@ $^ \
		$(API_LIBS)

$(BINRLS)/plugins/$(MODULE_NAME)@DLLEXT@: \
	$(BINRLS)/$(LIBNAME) \
	$(foreach SRC, $(basename $(PLUGIN_SOURCES)), $(OBJRLS)/$(SRC).o)

	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(LD) \
		@DLL_LDFLAGS@ \
		-Wl,-soname,$(MODULE_NAME)d \
		-L$(BASEDIR)/.bin/Release \
		-o $@ $(foreach SRC, $(basename $(PLUGIN_SOURCES)), $(OBJRLS)/$(SRC).o) \
		$(PLUGIN_LIBS)

pot: \
	$(BASEDIR)/.pot/plugins/$(MODULE_NAME).pot

$(BASEDIR)/.pot/plugins/$(MODULE_NAME).pot: \
	$(foreach SRC, $(basename $(SOURCES)), $(POTDIR)/$(SRC).pot)

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

$(SRCDIR): \
	clean

	@$(MKDIR) $@
	@$(INSTALL_DATA) *.c *.cc *.h *.in *.cbp $@


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

Debug: \
	$(BINDBG)/plugins/$(MODULE_NAME)@DLLEXT@

test: \
	$(BINDBG)/$(LIBNAME) \
	$(OBJDBG)/testprogram.o

	$(LD) -Wl,--rpath,$(BINDBG) -o $(BINDBG)/$(MODULE_NAME)@EXEEXT@ $(OBJDBG)/testprogram.o -L$(BINDBG) $(LIBS) -l$(MODULE_NAME)

$(BINDBG)/$(LIBNAME): \
	$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@

	@echo $(basename $@) ...
	@$(MKDIR) `dirname $@`
	@$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@ $@

$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@: \
	$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@

	@echo $(basename $@) ...
	@$(MKDIR) `dirname $@`
	@$(LN_S) -f $(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ $@

$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@: \
	$(foreach SRC, $(basename $(API_SOURCES)), $(OBJDBG)/$(SRC).o)

	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(LD) \
		-shared \
		-Wl,-soname,`basename $@` \
		-L$(BASEDIR)/.bin/Debug \
		-o $@ $^ \
		$(API_LIBS)

$(BINDBG)/plugins/$(MODULE_NAME)@DLLEXT@: \
	$(BINDBG)/$(LIBNAME) \
	$(foreach SRC, $(basename $(PLUGIN_SOURCES)), $(OBJDBG)/$(SRC).o)

	@echo $@ ...
	@$(MKDIR) `dirname $@`
	@$(LD) \
		-shared \
		-Wl,-soname,$(MODULE_NAME)d,--rpath,$(BASEDIR)/.bin/Debug \
		-L$(BASEDIR)/.bin/Debug \
		-o $@ $(foreach SRC, $(basename $(PLUGIN_SOURCES)), $(OBJDBG)/$(SRC).o) \
		$(PLUGIN_LIBS)


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

cleanDebug:

	@rm -fr	$(BINDBG)/$(MODULE_NAME)@DLLEXT@ \
			$(OBJDBG) \
			dbus-glue.h

cleanRelease:

	@rm -fr	$(BINRLS)/$(MODULE_NAME)@DLLEXT@ \
			$(OBJRLS) \
			dbus-glue.h

	@rm -fr $(POTDIR)

clean: \
	cleanDebug \
	cleanRelease