File: INSTALL

package info (click to toggle)
maude 2.7-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid, stretch
  • size: 11,380 kB
  • ctags: 8,646
  • sloc: cpp: 92,892; sh: 3,510; yacc: 1,442; makefile: 1,318; lex: 572
file content (123 lines) | stat: -rwxr-xr-x 4,344 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Prerequisites
=============

Maude requires following the tools:

GNU gcc		http://gcc.gnu.org/
GNU bison	http://www.gnu.org/software/bison/
GNU flex	http://www.gnu.org/software/flex/

It is recommended that you use the latest versions of bison and flex
since Maude is known to tickle bugs in certain older versions. You
should use gcc 3.1 or later as there are code generation issues with
the 3.0.* series.

Maude requires the following packages:

GNU gmp		http://www.swox.com/gmp/
GNU libsigsegv	http://libsigsegv.sourceforge.net/
Tecla		http://www.astro.caltech.edu/~mcs/tecla/
BuDDY		http://sourceforge.net/projects/buddy


Configuring the 3rd party packages
==================================
Because of C++ ABI incompatibilities, GNU gmp and BuDDy must be
compiled with the same compiler you will use for Maude.

GNU gmp	must be configured with --enable-cxx to generate the C++
bindings. The option --disable-shared is recommended to avoid linking
issues on various platforms.

It is recommended that Tecla be configured with CFLAGS set to
"-O2 -D_POSIX_C_SOURCE=1". This has the effect of using the thread
unsafe library calls which avoids binary compatibility issues on
various platforms. It is recommended that Tecla is built and installed
with the command:

 make TARGETS=normal TARGET_LIBS=static install

to avoid linking issues on various platforms.

As of 2.4 BuDDy has moved to autoconf. The option --disable-shared is
recommended to avoid linking issues on various platforms.


Building Maude
==============
If everything is installed in standard places you can configure and
build Maude with the commands:

./configure
make

A very basic test suite can be run using the command:

make check

If you installed any of the 3rd party packages in non-standard places
you can indicate where the header files are by setting CPPFLAGS and
where the library files by setting LDFLAGS. If you have multiple
versions of any these libraries in your environment you can select
particular versions explicitly by setting:

GMP_LIBS	(defaults to -lgmpxx -lgmp)
LIBSIGSEGV_LIB	(defaults to -lsigsegv)
TECLA_LIBS	(defaults to -ltecla -lcurses)
BUDDY_LIB	(defaults to -lbuddy)

A more realistic configure to make, check and install a static binary
using a separate build tree might look something like:

mkdir Build
cd Build

../configure \
CPPFLAGS="-I/home/me/include" \
LDFLAGS="-static -L/home/me/lib" \
GMP_LIBS="/home/me/lib/libgmpxx.a /home/me/lib/libgmp.a"

make
make check
make install

The maude binary is installed in $(bindir) and the .maude files are
installed in $(datadir). In order for the Maude binary to find the
.maude files you should set the environment variable MAUDE_LIB to
point to $(datadir). Alternatively you could move the .maude files to
$(bindir).


Note for Mac users
==================
Currently (February 7th, 2014):

The official Apple version of gcc is an llvm front end from 2007 and is
not capable of compiling Maude (Apple is pushing developers to clang).

The offical Apple version of flex (2.5.35) contains a serious bug not
present in the GNU version and which can cause Maude to hang.

The are two viable routes to building Maude on Macs:

(1) Install the tools and libraries from Mac Ports (http://www.macports.org/).
(2) Build the tools and libraries from source.

Going the Mac Ports route, the release binary was configured thus:

../configure \
CC=/opt/local/bin/gcc-mp-4.8  \
CXX=/opt/local/bin/g++-mp-4.8 \
FLEX=/opt/local/bin/flex \
BISON=/opt/local/bin/bison \
CFLAGS="-Wall -O2 -static-libstdc++ -static-libgcc -fno-crossjumping -fno-stack-protector -fstrict-aliasing -mmacosx-version-min=10.5 -finline-limit=10000" \
CXXFLAGS="-Wall -O2 -static-libstdc++ -static-libgcc -fno-crossjumping -fno-stack-protector -fstrict-aliasing -mmacosx-version-min=10.5 -finline-limit=10000" \
BUDDY_LIB="/opt/local/lib/libbdd.a" \
TECLA_LIBS="/opt/local/lib/libtecla.a /usr/lib/libncurses.dylib" \
LIBSIGSEGV_LIB="/opt/local/lib/libsigsegv.a" \
GMP_LIBS="/opt/local/lib/libgmp.a /opt/local/lib/libgmpxx.a"

This results in an almost static binary that should run on any x86-64 Mac
running Leopard or later without the installation of extra libraries. Note
that the Apple ncurses library is linked since the Mac Ports version depends
on the Mac Ports terminfo data base, which most users will not have installed.