blob: 592b6bf4404de233bb2a051b0e920d37dd225c0f [file] [log] [blame]
## Makefile for the gettext-runtime/libasprintf subdirectory of GNU gettext
## Copyright (C) 2002-2007, 2009-2011, 2013, 2016, 2018-2019, 2021 Free Software Foundation, Inc.
##
## 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 2.1 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 Lesser 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 <https://www.gnu.org/licenses/>.
## Process this file with automake to produce Makefile.in.
AUTOMAKE_OPTIONS = 1.5 gnu no-dependencies
ACLOCAL_AMFLAGS = -I ../../m4 -I ../m4 -I gnulib-m4
SUBDIRS = gnulib-lib
EXTRA_DIST =
BUILT_SOURCES =
MOSTLYCLEANFILES =
RM = rm -f
AM_CPPFLAGS = -Ignulib-lib -I$(srcdir)/gnulib-lib
DEFS = -DIN_LIBASPRINTF @DEFS@
if WOE32
# On mingw, disable the declarations of *printf functions as aliases to the
# corresponding __mingw_*printf functions, because
# - these functions are useless for i18n purposes (not POSIX/XSI compliant),
# - they pull in a dependency to the libgcc_s_sjlj DLL (through the symbols
# __udivdi3, __umoddi3).
DEFS += -D__USE_MINGW_ANSI_STDIO=0
endif
# Library include file.
include_HEADERS = autosprintf.h
all-local $(libasprintf_la_OBJECTS): autosprintf.h
autosprintf.h: autosprintf.in.h
cp $(srcdir)/autosprintf.in.h autosprintf.h
MOSTLYCLEANFILES += autosprintf.h
EXTRA_DIST += autosprintf.in.h
dist-hook:
rm -f $(distdir)/autosprintf.h
# Library code.
lib_LTLIBRARIES = libasprintf.la
noinst_LTLIBRARIES =
libasprintf_la_SOURCES = \
lib-asprintf.h lib-asprintf.c \
autosprintf.h autosprintf.cc
# Sources used only on platforms lacking vasprintf().
lib_asprintf_EXTRASOURCES = \
asnprintf.c \
vasprintf.h vasprintf.c asprintf.c
lib-asprintf.lo: $(lib_asprintf_EXTRASOURCES)
EXTRA_DIST += $(lib_asprintf_EXTRASOURCES)
# Limit the set of exported symbols, on those platforms where libtool supports it.
# Currently this excludes the symbols from gnulib modules, that we have mapped
# to symbols prefixed with 'libasprintf_' through config.h.
LIBASPRINTF_EXPORTED_SYMBOLS_REGEX = '^[^l]|^l[^i]|^li[^b]|^lib[^a]|^liba[^s]|^libas[^p]|^libasp[^r]|^libaspr[^i]|^libaspri[^n]|^libasprin[^t]|^libasprint[^f]|^libasprintf[^_]'
# Version information according to Woe32 conventions.
EXTRA_DIST += libasprintf.rc
if WOE32
WOE32_LIBADD = libasprintf.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.
libasprintf.res.lo: $(srcdir)/libasprintf.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)/libasprintf.rc -o libasprintf.res.lo --output-format=coff
MOSTLYCLEANFILES += libasprintf.res.lo
else
WOE32_LIBADD =
endif
libasprintf_la_LIBADD = $(WOE32_LIBADD)
libasprintf_la_DEPENDENCIES = $(WOE32_LIBADD)
# How to build libasprintf.
# With libtool 1.5.14, on some platforms, like BeOS, "libtool --tag=CXX" fails
# to create a shared library, however "libtool --tag=CC" succeeds.
libasprintf_la_LDFLAGS = @LTNOUNDEF@ -export-symbols-regex $(LIBASPRINTF_EXPORTED_SYMBOLS_REGEX)
libasprintf.la: $(libasprintf_la_OBJECTS) $(libasprintf_la_DEPENDENCIES) gnulib-lib/libgnu.la
$(AM_V_GEN)$(CXXLINK) -rpath $(libdir) $(libasprintf_la_LDFLAGS) $(libasprintf_la_OBJECTS) $(libasprintf_la_LIBADD) gnulib-lib/libgnu.la $(LIBS) || \
$(LINK) -rpath $(libdir) $(libasprintf_la_LDFLAGS) $(libasprintf_la_OBJECTS) $(libasprintf_la_LIBADD) gnulib-lib/libgnu.la $(LIBS)
# Allow users to use "gnulib-tool --update".
EXTRA_DIST += gnulib-m4/gnulib-cache.m4
# Clean up after Solaris cc.
clean-local:
rm -rf SunWS_cache
# Documentation.
# List of -I options referring to directories that contain texinfo sources
# used by this directory.
# Should contain at least one -I option, to work around a bug in texi2dvi 1.13,
# see <https://lists.gnu.org/archive/html/bug-automake/2009-04/msg00029.html>.
TEXINCLUDES = -I .
MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@
MAKEINFOFLAGS = $(TEXINCLUDES) --no-split
info_TEXINFOS = autosprintf.texi
# List of texinfo sources @included by autosprintf.texi.
autosprintf_TEXINFOS = lgpl.texi gpl.texi fdl.texi
# We distribute only the HTML documentation.
# The user can generate the others, via
# make autosprintf.ps
# make autosprintf.pdf
all-local: html-local
install-data-local: install-html
installdirs-local: installdirs-html
uninstall-local: uninstall-html
# CLEANFILES: autosprintf.{dvi,ps,pdf,html} are already known to automake.
# Documentation in DVI format.
# The install-dvi target is already defined by automake.
installdirs-dvi:
$(MKDIR_P) $(DESTDIR)$(dvidir)
uninstall-dvi:
$(RM) $(DESTDIR)$(dvidir)/autosprintf.dvi
# Temporary index files. automake removes only the predefined ones by itself.
MOSTLYCLEANFILES +=
# Documentation in Postscript format.
# Override of automake's definition:
#DVIPS = @DVIPS@
DVIPS = @DVIPS@ -D600
autosprintf.ps: autosprintf.dvi
$(DVIPS) -o $@ `if test -f autosprintf.dvi; then echo autosprintf.dvi; else echo $(srcdir)/autosprintf.dvi; fi`
# The install-ps target is already defined by automake.
installdirs-ps:
$(MKDIR_P) $(DESTDIR)$(psdir)
uninstall-ps:
$(RM) $(DESTDIR)$(psdir)/autosprintf.ps
# Documentation in Portable Document Format.
# The install-pdf target is already defined by automake.
installdirs-pdf:
$(MKDIR_P) $(DESTDIR)$(pdfdir)
uninstall-pdf:
$(RM) $(DESTDIR)$(pdfdir)/autosprintf.pdf
# Documentation in HTML format.
TEXI2HTML = @PERL@ $(top_srcdir)/../../build-aux/texi2html
HTMLS = autosprintf_all.html
html-local: $(HTMLS)
# Override of automake's definition.
# We want to use texi2html, not makeinfo --html.
autosprintf_all.html: autosprintf.texi $(autosprintf_TEXINFOS)
$(TEXI2HTML) $(TEXINCLUDES) -no-sec-nav -no-menu -toc-links -number -monolithic $(srcdir)/autosprintf.texi
mv autosprintf.html autosprintf_all.html
# The install-html target is already defined by automake.
installdirs-html:
$(MKDIR_P) $(DESTDIR)$(htmldir)
uninstall-html:
$(RM) $(DESTDIR)$(htmldir)/autosprintf.html
EXTRA_DIST += autosprintf_all.html
# Windows support.
EXTRA_DIST += INSTALL.windows