840d9934afcce10d7ea88cdce0c5e4fdfacda33c
[platform/upstream/groff.git] / src / libs / libgroff / Makefile.sub
1 # Makefile.sub for `libgroff'
2 #
3 # File position: <groff-source>/src/libs/libgroff/Makefile.sub
4 #
5 # Copyright (C) 2014  Free Software Foundation, Inc.
6 #
7 # This file is part of `font utf8' which is part of `groff'.
8 #
9 # `groff' is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # `groff' is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with this program. If not, see
21 # <http://www.gnu.org/licenses/gpl-2.0.html>.
22 #
23 ########################################################################
24
25 LIB=groff
26 EXTRA_CFLAGS=-D__GETOPT_PREFIX=groff_ \
27              -DENABLE_RELOCATABLE=1 \
28              -DLIBDIR=\"$(libdir)\"
29 OBJS=\
30   assert.$(OBJEXT) \
31   change_lf.$(OBJEXT) \
32   cmap.$(OBJEXT) \
33   color.$(OBJEXT) \
34   cset.$(OBJEXT) \
35   device.$(OBJEXT) \
36   errarg.$(OBJEXT) \
37   error.$(OBJEXT) \
38   fatal.$(OBJEXT) \
39   filename.$(OBJEXT) \
40   font.$(OBJEXT) \
41   fontfile.$(OBJEXT) \
42   geometry.$(OBJEXT) \
43   getopt.$(OBJEXT) \
44   getopt1.$(OBJEXT) \
45   glyphuni.$(OBJEXT) \
46   htmlhint.$(OBJEXT) \
47   hypot.$(OBJEXT) \
48   iftoa.$(OBJEXT) \
49   invalid.$(OBJEXT) \
50   itoa.$(OBJEXT) \
51   lf.$(OBJEXT) \
52   lineno.$(OBJEXT) \
53   localcharset.$(OBJEXT) \
54   macropath.$(OBJEXT) \
55   matherr.$(OBJEXT) \
56   maxfilename.$(OBJEXT) \
57   maxpathname.$(OBJEXT) \
58   mksdir.$(OBJEXT) \
59   nametoindex.$(OBJEXT) \
60   new.$(OBJEXT) \
61   paper.$(OBJEXT) \
62   prime.$(OBJEXT) \
63   progname.$(OBJEXT) \
64   ptable.$(OBJEXT) \
65   quotearg.$(OBJEXT) \
66   relocate.$(OBJEXT) \
67   searchpath.$(OBJEXT) \
68   spawnvp.$(OBJEXT) \
69   string.$(OBJEXT) \
70   strsave.$(OBJEXT) \
71   symbol.$(OBJEXT) \
72   tmpfile.$(OBJEXT) \
73   tmpname.$(OBJEXT) \
74   unicode.$(OBJEXT) \
75   uniglyph.$(OBJEXT) \
76   uniuni.$(OBJEXT) \
77   version.$(OBJEXT) \
78   $(LIBOBJS)
79 CCSRCS=\
80   $(srcdir)/assert.cpp \
81   $(srcdir)/change_lf.cpp \
82   $(srcdir)/cmap.cpp \
83   $(srcdir)/color.cpp \
84   $(srcdir)/cset.cpp \
85   $(srcdir)/device.cpp \
86   $(srcdir)/errarg.cpp \
87   $(srcdir)/error.cpp \
88   $(srcdir)/fatal.cpp \
89   $(srcdir)/filename.cpp \
90   $(srcdir)/font.cpp \
91   $(srcdir)/fontfile.cpp \
92   $(srcdir)/geometry.cpp \
93   $(srcdir)/glyphuni.cpp \
94   $(srcdir)/htmlhint.cpp \
95   $(srcdir)/hypot.cpp \
96   $(srcdir)/invalid.cpp \
97   $(srcdir)/lf.cpp \
98   $(srcdir)/lineno.cpp \
99   $(srcdir)/macropath.cpp \
100   $(srcdir)/maxfilename.cpp \
101   $(srcdir)/maxpathname.cpp \
102   $(srcdir)/mksdir.cpp \
103   $(srcdir)/mkstemp.cpp \
104   $(srcdir)/nametoindex.cpp \
105   $(srcdir)/new.cpp \
106   $(srcdir)/paper.cpp \
107   $(srcdir)/prime.cpp \
108   $(srcdir)/ptable.cpp \
109   $(srcdir)/relocate.cpp \
110   $(srcdir)/searchpath.cpp \
111   $(srcdir)/string.cpp \
112   $(srcdir)/strsave.cpp \
113   $(srcdir)/symbol.cpp \
114   $(srcdir)/tmpfile.cpp \
115   $(srcdir)/tmpname.cpp \
116   $(srcdir)/unicode.cpp \
117   $(srcdir)/uniglyph.cpp \
118   $(srcdir)/uniuni.cpp \
119   version.cpp
120 CSRCS=\
121   $(srcdir)/fmod.c \
122   $(srcdir)/getcwd.c \
123   $(srcdir)/getopt.c \
124   $(srcdir)/getopt1.c \
125   $(srcdir)/iftoa.c \
126   $(srcdir)/itoa.c \
127   $(srcdir)/localcharset.c \
128   $(srcdir)/matherr.c \
129   $(srcdir)/progname.c \
130   $(srcdir)/putenv.c \
131   $(srcdir)/quotearg.c \
132   $(srcdir)/spawnvp.c \
133   $(srcdir)/strcasecmp.c \
134   $(srcdir)/strerror.c \
135   $(srcdir)/strncasecmp.c \
136   $(srcdir)/strtol.c \
137   $(srcdir)/../snprintf/snprintf.c
138 GENSRCS=\
139   version.cpp
140 RM=rm -f
141
142 src_version=`cat $(top_srcdir)/VERSION`
143 src_revision=`cat $(top_srcdir)/REVISION`
144
145 version.cpp: $(top_srcdir)/VERSION $(top_srcdir)/REVISION
146         @echo Making version.cpp
147         @echo const char \*version_string = \"$(src_version)\"\; >$@
148         @echo const char \*revision_string = \"$(src_revision)\"\; >>$@
149         @echo extern \"C\" const char \*Version_string = \"$(src_version).$(src_revision)\"\; \
150           | sed -e 's/\.0\"/\"/' >>$@
151
152 # We have to avoid $(COMPILE.c) since we must not use groff's `assert.h'
153 snprintf.$(OBJEXT): $(srcdir)/../snprintf/snprintf.c
154         $(CC) -c $(CDEFINES) $(CFLAGS) $(CPPFLAGS) \
155           $(srcdir)/../snprintf/snprintf.c
156
157 # Data for localcharset.c.  Taken from libiconv/libcharset.
158
159 all: charset.alias ref-add.sed ref-del.sed
160
161 charset.alias: $(srcdir)/config.charset
162         $(SHELL) $(srcdir)/config.charset '$(HOST)' > t-$@
163         mv t-$@ $@
164
165 PACKAGE=groff
166
167 ref-add.sed : $(srcdir)/ref-add.sin
168         sed -e '/^#/d' \
169             -e 's/@''PACKAGE''@/$(PACKAGE)/g' $(srcdir)/ref-add.sin > t-$@
170         mv t-$@ $@
171
172 ref-del.sed : $(srcdir)/ref-del.sin
173         sed -e '/^#/d' \
174             -e 's/@''PACKAGE''@/$(PACKAGE)/g' $(srcdir)/ref-del.sin > t-$@
175         mv t-$@ $@
176
177 MKINSTALLDIRS = $(SHELL) $(top_srcdir)/mkinstalldirs
178
179 install_data: install_charset_data
180 install_charset_data:
181         -test $(GLIBC21) != no || $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
182         if test -f $(DESTDIR)$(libdir)/charset.alias; then \
183           sed -f ref-add.sed $(DESTDIR)$(libdir)/charset.alias \
184             > $(DESTDIR)$(libdir)/t-charset.alias; \
185           $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
186             $(DESTDIR)$(libdir)/charset.alias; \
187           $(RM) $(DESTDIR)$(libdir)/t-charset.alias; \
188         else \
189           if test $(GLIBC21) = no; then \
190             sed -f ref-add.sed charset.alias \
191               > $(DESTDIR)$(libdir)/t-charset.alias; \
192             $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
193               $(DESTDIR)$(libdir)/charset.alias; \
194             $(RM) $(DESTDIR)$(libdir)/t-charset.alias; \
195           fi; \
196         fi
197
198 uninstall_sub: uninstall_charset_data
199 uninstall_charset_data:
200         -if test -f $(DESTDIR)$(libdir)/charset.alias; then \
201           sed -f ref-del.sed $(DESTDIR)$(libdir)/charset.alias \
202             > $(DESTDIR)$(libdir)/t-charset.alias; \
203           if grep '^# Packages using this file: $$' \
204                   $(DESTDIR)$(libdir)/t-charset.alias > /dev/null; then \
205             $(RM) $(DESTDIR)$(libdir)/charset.alias; \
206           else \
207             $(INSTALL_DATA) $(DESTDIR)$(libdir)/t-charset.alias \
208               $(DESTDIR)$(libdir)/charset.alias; \
209           fi; \
210           $(RM) $(DESTDIR)$(libdir)/t-charset.alias; \
211         fi
212
213 clean: clean_charset
214 clean_charset:
215         $(RM) charset.alias ref-add.sed ref-del.sed
216
217 ########################################################################
218 # Emacs settings
219 ########################################################################
220 #
221 # Local Variables:
222 # mode: makefile
223 # End: