1 # Makefile for GNU C Preprocessor.
3 # hacked from gcc Makefile by kvigor.
5 # Copyright (C) 1987, 1988, 1990, 1991, 1992, 1993, 1994, 1995
6 # 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
8 #This file is part of GNU CC.
10 #GNU CC is free software; you can redistribute it and/or modify
11 #it under the terms of the GNU General Public License as published by
12 #the Free Software Foundation; either version 2, or (at your option)
15 #GNU CC is distributed in the hope that it will be useful,
16 #but WITHOUT ANY WARRANTY; without even the implied warranty of
17 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 #GNU General Public License for more details.
20 #You should have received a copy of the GNU General Public License
21 #along with GNU CC; see the file COPYING. If not, write to
22 #the Free Software Foundation, 59 Temple Place - Suite 330,
23 #Boston MA 02111-1307, USA.
26 TARGET = ../../bin/sdcpp$(EXEEXT)
30 # This is the default target.
33 # Directory where sources are, from where we are.
40 ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) \
41 $(CFLAGS) $(WARN_CFLAGS) $(XCFLAGS) @DEFS@
42 ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
51 # on sysV, define this as cp.
53 # Some systems may be missing symbolic links, regular links, or both.
54 # Allow configure to check this and use "ln -s", "ln", or "cp" as appropriate.
57 # These permit overriding just for certain files.
58 INSTALL_PROGRAM = @INSTALL_PROGRAM@
59 INSTALL_DATA = @INSTALL_DATA@
61 # Some compilers can't handle cc -c blah.c -o foo/blah.o.
62 # In stage2 and beyond, we force this to "-o $@" since we know we're using gcc.
63 OUTPUT_OPTION = @OUTPUT_OPTION@
65 # Some versions of `touch' (such as the version on Solaris 2.8)
66 # do not correctly set the timestamp due to buggy versions of `utime'
67 # in the kernel. So, we use `echo' instead.
68 STAMP = echo timestamp >
70 # Where to find some libiberty headers.
71 LIBIBERTY_DIR = $(srcdir)/libiberty
72 OBSTACK_H = $(LIBIBERTY_DIR)/obstack.h
73 SPLAY_TREE_H= $(LIBIBERTY_DIR)/splay-tree.h
75 # Test to see whether <limits.h> exists in the system header files.
76 LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
78 # Common prefix for installation directories.
79 # NOTE: This directory must exist when you start installation.
81 # Directory in which to put localized header files. On the systems with
82 # gcc as the native cc, `local_prefix' may not be `prefix' which is
84 # NOTE: local_prefix *should not* default from prefix.
85 local_prefix = @local_prefix@
86 # Directory in which to put host dependent programs and libraries
87 exec_prefix = @exec_prefix@
88 # Directory in which to put the executable for the command `gcc'
90 includedir = $(local_prefix)/include
91 # where the info files go
92 exeext = @host_exeext@
94 transform = @program_transform_name@
96 # Top build directory, relative to here.
97 top_builddir = @top_builddir@
99 # Whether we were configured with NLS.
102 # Internationalization library.
103 INTLLIBS = @INTLLIBS@
105 # Change this to a null string if obstacks are installed in the
109 # End of variables for you to override.
112 mkdir -p $(DESTDIR)$(bindir)
113 $(INSTALL) $(TARGET) `echo $(DESTDIR)$(bindir)/sdcpp$(EXEEXT)|sed '$(transform)'`
114 $(STRIP) `echo $(DESTDIR)$(bindir)/sdcpp$(EXEEXT)|sed '$(transform)'`
117 rm -f $(DESTDIR)$(bindir)/sdcpp$(EXEEXT)
119 -rm -f $(TARGET) *.o core libcpp.a
122 -rm -f auto-host.h auto-build.h cstamp-h Makefile
123 -rm -f configargs.h config.status config.run config.cache config.bak config.log *~
125 # This tells GNU Make version 3 not to put all variables in the environment.
128 # GCONFIG_H lists the config files that the generator files depend on, while
129 # CONFIG_H lists the the ones ordinary gcc files depend on, which includes
130 # a file generated by gencodes.
132 SYSTEM_H = system.h hwint.h
134 # sed inserts variable overrides after the following line.
149 INCLUDES = -I$(srcdir) -I$(LIBIBERTY_DIR) -I.
151 # Always use -I$(srcdir)/config when compiling.
153 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
155 # cstamp-h.in controls rebuilding of config.in.
156 # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't
157 # delete it. A stamp file is needed as autoheader won't update the file if
158 # nothing has changed.
159 # It remains in the source directory and is part of the distribution.
160 # This follows what is done in shellutils, fileutils, etc.
161 # "echo timestamp" is used instead of touch to be consistent with other
162 # packages that use autoconf (??? perhaps also to avoid problems with patch?).
163 # ??? Newer versions have a maintainer mode that may be useful here.
164 $(srcdir)/config.in: $(srcdir)/cstamp-h.in $(srcdir)/acconfig.h
165 $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h
166 (cd $(srcdir) && autoheader)
167 @rm -f $(srcdir)/cstamp-h.in
168 echo timestamp > $(srcdir)/cstamp-h.in
169 auto-host.h: cstamp-h ; @true
170 cstamp-h: config.in config.status
171 CONFIG_HEADERS=auto-host.h:config.in LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status
173 # Really, really stupid make features, such as SUN's KEEP_STATE, may force
174 # a target to build even if it is up-to-date. So we must verify that
175 # config.status does not exist before failing.
176 config.status: $(srcdir)/configure version.c
177 @if [ ! -f config.status ] ; then \
178 echo You must configure gcc. Look at http://gcc.gnu.org/install/ for details.; \
181 LANGUAGES="$(CONFIG_LANGUAGES)" $(SHELL) config.status --recheck; \
184 version.o: version.c version.h
186 hashtable.o: hashtable.c hashtable.h $(CONFIG_H) $(SYSTEM_H) $(OBSTACK_H)
188 line-map.o: line-map.c line-map.h intl.h $(CONFIG_H) $(SYSTEM_H)
190 mbchar.o: mbchar.c mbchar.h $(CONFIG_H) $(SYSTEM_H)
192 prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_H) Makefile prefix.h
193 $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
194 -DPREFIX=\"$(prefix)\" \
195 -c $(srcdir)/prefix.c
198 # Remake cpp and protoize.
200 PREPROCESSOR_DEFINES = \
201 -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
202 -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
203 -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_alias)\" \
204 -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
205 -DLOCAL_INCLUDE_DIR=\"$(includedir)\" \
206 -DCROSS_INCLUDE_DIR=\"$(gcc_tooldir)/sys-include\" \
207 -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\"
209 LIBCPP_OBJS = cpplib.o cpplex.o cppmacro.o cppexp.o cppfiles.o \
210 cpphash.o cpperror.o cppinit.o cppdefault.o \
211 hashtable.o mkdeps.o prefix.o version.o mbchar.o \
214 LIBCPP_DEPS = cpplib.h cpphash.h hashtable.h intl.h $(OBSTACK_H) $(SYSTEM_H)
216 # Most of the other archives built/used by this makefile are for
217 # targets. This one is strictly for the host.
218 libcpp.a: $(LIBCPP_OBJS)
220 $(AR) $(AR_FLAGS) libcpp.a $(LIBCPP_OBJS)
223 MY_LIBIBERTY_BITS = safe-ctype.o obstack.o splay-tree.o \
224 lbasename.o hex.o concat.o
226 $(TARGET): cppmain.o $(MY_LIBIBERTY_BITS) libcpp.a $(LIBDEPS)
228 $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ cppmain.o \
229 $(MY_LIBIBERTY_BITS) libcpp.a $(LIBS)
231 cppmain.o: cppmain.c $(CONFIG_H) cpplib.h intl.h $(SYSTEM_H)
233 cpperror.o: cpperror.c $(CONFIG_H) $(LIBCPP_DEPS)
234 cppexp.o: cppexp.c $(CONFIG_H) $(LIBCPP_DEPS)
235 cpplex.o: cpplex.c $(CONFIG_H) $(LIBCPP_DEPS) mbchar.h
236 cppmacro.o: cppmacro.c $(CONFIG_H) $(LIBCPP_DEPS)
237 cpplib.o: cpplib.c $(CONFIG_H) $(LIBCPP_DEPS)
238 cpphash.o: cpphash.c $(CONFIG_H) $(LIBCPP_DEPS)
239 cppfiles.o: cppfiles.c $(CONFIG_H) $(LIBCPP_DEPS) $(SPLAY_TREE_H) mkdeps.h
240 cppinit.o: cppinit.c $(CONFIG_H) $(LIBCPP_DEPS) cppdefault.h \
241 mkdeps.h prefix.h output.h version.h
242 safe-ctype.o: $(LIBIBERTY_DIR)/safe-ctype.c $(LIBIBERTY_DIR)/safe-ctype.h $(CONFIG_H) $(LIBCPP_DEPS)
243 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
244 obstack.o: $(LIBIBERTY_DIR)/obstack.c $(LIBIBERTY_DIR)/obstack.h $(CONFIG_H) $(LIBCPP_DEPS)
245 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
246 splay-tree.o: $(LIBIBERTY_DIR)/splay-tree.c $(LIBIBERTY_DIR)/splay-tree.h $(CONFIG_H) $(LIBCPP_DEPS)
247 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
248 lbasename.o: $(LIBIBERTY_DIR)/lbasename.c $(CONFIG_H) $(LIBCPP_DEPS)
249 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
250 hex.o: $(LIBIBERTY_DIR)/hex.c $(CONFIG_H) $(LIBCPP_DEPS)
251 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
252 concat.o: $(LIBIBERTY_DIR)/concat.c $(CONFIG_H) $(LIBCPP_DEPS)
253 $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION)
254 cppdefault.o: cppdefault.c $(CONFIG_H) $(SYSTEM_H) cppdefault.h Makefile
255 $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
256 $(PREPROCESSOR_DEFINES) \
257 -c $(srcdir)/cppdefault.c
259 mkdeps.o: mkdeps.c $(CONFIG_H) $(SYSTEM_H) mkdeps.h