| ## Makefile for the lib subdirectory of GNU libtextstyle. |
| ## Copyright (C) 2009-2021 Free Software Foundation, Inc. |
| ## |
| ## This program is free software: you can redistribute it and/or modify |
| ## it under the terms of the GNU 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 General Public License |
| ## along with this program. If not, see <https://www.gnu.org/licenses/>. |
| |
| ## Process this file with automake to produce Makefile.in. |
| |
| AUTOMAKE_OPTIONS = 1.13 gnits subdir-objects no-dependencies |
| EXTRA_DIST = |
| BUILT_SOURCES = |
| MOSTLYCLEANFILES = core *.stackdump |
| MOSTLYCLEANDIRS = |
| CLEANFILES = |
| DISTCLEANFILES = |
| MAINTAINERCLEANFILES = |
| SUFFIXES = |
| |
| lib_LTLIBRARIES = libtextstyle.la |
| |
| noinst_LTLIBRARIES = |
| |
| nobase_include_HEADERS = textstyle.h |
| |
| nobase_nodist_include_HEADERS = |
| |
| noinst_HEADERS = notinline.h |
| |
| AM_CPPFLAGS = \ |
| -I. -I$(srcdir) \ |
| -I$(top_builddir) -I$(top_srcdir) \ |
| -Iglib \ |
| -DIN_LIBTEXTSTYLE |
| |
| # Parameterization of the 'libxml' module: |
| # When building a shared library, don't export the variables |
| # xmlMalloc, xmlMallocAtomic, xmlRealloc, xmlFree, xmlMemStrdup. |
| if INCLUDED_LIBXML |
| AM_CPPFLAGS += -DLIBXML_STATIC |
| endif |
| |
| if WOE32 |
| # On mingw, disable the declarations of *printf functions as aliases to the |
| # corresponding __mingw_*printf functions, because they pull in a dependency |
| # to the libgcc_s_sjlj DLL (through the symbols __udivdi3, __umoddi3). |
| AM_CPPFLAGS += -D__USE_MINGW_ANSI_STDIO=0 |
| endif |
| |
| # Rules generated and collected by gnulib-tool. |
| include Makefile.gnulib |
| |
| # Additional source files. |
| libtextstyle_la_SOURCES += \ |
| color.h color.c \ |
| misc.h misc.c \ |
| version.c |
| |
| # The <stdbool.h> replacement that can be installed. |
| nobase_nodist_include_HEADERS += \ |
| textstyle/stdbool.h |
| |
| # Produce a textstyle/stdbool.h that is not compiler dependent. |
| # GCC >= 2.95 has <stdbool.h>. |
| # AIX >= 5.3 has <stdbool.h>. |
| # Solaris 10 and some HP-UX 11 versions have <stdbool.h> but it does not |
| # necessarily work. |
| textstyle/stdbool.h : $(STDBOOL_H) stdbool.mini.h |
| @MKDIR_P@ textstyle |
| rm -f $@-t $@ |
| { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ |
| echo '#if !defined _GL_STDBOOL_H'; \ |
| if test -f /usr/include/stdbool.h; then \ |
| echo '#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) || defined _AIX'; \ |
| else \ |
| echo '#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95))'; \ |
| fi; \ |
| echo '#include <stdbool.h>'; \ |
| echo '#else'; \ |
| cat $(srcdir)/stdbool.mini.h; \ |
| echo '#endif'; \ |
| echo '#endif'; \ |
| } > $@-t |
| mv $@-t $@ |
| BUILT_SOURCES += textstyle/stdbool.h |
| MOSTLYCLEANFILES += textstyle/stdbool.h-t |
| CLEANFILES += textstyle/stdbool.h |
| EXTRA_DIST += stdbool.mini.h |
| |
| # textstyle/version.h is public. |
| nobase_nodist_include_HEADERS += textstyle/version.h |
| |
| # textstyle/woe32dll.h is not public, but is included by other header files. |
| nobase_nodist_include_HEADERS += textstyle/woe32dll.h |
| |
| # Directories that contain some CLEANFILES. |
| CLEANDIRS = |
| CLEANDIRS_NOT_IN_SRCDIR = |
| clean-local: clean-generic |
| @for dir in '' $(CLEANDIRS); do \ |
| if test -n "$$dir" && test -d $$dir; then \ |
| echo "rmdir $$dir"; rmdir $$dir; \ |
| fi; \ |
| done; \ |
| if test '$(srcdir)' != '.'; then \ |
| for dir in '' $(CLEANDIRS_NOT_IN_SRCDIR); do \ |
| if test -n "$$dir" && test -d $$dir; then \ |
| echo "rmdir $$dir"; rmdir $$dir; \ |
| fi; \ |
| done; \ |
| fi; \ |
| : |
| |
| # Directories that contain some DISTCLEANFILES. |
| DISTCLEANDIRS = sys |
| DISTCLEANDIRS_NOT_IN_SRCDIR = textstyle |
| distclean-local: distclean-generic |
| @for dir in '' $(DISTCLEANDIRS); do \ |
| if test -n "$$dir" && test -d $$dir; then \ |
| echo "rmdir $$dir"; rmdir $$dir; \ |
| fi; \ |
| done; \ |
| if test '$(srcdir)' != '.'; then \ |
| for dir in '' $(DISTCLEANDIRS_NOT_IN_SRCDIR); do \ |
| if test -n "$$dir" && test -d $$dir; then \ |
| echo "rmdir $$dir"; rmdir $$dir; \ |
| fi; \ |
| done; \ |
| fi; \ |
| : |
| |
| # List of header files that get installed and that declare 'extern' symbols. |
| HEADERS_WITH_EXTERNS = \ |
| textstyle.h \ |
| textstyle/version.in.h |
| |
| # List of declared exported symbols. |
| # We extract it from the header files that get installed. |
| # This file has the same format as the one expected by the libtool option |
| # '-export-symbols', but we don't use this option, because it may prevent us |
| # from building some of the unit tests. |
| $(srcdir)/libtextstyle.sym.in : $(HEADERS_WITH_EXTERNS) |
| if \ |
| for f in $(HEADERS_WITH_EXTERNS); do \ |
| if test -f $$f; then \ |
| cat $$f; \ |
| else \ |
| cat $(srcdir)/$$f; \ |
| fi; \ |
| done \ |
| | $(srcdir)/declared.sh > $@-t1; \ |
| then \ |
| LC_ALL=C sort < $@-t1 | LC_ALL=C uniq > $@-t2 && mv $@-t2 $@; \ |
| else \ |
| if test -f $@; then \ |
| echo "Continuing with existing libtextstyle.sym.in."; \ |
| else \ |
| exit 1; \ |
| fi; \ |
| fi |
| # We distribute it because declared.sh relies on GNU sed. |
| # The GNU Coding Standards say in |
| # <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>: |
| # "GNU distributions usually contain some files which are not source files |
| # ... . Since these files normally appear in the source directory, they |
| # should always appear in the source directory, not in the build directory. |
| # So Makefile rules to update them should put the updated files in the |
| # source directory." |
| # Therefore we put this file in the source directory, not the build directory. |
| MOSTLYCLEANFILES += libtextstyle.sym.in-t1 libtextstyle.sym.in-t2 |
| MAINTAINERCLEANFILES += libtextstyle.sym.in |
| EXTRA_DIST += libtextstyle.sym.in declared.sh |
| |
| # List of exported symbols (platform dependent). |
| libtextstyle.sym : $(srcdir)/libtextstyle.sym.in |
| cat $(srcdir)/libtextstyle.sym.in \ |
| | case "@host_os@" in \ |
| mingw*) cat ;; \ |
| *) grep -v '^libtextstyle_isatty$$' ;; \ |
| esac \ |
| > $@-t |
| mv $@-t $@ |
| MOSTLYCLEANFILES += libtextstyle.sym libtextstyle.sym-t |
| |
| # Hide undesired symbols that are defined by libtextstyle_la_SOURCES or |
| # gl_LIBOBJS or the dependency libraries from the global namespace, |
| # by prefixing them with "libtextstyle_". |
| all check install: config.h |
| COMPILATION_UNITS = $(libtextstyle_la_SOURCES) $(gl_LIBOBJS) |
| if INCLUDED_LIBCROCO |
| COMPILATION_UNITS += $(libcroco_rpl_la_SOURCES) |
| endif |
| if INCLUDED_LIBXML |
| COMPILATION_UNITS += $(libxml_rpl_la_SOURCES) |
| endif |
| if INCLUDED_LIBGLIB |
| COMPILATION_UNITS += $(libglib_rpl_la_SOURCES) |
| endif |
| config.h: $(BUILT_SOURCES) libtextstyle.sym |
| { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ |
| : "Avoid double inclusion, to avoid a warning about redefinitions."; \ |
| echo '#ifndef LIBTEXTSTYLE_CONFIG_H'; \ |
| echo '#define LIBTEXTSTYLE_CONFIG_H'; \ |
| echo; \ |
| echo '#include "../config.h"'; \ |
| echo; \ |
| echo '#endif /* LIBTEXTSTYLE_CONFIG_H */'; \ |
| case "@host_os@" in \ |
| mingw*) echo '#define isatty libtextstyle_isatty' ;; \ |
| esac; \ |
| } > config.h && \ |
| if test -n "$(NAMESPACING)" && test -n "$(HAVE_GLOBAL_SYMBOL_PIPE)"; then \ |
| { \ |
| { \ |
| for f in $(COMPILATION_UNITS); do \ |
| case $$f in \ |
| *.res.lo ) ;; \ |
| *.c | *.$(OBJEXT) | *.lo ) \ |
| sf=`echo "$$f" | sed -e 's,\\.[^.]*$$,,'`.c; \ |
| test -f $$sf || sf=$(srcdir)/$$sf; \ |
| of=`echo "$$f" | sed -e 's,^.*/,,' -e 's,\\.[^.]*$$,,'`.$(OBJEXT); \ |
| echo "$(COMPILE) -c $$sf" 1>&6; \ |
| $(COMPILE) -c $$sf || { rm -f config.h; exit 1; }; \ |
| sh ./exported.sh $$of 1>&5; \ |
| rm -f $$of `echo "$$of" | sed -e 's,\\.$(OBJEXT)$$,.lo,'`; \ |
| ;; \ |
| esac; \ |
| done; \ |
| } 5>&1 1>&2 \ |
| | sed -e 's,.* ,,' | grep -v '@' | LC_ALL=C sort | LC_ALL=C uniq \ |
| | LC_ALL=C $(top_srcdir)/build-aux/join-v-1 - libtextstyle.sym \ |
| | sed -e 's,^\(.*\)$$,#define \1 libtextstyle_\1,' > config.h-t; \ |
| } 6>&1 && \ |
| if test -f config.h; then \ |
| cat config.h-t >> config.h; \ |
| rm -f config.h-t; \ |
| else \ |
| rm -f config.h-t; \ |
| exit 1; \ |
| fi \ |
| fi |
| MOSTLYCLEANFILES += config.h config.h-t |
| |
| # Version information according to Woe32 conventions. |
| EXTRA_DIST += libtextstyle.rc |
| if WOE32 |
| WOE32_LIBADD = libtextstyle.res.lo |
| # This rule is executed only on Woe32 systems. |
| # Use $(RC) with libtool, $(WINDRES) when not using libtool. |
| # The following sed expressions come from the windres-options script. They are |
| # inlined here, so that they can be written in a Makefile without requiring a |
| # temporary file. They must contain literal newlines rather than semicolons, |
| # so that they work with the sed-3.02 that is shipped with MSYS. |
| libtextstyle.res.lo: $(srcdir)/libtextstyle.rc |
| nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \ |
| sed_extract_major='/^[0-9]/{'$${nl}'s/^\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \ |
| sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{'$${nl}'s/^[0-9]*[.]\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \ |
| sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{'$${nl}'s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p'$${nl}q$${nl}'}'$${nl}'c\'$${nl}0$${nl}q; \ |
| $(LIBTOOL) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) \ |
| "-DPACKAGE_VERSION_STRING=\\\"$(VERSION)\\\"" \ |
| "-DPACKAGE_VERSION_MAJOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_major"` \ |
| "-DPACKAGE_VERSION_MINOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_minor"` \ |
| "-DPACKAGE_VERSION_SUBMINOR="`echo '$(VERSION)' | sed -n -e "$$sed_extract_subminor"` \ |
| -i $(srcdir)/libtextstyle.rc -o libtextstyle.res.lo --output-format=coff |
| MOSTLYCLEANFILES += libtextstyle.res.lo |
| else |
| WOE32_LIBADD = |
| endif |
| libtextstyle_la_LIBADD += $(WOE32_LIBADD) |
| libtextstyle_la_DEPENDENCIES += $(WOE32_LIBADD) |
| |
| # Parametrization of the 'relocatable-lib-lgpl' module. |
| AM_CPPFLAGS += -DDEPENDS_ON_LIBICONV=1 |
| |
| # Libtool's library version information for libtextstyle. |
| # See the libtool documentation, section "Library interface versions". |
| LTV_CURRENT=1 |
| LTV_REVISION=1 |
| LTV_AGE=1 |
| |
| # How to build libtextstyle.la. |
| libtextstyle_la_LDFLAGS += \ |
| -no-undefined \ |
| -export-symbols libtextstyle.sym \ |
| -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \ |
| -rpath $(libdir) |