1 # Copyright (C) 2014-2020 Free Software Foundation, Inc.
3 # This file is part of groff.
5 # groff is free software; you can redistribute it and/or modify it under
6 # the terms of the GNU General Public License as published by the Free
7 # Software Foundation, either version 3 of the License, or (at your
8 # option) any later version.
10 # groff is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18 libgroff_srcdir = $(top_srcdir)/src/libs/libgroff
19 noinst_LIBRARIES += libgroff.a
20 libgroff_a_CPPFLAGS = \
22 -D__GETOPT_PREFIX=groff_ \
23 -DENABLE_RELOCATABLE=1 \
24 -DLIBDIR=\"$(libdir)\"
27 libgroff_a_SOURCES = \
28 src/libs/libgroff/assert.cpp \
29 src/libs/libgroff/change_lf.cpp \
30 src/libs/libgroff/cmap.cpp \
31 src/libs/libgroff/color.cpp \
32 src/libs/libgroff/cset.cpp\
33 src/libs/libgroff/curtime.cpp \
34 src/libs/libgroff/device.cpp \
35 src/libs/libgroff/errarg.cpp \
36 src/libs/libgroff/error.cpp \
37 src/libs/libgroff/fatal.cpp \
38 src/libs/libgroff/filename.cpp \
39 src/libs/libgroff/font.cpp \
40 src/libs/libgroff/fontfile.cpp \
41 src/libs/libgroff/geometry.cpp \
42 src/libs/libgroff/getopt.c \
43 src/libs/libgroff/getopt1.c \
44 src/libs/libgroff/glyphuni.cpp \
45 src/libs/libgroff/htmlhint.cpp \
46 src/libs/libgroff/hypot.cpp \
47 src/libs/libgroff/iftoa.c \
48 src/libs/libgroff/invalid.cpp \
49 src/libs/libgroff/itoa.c \
50 src/libs/libgroff/lf.cpp \
51 src/libs/libgroff/lineno.cpp \
52 src/libs/libgroff/localcharset.c \
53 src/libs/libgroff/macropath.cpp \
54 src/libs/libgroff/matherr.c \
55 src/libs/libgroff/maxfilename.cpp \
56 src/libs/libgroff/maxpathname.cpp \
57 src/libs/libgroff/mksdir.cpp \
58 src/libs/libgroff/nametoindex.cpp \
59 src/libs/libgroff/paper.cpp \
60 src/libs/libgroff/prime.cpp \
61 src/libs/libgroff/progname.c \
62 src/libs/libgroff/ptable.cpp \
63 src/libs/libgroff/quotearg.c \
64 src/libs/libgroff/relocate.cpp \
65 src/libs/libgroff/searchpath.cpp \
66 src/libs/libgroff/spawnvp.c \
67 src/libs/libgroff/string.cpp \
68 src/libs/libgroff/strsave.cpp \
69 src/libs/libgroff/symbol.cpp \
70 src/libs/libgroff/tmpfile.cpp \
71 src/libs/libgroff/tmpname.cpp \
72 src/libs/libgroff/unicode.cpp \
73 src/libs/libgroff/uniglyph.cpp \
74 src/libs/libgroff/uniuni.cpp \
75 src/libs/libgroff/relocatable.h
76 if USE_GROFF_ALLOCATOR
77 libgroff_a_SOURCES += \
78 src/libs/libgroff/new.cpp
80 nodist_libgroff_a_SOURCES = src/libs/libgroff/version.cpp
82 # TODO: these .c files could be removed (use gnulib instead).
84 src/libs/libgroff/mkstemp.cpp \
85 src/libs/libgroff/fmod.c \
86 src/libs/libgroff/getcwd.c \
87 src/libs/libgroff/putenv.c \
88 src/libs/libgroff/strcasecmp.c \
89 src/libs/libgroff/strerror.c \
90 src/libs/libgroff/strncasecmp.c \
91 src/libs/libgroff/strtol.c \
92 src/libs/libgroff/config.charset \
93 src/libs/libgroff/ref-add.sin \
94 src/libs/libgroff/ref-del.sin \
95 src/libs/libgroff/make-uniuni
98 src/libs/libgroff/version.cpp \
103 # .o files have a 'libgroff_a-' prefix because we set
104 # libgroff_a_CPPFLAGS.
105 src/libs/libgroff/libgroff_a-device.$(OBJEXT): defs.h
106 src/libs/libgroff/libgroff_a-fontfile.$(OBJEXT): defs.h
107 src/libs/libgroff/libgroff_a-macropath.$(OBJEXT): defs.h
108 src/libs/libgroff/libgroff_a-relocate.$(OBJEXT): defs.h
110 src/libs/libgroff/version.cpp: $(top_srcdir)/.version
111 $(AM_V_at)printf 'const char *version_string = "%s.%s";\n' \
112 $(MAJOR_VERSION) $(MINOR_VERSION) > $@.tmp
113 $(AM_V_at)printf 'const char *revision_string = "%s";\n' \
114 $(REVISION) >> $@.tmp
116 'extern "C" {\nconst char *Version_string = "%s";\n}\n' \
118 $(AM_V_GEN)mv $@.tmp $@
120 # Data for localcharset.c. Taken from libiconv/libcharset.
122 LIBGROFF_PACKAGE = groff
124 all: charset.alias ref-add.sed ref-del.sed
126 charset.alias: $(libgroff_srcdir)/config.charset
127 $(AM_V_GEN)$(SHELL) $(libgroff_srcdir)/config.charset \
131 ref-add.sed: $(libgroff_srcdir)/ref-add.sin
132 $(AM_V_GEN)sed -e '/^#/d' \
133 -e 's/@''PACKAGE''@/$(LIBGROFF_PACKAGE)/g' \
134 $(libgroff_srcdir)/ref-add.sin > t-$@ \
137 ref-del.sed: $(libgroff_srcdir)/ref-del.sin
138 $(AM_V_GEN)sed -e '/^#/d' \
139 -e 's/@''PACKAGE''@/$(LIBGROFF_PACKAGE)/g' \
140 $(libgroff_srcdir)/ref-del.sin > t-$@ \
143 install-data-local: install_charset_data
144 install_charset_data:
145 -test $(GLIBC21) != no || $(mkinstalldirs) $(DESTDIR)$(libdir)
146 if test -f $(DESTDIR)$(libdir)/charset.alias; then \
147 sed -f ref-add.sed $(DESTDIR)$(libdir)/charset.alias \
148 > $(DESTDIR)$(libdir)/t-charset.alias; \
149 $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
150 $(DESTDIR)$(libdir)/charset.alias; \
151 rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
153 if test $(GLIBC21) = no; then \
154 sed -f ref-add.sed charset.alias \
155 > $(DESTDIR)$(libdir)/t-charset.alias; \
156 $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
157 $(DESTDIR)$(libdir)/charset.alias; \
158 rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
162 uninstall-local: uninstall_charset_data
163 uninstall_charset_data:
164 -if test -f $(DESTDIR)$(libdir)/charset.alias; then \
165 sed -f ref-del.sed $(DESTDIR)$(libdir)/charset.alias \
166 > $(DESTDIR)$(libdir)/t-charset.alias; \
167 if grep '^# Packages using this file: $$' \
168 $(DESTDIR)$(libdir)/t-charset.alias > /dev/null; then \
169 rm -f $(DESTDIR)$(libdir)/charset.alias; \
171 $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
172 $(DESTDIR)$(libdir)/charset.alias; \
174 rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
179 # mode: makefile-automake
182 # vim: set autoindent filetype=automake textwidth=72: