stdlib: Fix %branch -> %fedora-branch.
[goals.git] / Makefile.in
1 # Goals
2 # Copyright (C) 2019 Richard W.M. Jones
3 # Copyright (C) 2019 Red Hat Inc.
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License along
16 # with this program; if not, write to the Free Software Foundation, Inc.,
17 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
19 # Pass through normal targets to Goalfile.in
20
21 all clean depend install check maintainer-clean dist distcheck \
22 maintainer-commit maintainer-tag \
23 maintainer-check-extra-dist maintainer-release \
24 maintainer-srpm maintainer-fedora-copr: src/goals
25         @./run src/goals $@ 'DESTDIR="$(DESTDIR)"'
26
27 # If src/goals doesn't exist then brute-force build it.  Once we have
28 # src/goals we can rebuild it and other parts of the project using
29 # goals itself (see Goalfile.in).
30
31 MENHIR = @MENHIR@
32 OCAMLDEP = @OCAMLDEP@
33 OCAMLFIND = @OCAMLFIND@
34 OCAMLLEX = @OCAMLLEX@
35 OCAMLFLAGS = @OCAMLFLAGS@
36 OCAMLPACKAGES = @OCAMLPACKAGES@
37
38 src/goals:
39         $(MENHIR) --explain src/parser.mly
40 # Hack required to break circular dependencies.
41         echo 'val lexer_read : (Lexing.lexbuf -> token) option ref' >> src/parser.mli
42         echo 'val eval_substitute : (Ast.env -> Ast.loc -> Ast.substs -> string) option ref' >> src/parser.mli
43         $(OCAMLLEX) src/lexer.mll
44         $(OCAMLFIND) opt $(OCAMLFLAGS) $(OCAMLPACKAGES) -I . -I src \
45             src/utils-c.c \
46             $$($(OCAMLDEP) -sort src/*.mli src/*.ml) \
47             -linkpkg -o $@
48
49 # These rules are required by autoconf.
50 config.h: stamp-h
51 stamp-h: config.h.in config.status
52         ./config.status config.h
53         touch $@
54
55 Makefile: Makefile.in config.status
56         ./config.status $@
57
58 run: run.in config.status
59         ./config.status $@
60
61 $(srcdir)/configure: configure.ac aclocal.m4
62         cd '$(srcdir)' && autoconf
63
64 $(srcdir)/config.h.in: stamp-h.in
65 $(srcdir)/stamp-h.in: configure.ac aclocal.m4
66         cd '$(srcdir)' && autoheader
67         echo timestamp > '$(srcdir)/stamp-h.in'
68
69 config.status: configure
70         ./config.status --recheck