Imported Upstream version 1.23.0
[platform/upstream/groff.git] / src / libs / libgroff / libgroff.am
1 # Copyright (C) 2014-2020 Free Software Foundation, Inc.
2 #
3 # This file is part of groff.
4 #
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.
9 #
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
13 # for more details.
14 #
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/>.
17
18 libgroff_srcdir = $(top_srcdir)/src/libs/libgroff
19 noinst_LIBRARIES += libgroff.a
20 libgroff_a_CPPFLAGS = \
21   $(AM_CPPFLAGS) \
22   -D__GETOPT_PREFIX=groff_ \
23   -DENABLE_RELOCATABLE=1 \
24   -DLIBDIR=\"$(libdir)\"
25
26 # Build from OBJS
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
79 endif
80 nodist_libgroff_a_SOURCES = src/libs/libgroff/version.cpp
81
82 # TODO: these .c files could be removed (use gnulib instead).
83 EXTRA_DIST += \
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
96
97 CLEANFILES += \
98   src/libs/libgroff/version.cpp \
99   charset.alias \
100   ref-add.sed \
101   ref-del.sed
102
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
109
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
115         $(AM_V_at)printf \
116           'extern "C" {\nconst char *Version_string = "%s";\n}\n' \
117           $(VERSION) >> $@.tmp
118         $(AM_V_GEN)mv $@.tmp $@
119
120 # Data for localcharset.c.  Taken from libiconv/libcharset.
121
122 LIBGROFF_PACKAGE = groff
123
124 all: charset.alias ref-add.sed ref-del.sed
125
126 charset.alias: $(libgroff_srcdir)/config.charset
127         $(AM_V_GEN)$(SHELL) $(libgroff_srcdir)/config.charset \
128             '$(HOST)' > t-$@ \
129           && mv t-$@ $@
130
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-$@ \
135           && mv t-$@ $@
136
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-$@ \
141           && mv t-$@ $@
142
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; \
152         else \
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; \
159           fi; \
160         fi
161
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; \
170           else \
171             $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
172               $(DESTDIR)$(libdir)/charset.alias; \
173           fi; \
174           rm -f $(DESTDIR)$(libdir)/t-charset.alias; \
175         fi
176
177
178 # Local Variables:
179 # mode: makefile-automake
180 # fill-column: 72
181 # End:
182 # vim: set autoindent filetype=automake textwidth=72: