]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/treelang/Make-lang.in
patch_tester.sh (usage): Watermark is not lexicographic.
[thirdparty/gcc.git] / gcc / treelang / Make-lang.in
CommitLineData
6cfea11b
TJ
1# Top level makefile fragment for TREELANG For GCC. -*- makefile -*-
2
44cabb12 3# Copyright (C) 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005,
edf06e44 4# 2006, 2007 Free Software Foundation, Inc.
6cfea11b 5
edf06e44 6# This file is part of GCC.
6cfea11b 7
edf06e44
NC
8# GCC 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 3, or (at your option)
11# any later version.
6cfea11b 12
edf06e44
NC
13# GCC 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 GCC; see the file COPYING3. If not see
20# <http://www.gnu.org/licenses/>.
6cfea11b 21
6cfea11b
TJ
22
23# This file provides the language dependent support in the main Makefile.
24# Each language makefile fragment must provide the following targets:
25#
bd97af06 26# foo.all.cross, foo.start.encap, foo.rest.encap,
e1eefa15
BM
27# foo.install-common, foo.install-man, foo.install-info, foo.install-pdf,
28# foo.info, foo.dvi, foo.pdf, foo.html, foo.uninstall,
a03ad584 29# foo.mostlyclean, foo.clean, foo.distclean,
6cfea11b
TJ
30# foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4
31#
32# where `foo' is the name of the language.
33#
34# It should also provide rules for:
35#
597eb1d7
JM
36# - making any compiler driver (eg: gcc)
37# - the compiler proper (eg: tree1)
6cfea11b
TJ
38# - define the names for selecting the language in LANGUAGES.
39#\f
40
41## note program-prefix and program-suffix options are not supported
42## just program_transform_name which is a sed script to transform the
43## names
44
45TREELANGSED = sed
46TREELANGSEDFLAGS = -n
47
6cfea11b
TJ
48GCC_EXTRAS = -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include
49
50# ./xgcc is the just built compiler. See GCC_FOR_TARGET in the GCC Makefile.in.
51# If this can't be found, you probably have not done a bootstrap of GCC,
52# which you need to do.
53
54# GCC_FOR_TREELANG = ./xgcc $(GCC_EXTRAS)
55
03787dfd 56TREE_GENERATED = lex.c parse.c parse.h parse.output
597eb1d7
JM
57# We need to use something other than treelang here because the directory
58# is called treelang
59TREE_EXES = gtreelang
6cfea11b 60
1daf6f3a
ZW
61#strict warnings for treelang
62treelang-warn = $(STRICT_WARN)
e5fcbd77
MM
63# bison emits some unused static arrays (yytoknum)
64treelang/parse.o-warn = -Wno-error
046e4e36
ZW
65# flex produces 'no previous prototype' warnings
66treelang/lex.o-warn = -Wno-error
6cfea11b
TJ
67
68#\f
69# Define the names for selecting treelang in LANGUAGES.
70
9d29a5b7 71.phony: treelang
6cfea11b 72
9d29a5b7 73treelang:treelang.done
6cfea11b 74
597eb1d7 75treelang.done: gtreelang$(exeext) tree1$(exeext)
6cfea11b
TJ
76 $(STAMP) treelang.done
77
78# no preprocessor
79
e5fcbd77 80# core compiler
31c56a8b
FH
81tree1$(exeext): treelang/tree1.o treelang/treetree.o treelang/tree-convert.o \
82 treelang/lex.o treelang/parse.o \
352a77c8 83 $(BACKEND) $(LIBSDEPS) attribs.o
6cfea11b 84 $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
31c56a8b
FH
85 treelang/tree1.o treelang/treetree.o treelang/tree-convert.o \
86 treelang/lex.o treelang/parse.o \
72fb133f 87 $(BACKEND) $(LIBS) attribs.o $(GMPLIBS)
6cfea11b 88
597eb1d7 89# Create the compiler driver treelang.
14c7833c 90gtreelang$(exeext): $(GCC_OBJS) version.o prefix.o intl.o $(EXTRA_GCC_OBJS) \
597eb1d7
JM
91 $(LIBDEPS) treelang/spec.o
92 $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ treelang/spec.o \
14c7833c 93 $(GCC_OBJS) version.o prefix.o intl.o $(EXTRA_GCC_OBJS) $(LIBS)
597eb1d7
JM
94
95
96
6cfea11b
TJ
97#\f
98# Compiling object files from source files.
99
100# object file makes
101
4977bab6 102treelang/tree1.o: treelang/tree1.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
48779194 103 $(FLAGS_H) toplev.h $(GGC_H) $(TREE_H) $(DIAGNOSTIC_H) treelang/treelang.h \
9cffadfb 104 input.h treelang/treetree.h options.h opts.h \
4977bab6
ZW
105 treelang/treetree.h gt-treelang-tree1.h gtype-treelang.h
106
107treelang/treetree.o: treelang/treetree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
48779194
VR
108 $(TM_H) $(TREE_H) $(FLAGS_H) output.h $(RTL_H) $(GGC_H) toplev.h \
109 $(VARRAY_H) $(LANGHOOKS_DEF_H) langhooks.h treelang/treelang.h input.h \
05b44921 110 treelang/treetree.h treelang/parse.h $(TARGET_H)
4977bab6 111
9cffadfb 112treelang/tree-convert.o: treelang/tree-convert.c $(CONFIG_H) $(SYSTEM_H) \
48779194 113 coretypes.h $(DIAGNOSTIC_H) $(TREE_H) $(FLAGS_H) toplev.h langhooks.h $(TM_H)
31c56a8b 114
597eb1d7 115treelang/spec.o: treelang/spec.c $(CONFIG_H) $(SYSTEM_H) \
48779194 116 coretypes.h $(DIAGNOSTIC_H) $(TREE_H) $(FLAGS_H) toplev.h langhooks.h $(TM_H)
597eb1d7 117
03787dfd 118treelang/parse.o: treelang/parse.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
48779194 119 $(TM_H) $(DIAGNOSTIC_H) treelang/treelang.h input.h treelang/treetree.h \
4c714dd4 120 toplev.h
4977bab6 121
03787dfd 122treelang/lex.o: treelang/lex.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
48779194 123 $(TM_H) $(DIAGNOSTIC_H) $(TREE_H) treelang/treelang.h input.h \
4c714dd4 124 treelang/parse.h toplev.h
6cfea11b
TJ
125
126# generated files the files from lex and yacc are put into the source
127# directory in case someone wants to build but does not have
128# lex/yacc
129
03787dfd
KC
130treelang.srcextra: treelang/parse.c treelang/parse.h treelang/lex.c
131 -cp -p $^ $(srcdir)/treelang
132
133treelang/lex.c: treelang/lex.l
134 -$(FLEX) $(FLEXFLAGS) -o$@ $<
6cfea11b 135
03787dfd
KC
136treelang/parse.c treelang/parse.h treelang/parse.output: treelang/parse.y
137 -$(BISON) $(BISONFLAGS) -v --defines --output=treelang/parse.c $<
7fb26bb0 138
6cfea11b
TJ
139# -v
140
141#\f
142# Build hooks:
143
e5fcbd77 144treelang.all.cross:
6cfea11b
TJ
145 _error_not_here_yet - havent even thought about it - it may even work
146
147treelang.start.encap:
e5fcbd77 148treelang.rest.encap:
a541f69d
KC
149treelang.man:
150treelang.srcman:
6cfea11b 151
361617e7 152treelang.tags: force
fbe3f997
JM
153 cd $(srcdir)/treelang; etags -o TAGS.sub *.y *.l *.c *.h; \
154 etags --include TAGS.sub --include ../TAGS.sub
361617e7 155
a541f69d 156treelang.info: doc/treelang.info
6cfea11b 157
a541f69d
KC
158treelang.srcinfo: doc/treelang.info
159 -cp -p $^ $(srcdir)/doc
160
b2d7fd7b 161treelang.dvi: doc/treelang.dvi
a541f69d 162
e1eefa15
BM
163TREELANG_PDFFILES = doc/treelang.pdf
164
165treelang.pdf: $(TREELANG_PDFFILES)
b5422ad7 166
9d65c5cb 167TEXI_TREELANG_FILES = treelang/treelang.texi \
ad3a7ce3
CD
168 $(gcc_docdir)/include/gcc-common.texi \
169 $(gcc_docdir)/include/gpl.texi \
170 $(gcc_docdir)/include/fdl.texi \
171 $(gcc_docdir)/include/funding.texi \
a1286ef5 172 gcc-vers.texi
9d65c5cb
MS
173
174doc/treelang.info: $(TEXI_TREELANG_FILES)
ad3a7ce3 175 $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir)/include -o $@ $<
6cfea11b 176
9d65c5cb 177doc/treelang.dvi: $(TEXI_TREELANG_FILES)
71cbe2c1 178 $(TEXI2DVI) -I $(abs_docdir)/include -o $@ $<
6cfea11b 179
b5422ad7
BM
180doc/treelang.pdf: $(TEXI_TREELANG_FILES)
181 $(TEXI2PDF) -I $(abs_docdir)/include -o $@ $<
182
22482f74 183treelang.html: $(build_htmldir)/treelang/index.html
9d65c5cb 184
22482f74 185$(build_htmldir)/treelang/index.html: $(TEXI_TREELANG_FILES)
9d65c5cb
MS
186 $(mkinstalldirs) $(@D)
187 rm -f $(@D)/*
ad3a7ce3 188 $(TEXI2HTML) -I $(gcc_docdir)/include -I $(srcdir)/treelang -o $(@D) $<
9d65c5cb 189
6cfea11b
TJ
190#\f
191# Install hooks:
192
e5fcbd77 193# Install
6cfea11b
TJ
194.phony:treelang.install.common
195.phony:treelang.install
196
197treelang.install treelang.install.common treelang.install-common: treelang.install.common.done
198
e5fcbd77 199treelang.install.common.done: installdirs treelang.done
6cfea11b
TJ
200 for name in $(TREE_EXES); \
201 do \
202 if [ -f $$name ] ; then \
203 name2="`echo \`basename $$name\` | sed -e '$(program_transform_name)' `"; \
17b4fdbf
CC
204 rm -f $(DESTDIR)$(bindir)/$$name2$(exeext); \
205 echo $(INSTALL_PROGRAM) $$name$(exeext) $(DESTDIR)$(bindir)/$$name2$(exeext); \
206 $(INSTALL_PROGRAM) $$name$(exeext) $(DESTDIR)$(bindir)/$$name2$(exeext); \
207 chmod a+x $(DESTDIR)$(bindir)/$$name2$(exeext); \
6cfea11b
TJ
208 fi ; \
209 done
210 $(STAMP) treelang.install.common.done
211
97ae108d 212# We might not be able to build the info files
b2d7fd7b 213treelang.install-info: $(DESTDIR)$(infodir)/treelang.info
6cfea11b 214
e1eefa15
BM
215treelang.install-pdf: $(TREELANG_PDFFILES)
216 @$(NORMAL_INSTALL)
217 test -z "$(pdfdir)/gcc" || $(mkinstalldirs) "$(DESTDIR)$(pdfdir)/gcc"
218 @list='$(TREELANG_PDFFILES)'; for p in $$list; do \
219 if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
220 f=$(pdf__strip_dir) \
221 echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/gcc/$$f'"; \
222 $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/gcc/$$f"; \
223 done
224
e5fcbd77 225treelang.install-man:
6cfea11b
TJ
226
227treelang.uninstall:
228 for name in $(TREE_EXES); \
229 do \
230 echo $$name; \
231 name2="`echo $$name | sed -e '$(program_transform_name)' `"; \
232 echo becomes $$name2; \
17b4fdbf
CC
233 echo -rm -rf $(DESTDIR)$(bindir)/$$name2$(exeext); \
234 rm -rf $(DESTDIR)$(bindir)/$$name2$(exeext); \
6cfea11b
TJ
235 done
236 -rm treelang.install.common.done
237
238#\f
239# Clean hooks:
240# A lot of the ancillary files are deleted by the main makefile.
241# We just have to delete files specific to us.
242
e5fcbd77 243treelang.mostlyclean:
6cfea11b
TJ
244 for name in $(TREE_EXES); \
245 do \
246 echo deleting $$name; \
247 if [ -f treelang/$$name$(exeext) ] ; then \
248 rm -f treelang/$$name$(exeext); \
249 fi ; \
250 done
22aa533e
NS
251 -rm -f treelang/*$(objext)
252 -rm -f treelang/*$(coverageexts)
6cfea11b
TJ
253 -rm treelang.done
254
255
256treelang.clean: treelang.mostlyclean
257
258treelang.distclean: treelang.clean
e5fcbd77 259 -rm -f treelang/config.status
6cfea11b
TJ
260 -rm -f treelang/*.output
261
a03ad584 262treelang.maintainer-clean: treelang.distclean
6cfea11b
TJ
263 for name in $(TREE_GENERATED); \
264 do \
265 if [ -f $(srcdir)/treelang/$$name ] ; then \
266 echo deleting $(srcdir)/treelang/$$name; \
267 rm -f $(srcdir)/treelang/$$name; \
268 fi ; \
269 done
270 -rm -R $(srcdir)/treelang/*~
271
272
273#\f
274# Stage hooks:
275# The main makefile has already created stage?/treelang.
276
277treelang.stage1: stage1-start
278 -mv treelang/*$(objext) stage1/treelang
279treelang.stage2: stage2-start
280 -mv treelang/*$(objext) stage2/treelang
281treelang.stage3: stage3-start
282 -mv treelang/*$(objext) stage3/treelang
283treelang.stage4: stage4-start
284 -mv treelang/*$(objext) stage4/treelang
8f231b5d
JH
285treelang.stageprofile: stageprofile-start
286 -mv treelang/*$(objext) stageprofile/treelang
287treelang.stagefeedback: stagefeedback-start
288 -mv treelang/*$(objext) stagefeedback/treelang
6cfea11b
TJ
289#\f
290# Maintenance hooks:
291
6cfea11b 292# test hook
6cfea11b 293
96e3ac4f 294check-treelang: treelang.check
6cfea11b
TJ
295
296TESTSUITEDIR = testsuite
297
298treelang.check: $(TESTSUITEDIR)/site.exp
e5fcbd77 299 -mkdir testsuite/treelang
6cfea11b
TJ
300
301# these three files are empty and it seems diff has trouble generating
302# patch files for new empty files as required for cvs.
303# STAMP does not cut it here as I need an empty file.
8c90b13a
L
304 -rootme=`${PWD_COMMAND}`; export rootme; \
305 srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
6cfea11b
TJ
306 cd testsuite; \
307 EXPECT=${EXPECT} ; export EXPECT ; \
6cfea11b 308 if [ -f $${rootme}/../expect/expect ] ; then \
8c90b13a 309 TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
6cfea11b 310 export TCL_LIBRARY ; fi ; \
8c90b13a
L
311 PATH=`cd ..;${PWD_COMMAND}`:$$PATH; export PATH; \
312 gcc_extras="-B`cd ..;${PWD_COMMAND}` -B`cd ..;${PWD_COMMAND}`/treelang"; export gcc_extras; \
6cfea11b 313 $(RUNTEST) --tool treelang $(RUNTESTFLAGS)
6cfea11b
TJ
314
315# copy the output files from the current test to source ie say the new results are OK
316treelang.check.fix: force
8c90b13a 317 srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ;
6cfea11b
TJ
318 -cp testsuite/treelang/*.out* t
319 -cp testsuite/treelang/*runpgm* t
320 -rm -f t/*nofilename
321
6cfea11b
TJ
322#\f
323
31c56a8b 324config.status: treelang/config-lang.in