Makefile.in 8.45 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@@PACKAGE_TARNAME@@DLLEXT@

LIB_SOURCES=window.c actions.c fonts.c dialog.c hostdialog.c print.c colors.c \
				tools.c plugin.c trace.c

APP_SOURCES=main.c @APP_RESOURCES@

MODULES=v3270 uiparser v3270ft common

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

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

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
libdir=@libdir@
datarootdir=@datarootdir@
localedir=@localedir@
includedir=@includedir@
desktopdir=$(datarootdir)/applications

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

OBJDIR=.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@

AMTAR=@AMTAR@
SHELL=@SHELL@
MKDIR=@MKDIR_P@
CC=@CC@
LD=@CC@
XGETTEXT=@XGETTEXT@
MSGCAT=@MSGCAT@
CONVERT=@CONVERT@
WINDRES=@WINDRES@

CFLAGS=@CFLAGS@ \
	@LIB3270_CFLAGS@ \
	@PW3270_CFLAGS@ \
	-Wno-deprecated-declarations \
	@LIBSSL_CFLAGS@ @GTK_CFLAGS@ \
	-DLIBDIR=\"$(libdir)\" \
	-DDATAROOTDIR=\"$(datarootdir)\"

LIBS=@LIBS@ @LIBSSL_LIBS@ @GTK_LIBS@ @LIB3270_LIBS@
LDFLAGS=@LDFLAGS@
APP_LDFLAGS=@APP_LDFLAGS@

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

DEPENDS=\
	$(BASEDIR)/src/include/*.h \
	@LIB3270_INCLUDEPATH@/*.h \
	$(BASEDIR)/src/include/pw3270/*.h \
	$(BASEDIR)/src/include/v3270/*.h \
	*.h \
	Makefile

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

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

%.ico: \
	$(BASEDIR)/branding/%.svg

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(CONVERT) -density 384 -background transparent $< -define icon:auto-resize -colors 256 $@

$(OBJDBG)/%.o: \
	%.rc \
	@PACKAGE_TARNAME@.ico \
	$(DEPENDS)

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(WINDRES) -i $< -o $@

$(BASEDIR)/.obj/Debug/%.a: \
	./%/* \
	$(DEPENDS)
 
	@$(MAKE) -C $(basename $(notdir $@)) $@

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

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

$(OBJRLS)/%.o: \
	%.rc \
	@PACKAGE_TARNAME@.ico \
	$(DEPENDS)

	@echo $< ...
	@$(MKDIR) `dirname $@`
	@$(WINDRES) -i $< -o $@

$(BASEDIR)/.obj/Release/%.a: \
	./%/* \
	$(DEPENDS)
 
	@$(MAKE) -C $(basename $(notdir $@)) $@

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

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

	@touch $@

$(POTDIR)/%.pot: \
	%.rc

	@touch $@

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

$(SRCDIR)/%: \
	%/Makefile

	@make -C `dirname $<` $@

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

all: \
	Release

Release: \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@

pot: \
	$(BASEDIR)/.pot/pw3270.pot

$(BASEDIR)/.pot/pw3270.pot: \
	$(foreach SRC, $(basename $(LIB_SOURCES) $(APP_SOURCES)), $(POTDIR)/$(SRC).pot) \
	$(foreach MOD, $(MODULES), $(POTDIR)/$(MOD).pot)

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

$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@: \
	$(BINRLS)/$(LIBNAME) \
	$(foreach SRC, $(basename $(APP_SOURCES)), $(OBJRLS)/$(SRC).o)

	@$(LD) $(APP_LDFLAGS) -o $@ $^ -L$(BINRLS) $(LIBS) -l@PACKAGE_TARNAME@

$(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 $(LIB_SOURCES)), $(OBJRLS)/$(SRC).o) \
	$(foreach MOD, $(MODULES), $(BASEDIR)/.obj/Release/$(MOD).a)

	@echo $(basename $@) ...
	@$(MKDIR) `dirname $@`
	@$(LD) -shared -Wl,-soname,$(@F) $(LDFLAGS) -L$(BINRLS) -o $@ $^ $(LIBS)

install: \
	$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ \
	install-devel

	@$(MKDIR) $(DESTDIR)$(libdir)

	@$(INSTALL_PROGRAM) \
				$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
				$(DESTDIR)$(libdir)

	@$(LN_S) -f \
				$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@ \
				$(DESTDIR)$(libdir)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@

	@$(LN_S) -f \
				$(LIBNAME).@PACKAGE_MAJOR_VERSION@ \
				$(DESTDIR)$(libdir)/$(LIBNAME)

	@$(MKDIR) $(DESTDIR)$(bindir)

	@$(INSTALL_PROGRAM) \
		$(BINRLS)/$(PACKAGE_TARNAME)@EXEEXT@ \
		$(DESTDIR)$(bindir)


install-devel:

	@mkdir -p $(DESTDIR)$(includedir)/pw3270
	@mkdir -p $(DESTDIR)$(includedir)/v3270
	@mkdir -p $(DESTDIR)$(libdir)/pkgconfig

	# Install includes
	@$(INSTALL_DATA) \
		$(BASEDIR)/src/include/pw3270/*.h \
		$(DESTDIR)$(includedir)/pw3270

	@$(INSTALL_DATA) \
		$(BASEDIR)/src/include/v3270/*.h \
		$(DESTDIR)$(includedir)/v3270

	@$(INSTALL_DATA) \
		$(BASEDIR)/src/include/pw3270.h \
		$(DESTDIR)$(includedir)

	@$(INSTALL_DATA) \
		$(BASEDIR)/src/include/v3270.h \
		$(DESTDIR)$(includedir)

	@$(INSTALL_DATA) \
		$(BASEDIR)/src/include/v3270ft.h \
		$(DESTDIR)$(includedir)

	# Install PKG-CONFIG files
	@$(INSTALL_DATA) \
		$(BASEDIR)/sdk/*.pc \
		$(DESTDIR)$(libdir)/pkgconfig

$(SRCDIR): \
	clean \
	$(foreach MOD, $(MODULES), $(SRCDIR)/$(MOD))


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

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

Debug: \
	$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@

$(BINDBG)/$(PACKAGE_TARNAME)@EXEEXT@: \
	$(BINDBG)/$(LIBNAME) \
	$(foreach SRC, $(basename $(APP_SOURCES)), $(OBJDBG)/$(SRC).o)

	@$(LD) -Wl,--rpath,$(BINDBG) -o $@ $^ -L$(BINDBG) $(LIBS) -l@PACKAGE_TARNAME@

$(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 $(LIB_SOURCES)), $(OBJDBG)/$(SRC).o) \
	$(foreach MOD, $(MODULES), $(BASEDIR)/.obj/Debug/$(MOD).a)

	@echo $(basename $@) ...
	@$(MKDIR) `dirname $@`
	@$(LD) -shared -Wl,-soname,$(@F) $(LDFLAGS) -L$(BINDBG) -o $@ $^ $(LIBS)


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

cleanDebug:

	@rm -fr	$(OBJDBG) \
			$(BINDBG)/$(LIBNAME) \
			$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@ \
			$(BINDBG)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@

	@make -C v3270 cleanDebug
	@make -C v3270ft cleanDebug
	@make -C uiparser cleanDebug
	@make -C common cleanDebug

cleanRelease:

	@rm -fr	$(OBJRLS) \
			$(BINRLS)/$(LIBNAME) \
			$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@ \
			$(BINRLS)/$(LIBNAME).@PACKAGE_MAJOR_VERSION@.@PACKAGE_MINOR_VERSION@

	@make -C v3270 cleanRelease
	@make -C v3270ft cleanRelease
	@make -C uiparser cleanRelease
	@make -C common cleanRelease

clean: \
	cleanDebug \
	cleanRelease