# SPDX-License-Identifier: LGPL-3.0-or-later # # Copyright (C) 2008 Banco do Brasil S.A. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with this program. If not, see . # #---[ Paths ]---------------------------------------------------------------------------- prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ srcdir=@srcdir@ sbindir=@sbindir@ libdir=@libdir@ includedir=@includedir@ datarootdir=@datarootdir@ localedir=@localedir@ docdir=@docdir@ sysconfdir=@sysconfdir@ #---[ Configuration ]-------------------------------------------------------------------- PACKAGE_NAME=@PACKAGE_NAME@ PRODUCT_NAME=@PRODUCT_NAME@ COMMON_SOURCES= \ $(wildcard $(srcdir)/src/objects/actions/*.c) \ $(wildcard $(srcdir)/src/objects/application/*.c) \ $(wildcard $(srcdir)/src/objects/application/actions/*.c) \ $(wildcard $(srcdir)/src/objects/window/*.c) \ $(wildcard $(srcdir)/src/objects/window/actions/*.c) \ $(wildcard $(srcdir)/src/objects/terminal/*.c) \ $(wildcard $(srcdir)/src/objects/toolbar/*.c) \ $(wildcard $(srcdir)/src/objects/settings/*.c) \ $(wildcard $(srcdir)/src/main/*.c) \ $(wildcard $(srcdir)/src/tools/*.c) \ $(wildcard $(srcdir)/src/objects/keypad/*.c) \ SOURCES= \ $(COMMON_SOURCES) \ $(wildcard $(srcdir)/src/objects/os/@OSNAME@/*.c) \ $(wildcard $(srcdir)/src/main/@OSNAME@/*.c) \ $(wildcard $(srcdir)/src/main/@OSNAME@/*.rc) SCHEMAS= \ $(wildcard schemas/@OSNAME@/*.gschema.xml) \ $(wildcard schemas/common/*.gschema.xml) #---[ Tools ]---------------------------------------------------------------------------- CC=@CC@ LD=@CC@ LN_S=@LN_S@ MKDIR=@MKDIR_P@ INSTALL=@INSTALL@ INSTALL_DATA=@INSTALL_DATA@ INSTALL_PROGRAM=@INSTALL_PROGRAM@ XGETTEXT=@XGETTEXT@ MSGCAT=@MSGCAT@ WINDRES=@WINDRES@ AR=@AR@ VALGRIND=@VALGRIND@ CONVERT=@CONVERT@ STRIP=@STRIP@ #---[ Build Paths ]---------------------------------------------------------------------- BUILDDIR=@BUILDDIR@ POTDIR=$(BUILDDIR)/.pot OBJDIR=$(BUILDDIR)/.obj/$(PACKAGE_NAME) OBJDBG=$(OBJDIR)/Debug OBJRLS=$(OBJDIR)/Release BINDIR=$(BUILDDIR)/.bin BINDBG=$(BINDIR)/Debug BINRLS=$(BINDIR)/Release #---[ Rules ]---------------------------------------------------------------------------- CFLAGS= \ @CFLAGS@ \ -g \ -Isrc/include \ -I$(srcdir)/src/include \ -DBUILD_DATE=`date +%Y%m%d` \ @LIBV3270_CFLAGS@ \ @GTK_CFLAGS@ LIBS= \ @LIBS@ \ @GTK_LIBS@ \ @LIBV3270_LIBS@ LDFLAGS= \ @LDFLAGS@ #---[ Debug Rules ]---------------------------------------------------------------------- $(OBJDBG)/%.o: \ %.c @echo $< ... @$(MKDIR) $(@D) @$(CC) \ $(CFLAGS) \ -DDEBUG=1 \ -MM -MT $@ -MF $(patsubst %.o,%.d,$@) $< @$(CC) \ $(CFLAGS) \ -Wall -Wextra -fstack-check \ -DDEBUG=1 \ -o $@ -c $< $(OBJDBG)/%.o: \ %.rc \ $(PRODUCT_NAME).ico @echo $< ... @$(MKDIR) $(@D) @$(WINDRES) $< -O coff -o $@ #---[ Release Rules ]-------------------------------------------------------------------- $(OBJRLS)/%.o: \ %.c @echo $< ... @$(MKDIR) $(dir $@) @$(CC) \ $(CFLAGS) \ -DNDEBUG=1 \ -MM -MT $@ -MF $(patsubst %.o,%.d,$@) $< @$(CC) \ $(CFLAGS) \ -DNDEBUG=1 \ -o $@ -c $< $(OBJRLS)/%.o: \ %.rc \ $(PRODUCT_NAME).ico @echo $< ... @$(MKDIR) $(@D) @$(WINDRES) $< -O coff -o $@ #---[ Misc Rules ]----------------------------------------------------------------------- $(POTDIR)/%.pot: \ %.c @echo $(notdir $@) ... @$(MKDIR) $(@D) @$(XGETTEXT) \ --language=C \ --from-code=UTF-8 \ --keyword=_ \ --keyword=N_ \ --keyword=MSG_:2 \ --keyword=NC_:1c,2 \ --output=$@ \ $< @touch $@ $(POTDIR)/%.pot: \ %.xml @echo $(notdir $@) ... @$(MKDIR) $(@D) @$(XGETTEXT) \ --language=glade \ --output=$@ \ $< @touch $@ $(POTDIR)/%.pot: \ %.rc @echo $< ... @$(MKDIR) $(@D) @touch $@ $(OBJDIR)/schemas/%.xml: \ schemas/@OSNAME@/%.xml @$(MKDIR) $(@D) @cp "$^" "$@" $(OBJDIR)/schemas/%.xml:\ $(srcdir)/schemas/common/%.xml @$(MKDIR) $(@D) @cp "$^" "$@" install-%: \ %/Makefile @$(MAKE) \ -C `dirname $<` \ DESTDIR=$(DESTDIR) \ prefix=$(prefix) \ install %.ico: \ $(srcdir)/branding/%.svg @echo $@ ... @$(MKDIR) $(@D) @$(CONVERT) \ -density 384 \ -background transparent \ $< \ -define icon:auto-resize \ -colors 256 \ $@ %.png: \ $(srcdir)/branding/%.svg @echo $@ ... @$(MKDIR) $(@D) @$(CONVERT) \ +antialias \ -background transparent \ $< \ $@ #---[ Main Target ]---------------------------------------------------------------------- all: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ \ locale #---[ Release Targets ]------------------------------------------------------------------ locale: \ locale/$(PACKAGE_NAME).pot @$(MAKE) -C locale all Release: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@: \ $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).o) @$(MKDIR) $(@D) @echo $< ... @$(LD) \ -o $@ \ $(LDFLAGS) @RLS_LDFLAGS@ \ $^ \ $(LIBS) strip: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ @$(STRIP) --discard-all $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ #---[ Install Targets ]------------------------------------------------------------------ install: \ install-application install-application: \ install-@OSNAME@-application \ install-locale \ install-schemas \ install-branding \ install-icons @$(MKDIR) \ $(DESTDIR)@PLUGIN_DIR@ @$(INSTALL_DATA) \ $(srcdir)/ui/@OSNAME@.ui.xml \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).ui.xml @$(MKDIR) \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/keypad install-linux-application: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ @$(MKDIR) \ $(DESTDIR)$(bindir) @$(INSTALL_PROGRAM) \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME)@EXEEXT@ install-macos-application: \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ @$(MKDIR) \ $(DESTDIR)$(bindir) @$(INSTALL_PROGRAM) \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME)@EXEEXT@ install-windows-application: \ $(PRODUCT_NAME).png \ strip @$(MKDIR) \ $(DESTDIR)$(bindir) @$(INSTALL_PROGRAM) \ $(BINRLS)/$(PACKAGE_NAME)@EXEEXT@ \ $(DESTDIR)$(bindir)/$(PRODUCT_NAME)@EXEEXT@ @$(MKDIR) \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME) @$(INSTALL_DATA) \ $(PRODUCT_NAME).png \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PRODUCT_NAME).png @$(INSTALL_DATA) \ CHANGELOG \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/$(PACKAGE_NAME).changes install-icons: @$(MKDIR) \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/icons @$(INSTALL_DATA) \ $(srcdir)/icons/*.svg \ $(DESTDIR)$(datarootdir)/$(PRODUCT_NAME)/icons #---[ Misc Targets ]--------------------------------------------------------------------- gschemas.compiled: \ $(foreach SCHEMA, $(notdir $(SCHEMAS)), $(OBJDIR)/schemas/$(SCHEMA)) @$(MKDIR) $(OBJDIR)/schemas @glib-compile-schemas \ --targetdir=$(@D) \ $(OBJDIR)/schemas locale/$(PACKAGE_NAME).pot: \ $(foreach SRC, $(basename $(COMMON_SOURCES)), $(POTDIR)/$(SRC).pot) \ $(foreach SRC, $(basename $(wildcard $(srcdir)/src/objects/os/linux/*.c)), $(POTDIR)/$(SRC).pot) \ $(foreach SRC, $(basename $(wildcard $(srcdir)/src/objects/os/windows/*.c)), $(POTDIR)/$(SRC).pot) \ $(foreach SRC, $(basename $(wildcard $(srcdir)/src/objects/os/macos/*.c)), $(POTDIR)/$(SRC).pot) \ $(foreach SRC, $(basename $(wildcard $(srcdir)/ui/*.xml)), $(POTDIR)/$(SRC).pot) @rm -f $@ @$(MKDIR) $(@D) @$(MSGCAT) --sort-output $^ > $@ #---[ Debug Targets ]-------------------------------------------------------------------- Debug: \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@: \ $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).o) @$(MKDIR) $(@D) @echo $< ... @$(LD) \ -o $@ \ $^ \ $(LDFLAGS) \ $(LIBS) run: \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ \ gschemas.compiled @G_DEBUG=fatal-warnings \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ run-inspector: \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ \ gschemas.compiled @GTK_DEBUG=interactive \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ mem-check: \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ ifeq ($(VALGRIND),no) @LD_LIBRARY_PATH=$(BINDBG) \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ else @touch valgrind.suppression @LD_LIBRARY_PATH=$(BINDBG) \ $(VALGRIND) --leak-check=full --track-origins=yes --gen-suppressions=all --suppressions=valgrind.suppression \ $(BINDBG)/$(PACKAGE_NAME)@EXEEXT@ endif #---[ Clean Targets ]-------------------------------------------------------------------- clean: \ cleanDebug \ cleanRelease @rm -fr $(BUILDDIR)/.tmp/$(PACKAGE_NAME) @rm -fr $(POTDIR)/$(PACKAGE_NAME) @rm -fr src/include/marshal @rm -f $(PRODUCT_NAME).ico cleanDebug: @rm -fr $(OBJDBG) @rm -fr $(OBJDIR)/schemas @rm -fr $(BINDBG) @rm -f gschemas.compiled cleanRelease: @rm -fr $(OBJRLS) @rm -fr $(OBJDIR)/schemas @rm -fr $(BINRLS) @rm -fr $(POTDIR) clean: \ cleanDebug \ cleanRelease -include $(foreach SRC, $(basename $(SOURCES)), $(OBJDBG)/$(SRC).d) -include $(foreach SRC, $(basename $(SOURCES)), $(OBJRLS)/$(SRC).d)