1### @configure_input@
2
3## Copyright (C) 2013-2021 Free Software Foundation, Inc.
4
5## This file is part of GNU Emacs.
6
7## GNU Emacs is free software: you can redistribute it and/or modify
8## it under the terms of the GNU General Public License as published by
9## the Free Software Foundation, either version 3 of the License, or
10## (at your option) any later version.
11
12## GNU Emacs is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15## GNU General Public License for more details.
16
17## You should have received a copy of the GNU General Public License
18## along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
19
20### Commentary:
21
22## This directory contains grammar files in Bison and Wisent,
23## used to generate the parser data in the lisp/cedet directory.
24
25SHELL = @SHELL@
26
27srcdir = @srcdir@
28top_srcdir = @top_srcdir@
29top_builddir = @top_builddir@
30
31# 'make' verbosity.
32AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
33
34AM_V_GEN = $(am__v_GEN_@AM_V@)
35am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
36am__v_GEN_0 = @echo "  GEN     " $@;
37am__v_GEN_1 =
38
39AM_V_at = $(am__v_at_@AM_V@)
40am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
41am__v_at_0 = @
42am__v_at_1 =
43
44# Prevent any settings in the user environment causing problems.
45unexport EMACSDATA EMACSDOC EMACSPATH
46
47EMACS = ${top_builddir}/src/emacs
48emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp
49
50make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
51make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
52
53cedetdir = ${top_srcdir}/lisp/cedet
54bovinedir = ${cedetdir}/semantic/bovine
55wisentdir = ${cedetdir}/semantic/wisent
56
57BOVINE = \
58	${bovinedir}/c-by.el \
59	${bovinedir}/make-by.el \
60	${bovinedir}/scm-by.el
61
62## FIXME Should include this one too:
63##	${cedetdir}/semantic/grammar-wy.el
64## but semantic/grammar.el (which is what we use to generate grammar-wy.el)
65## requires it!
66WISENT = \
67	${wisentdir}/javat-wy.el \
68	${wisentdir}/js-wy.el \
69	${wisentdir}/python-wy.el \
70	${cedetdir}/srecode/srt-wy.el
71
72ALL = ${BOVINE} ${WISENT}
73
74.PHONY: all bovine wisent
75
76all: ${ALL}
77
78bovine: ${BOVINE}
79
80wisent: ${WISENT}
81
82## c-by.el, make-by.el.
83${bovinedir}/%-by.el: ${srcdir}/%.by
84	$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
85	$(AM_V_at)${make_bovine} -o "$@" $<
86
87${bovinedir}/scm-by.el: ${srcdir}/scheme.by
88	$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
89	$(AM_V_at)${make_bovine} -o "$@" $<
90
91## grammar-wy.el
92${cedetdir}/semantic/%-wy.el: ${srcdir}/%.wy
93	$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
94	$(AM_V_at)${make_wisent} -o "$@" $<
95
96## js-wy.el, python-wy.el
97${wisentdir}/%-wy.el: ${srcdir}/%.wy
98	$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
99	$(AM_V_at)${make_wisent} -o "$@" $<
100
101${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy
102	$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
103	$(AM_V_at)${make_wisent} -o "$@" $<
104
105${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy
106	$(AM_V_GEN)[ ! -f "$@" ] || chmod +w "$@"
107	$(AM_V_at)${make_wisent} -o "$@" $<
108
109
110.PHONY: distclean bootstrap-clean maintainer-clean extraclean
111
112distclean:
113	rm -f Makefile
114
115## Perhaps this should do what extraclean (qv) does.
116bootstrap-clean:
117
118maintainer-clean: distclean
119
120## We do not normally delete the generated files, even in bootstrap.
121## Creating them does not take long, so we could easily change this.
122extraclean:
123	rm -f ${ALL}
124
125# Makefile.in ends here
126