1# @configure_input@ 2# Makefile for libcpp. Run 'configure' to generate Makefile from Makefile.in 3 4# Copyright (C) 2004 Free Software Foundation, Inc. 5 6#This file is part of libcpp. 7 8#libcpp is free software; you can redistribute it and/or modify 9#it under the terms of the GNU General Public License as published by 10#the Free Software Foundation; either version 2, or (at your option) 11#any later version. 12 13#libcpp is distributed in the hope that it will be useful, 14#but WITHOUT ANY WARRANTY; without even the implied warranty of 15#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16#GNU General Public License for more details. 17 18#You should have received a copy of the GNU General Public License 19#along with libcpp; see the file COPYING. If not, write to 20#the Free Software Foundation, 51 Franklin Street, Fifth Floor, 21#Boston MA 02110-1301, USA. 22 23@SET_MAKE@ 24 25srcdir = @srcdir@ 26top_builddir = . 27VPATH = @srcdir@ 28INSTALL = @INSTALL@ 29AR = ar 30ARFLAGS = cru 31ACLOCAL = @ACLOCAL@ 32AUTOCONF = @AUTOCONF@ 33AUTOHEADER = @AUTOHEADER@ 34CATALOGS = $(patsubst %,po/%,@CATALOGS@) 35CC = @CC@ 36CFLAGS = @CFLAGS@ 37WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@ 38CPP = @CPP@ 39CPPFLAGS = @CPPFLAGS@ 40EXEEXT = @EXEEXT@ 41GMSGFMT = @GMSGFMT@ 42INCINTL = @INCINTL@ 43INSTALL_DATA = @INSTALL_DATA@ 44INSTALL_PROGRAM = @INSTALL_PROGRAM@ 45INSTALL_SCRIPT = @INSTALL_SCRIPT@ 46LDFLAGS = @LDFLAGS@ 47LIBICONV = @LIBICONV@ 48LIBINTL = @LIBINTL@ 49PACKAGE = @PACKAGE@ 50RANLIB = @RANLIB@ 51SHELL = @SHELL@ 52USED_CATALOGS = @USED_CATALOGS@ 53XGETTEXT = @XGETTEXT@ 54DEPMODE = @CCDEPMODE@ 55DEPDIR = @DEPDIR@ 56 57datadir = @datadir@ 58exec_prefix = @prefix@ 59libdir = @libdir@ 60localedir = $(datadir)/locale 61prefix = @prefix@ 62 63MSGMERGE = msgmerge 64mkinstalldirs = $(SHELL) $(srcdir)/../mkinstalldirs 65depcomp = $(SHELL) $(srcdir)/../depcomp 66 67INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \ 68 -I$(srcdir)/include 69 70ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) 71 72libcpp_a_OBJS = charset.o directives.o errors.o expr.o files.o \ 73 identifiers.o init.o lex.o line-map.o macro.o mkdeps.o \ 74 pch.o symtab.o traditional.o 75makedepend_OBJS = makedepend.o 76 77libcpp_a_SOURCES = charset.c directives.c errors.c expr.c files.c \ 78 identifiers.c init.c lex.c line-map.c macro.c mkdeps.c \ 79 pch.c symtab.c traditional.c 80 81all: libcpp.a makedepend$(EXEEXT) $(USED_CATALOGS) 82 83.SUFFIXES: 84.SUFFIXES: .c .gmo .o .obj .po .pox 85 86libcpp.a: $(libcpp_a_OBJS) 87 -rm -f libcpp.a 88 $(AR) $(ARFLAGS) libcpp.a $(libcpp_a_OBJS) 89 $(RANLIB) libcpp.a 90 91makedepend$(EXEEXT): $(makedepend_OBJS) libcpp.a ../libiberty/libiberty.a 92 @rm -f makedepend$(EXEEXT) 93 $(CC) $(CFLAGS) $(LDFLAGS) -o makedepend$(EXEEXT) \ 94 $(makedepend_OBJS) libcpp.a ../libiberty/libiberty.a \ 95 $(LIBINTL) $(LIBICONV) 96 97# Rules to rebuild the configuration 98 99Makefile: $(srcdir)/Makefile.in config.status 100 $(SHELL) ./config.status Makefile 101 102config.status: $(srcdir)/configure 103 $(SHELL) ./config.status --recheck 104 105$(srcdir)/configure: @MAINT@ $(srcdir)/aclocal.m4 106 cd $(srcdir) && $(AUTOCONF) 107 108$(srcdir)/aclocal.m4: @MAINT@ $(srcdir)/../config/acx.m4 \ 109 $(srcdir)/../config/gettext-sister.m4 $(srcdir)/../config/iconv.m4 \ 110 $(srcdir)/../config/codeset.m4 $(srcdir)/../config/lib-ld.m4 \ 111 $(srcdir)/../config/lib-link.m4 $(srcdir)/../config/lib-prefix.m4 \ 112 $(srcdir)/configure.ac 113 cd $(srcdir) && $(ACLOCAL) -I ../config 114 115config.h: stamp-h1 116 test -f config.h || (rm -f stamp-h1 && $(MAKE) stamp-h1) 117 118stamp-h1: $(srcdir)/config.in config.status 119 -rm -f stamp-h1 120 $(SHELL) ./config.status config.h 121 122$(srcdir)/config.in: @MAINT@ $(srcdir)/configure 123 cd $(srcdir) && $(AUTOHEADER) 124 -rm -f stamp-h1 125 126# It is not possible to get LOCALEDIR defined in config.h because 127# the value it needs to be defined to is only determined in the 128# Makefile. Hence we do this instead. 129localedir.h: localedir.hs; @true 130localedir.hs: Makefile 131 echo "#define LOCALEDIR \"$(localedir)\"" > localedir.new 132 $(srcdir)/../move-if-change localedir.new localedir.h 133 echo timestamp > localedir.hs 134 135# Installation rules and other phony targets 136 137# These rule has to look for .gmo modules in both srcdir and 138# the cwd, and has to check that we actually have a catalog 139# for each language, in case they weren't built or included 140# with the distribution. 141installdirs: 142 @$(mkinstalldirs) $(DESTDIR)$(datadir); \ 143 cats="$(CATALOGS)"; for cat in $$cats; do \ 144 lang=`basename $$cat | sed 's/\.gmo$$//'`; \ 145 if [ -f $$cat ] || [ -f $(srcdir)/$$cat ]; then \ 146 dir=$(localedir)/$$lang/LC_MESSAGES; \ 147 $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \ 148 fi; \ 149 done 150 151install-strip install: all installdirs 152 cats="$(CATALOGS)"; for cat in $$cats; do \ 153 lang=`basename $$cat | sed 's/\.gmo$$//'`; \ 154 if [ -f $$cat ]; then :; \ 155 elif [ -f $(srcdir)/$$cat ]; then cat=$(srcdir)/$$cat; \ 156 else continue; \ 157 fi; \ 158 dir=$(localedir)/$$lang/LC_MESSAGES; \ 159 echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ 160 $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ 161 done 162 163mostlyclean: 164 -rm -f *.o 165 166clean: mostlyclean 167 -rm -rf makedepend$(EXEEXT) libcpp.a $(srcdir)/autom4te.cache 168 169distclean: clean 170 -rm -f config.h stamp-h1 config.status config.cache config.log \ 171 configure.lineno configure.status.lineno Makefile localedir.h \ 172 localedir.hs $(DEPDIR)/*.Po 173 -rmdir $(DEPDIR) 174 175maintainer-clean: distclean 176 @echo "This command is intended for maintainers to use" 177 @echo "it deletes files that may require special tools to rebuild." 178 -rm -f $(srcdir)/configure $(srcdir)/aclocal.m4 179 180check: 181installcheck: 182dvi: 183pdf: 184html: 185info: 186install-info: 187install-man: 188install-html: 189 190update-po: $(CATALOGS:.gmo=.pox) 191 192.PHONY: installdirs install install-strip mostlyclean clean distclean \ 193 maintainer-clean check installcheck dvi pdf html info install-info \ 194 install-man update-po install-html 195 196# Dependency rule. 197COMPILE.base = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(ALL_CFLAGS) -c 198ifeq ($(DEPMODE),depmode=gcc3) 199COMPILE = $(COMPILE.base) -o $@ -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Po 200else 201COMPILE = source='$<' object='$@' libtool=no DEPDIR=$(DEPDIR) $(DEPMODE) \ 202 $(depcomp) $(COMPILE.base) 203endif 204 205# Implicit rules and I18N 206 207.c.o: 208 $(COMPILE) $< 209 210# N.B. We do not attempt to copy these into $(srcdir). 211.po.gmo: 212 -test -d po || mkdir po 213 $(GMSGFMT) --statistics -o $@ $< 214 215# The new .po has to be gone over by hand, so we deposit it into 216# build/po with a different extension. 217# If build/po/$(PACKAGE).pot exists, use it (it was just created), 218# else use the one in srcdir. 219.po.pox: 220 -test -d po || mkdir po 221 $(MSGMERGE) $< `if test -f po/$(PACKAGE).pot; \ 222 then echo po/$(PACKAGE).pot; \ 223 else echo $(srcdir)/po/$(PACKAGE).pot; fi` -o $@ 224 225# Rule for regenerating the message template. 226$(PACKAGE).pot: po/$(PACKAGE).pot 227po/$(PACKAGE).pot: $(libcpp_a_SOURCES) 228 -test -d $(srcdir)/po || mkdir $(srcdir)/po 229 $(XGETTEXT) --default-domain=$(PACKAGE) \ 230 --keyword=_ --keyword=N_ \ 231 --keyword=cpp_error:3 --keyword=cpp_errno:3 \ 232 --keyword=cpp_error_with_line:5 \ 233 --keyword=SYNTAX_ERROR --keyword=SYNTAX_ERROR2 \ 234 --copyright-holder="Free Software Foundation, Inc." \ 235 --msgid-bugs-address="http://gcc.gnu.org/bugs.html" \ 236 --language=c -o po/$(PACKAGE).pot.tmp $^ 237 sed 's:$(srcdir)/::g' <po/$(PACKAGE).pot.tmp >po/$(PACKAGE).pot 238 rm po/$(PACKAGE).pot.tmp 239 240 241# Tell versions [3.59,3.63) of GNU make to not export all variables. 242# Otherwise a system limit (for SysV at least) may be exceeded. 243.NOEXPORT: 244 245# Dependencies 246-include $(patsubst %.o, $(DEPDIR)/%.Po, $(libcpp_a_OBJS) $(makedepend_OBJS)) 247 248# Dependencies on generated headers have to be explicit. 249init.o: localedir.h 250