0
7
0
2
10
6
2
1
14
13
12
1 | 1 |
Installation Instructions |
2 | 2 |
========================= |
3 | 3 |
|
4 | 4 |
Since you are reading this I assume you already obtained one of the release |
5 | 5 |
tarballs and successfully extracted it. The latest version of LEMON is |
6 | 6 |
available at our web page (http://lemon.cs.elte.hu/). |
7 | 7 |
|
8 | 8 |
LEMON provides two different build environments, one is based on "autotool", |
9 | 9 |
while the other is based on "cmake". This file contains instructions only for |
10 | 10 |
the former one, which is the recommended build environment on Linux, Mac OSX |
11 | 11 |
and other unices or if you use Cygwin on Windows. For cmake installation |
12 | 12 |
instructions visit http://lemon.cs.elte.hu. |
13 | 13 |
|
14 | 14 |
In order to install LEMON from the extracted source tarball you have to |
15 | 15 |
issue the following commands: |
16 | 16 |
|
17 | 17 |
1. `cd lemon-x.y.z' |
18 | 18 |
|
19 | 19 |
This command changes to the directory which was created when you |
20 | 20 |
extracted the sources. The x.y.z part is a version number. |
21 | 21 |
|
22 | 22 |
2. `./configure' |
23 | 23 |
|
24 | 24 |
This command runs the configure shell script, which does some checks and |
25 | 25 |
creates the makefiles. |
26 | 26 |
|
27 | 27 |
3. `make' |
28 | 28 |
|
29 | 29 |
This command compiles the non-template part of LEMON into libemon.a |
30 |
file. It also compiles the programs in the tools and demo subdirectories |
|
31 |
when enabled. |
|
30 |
file. It also compiles the programs in the tools subdirectory by |
|
31 |
default. |
|
32 | 32 |
|
33 | 33 |
4. `make check' |
34 | 34 |
|
35 | 35 |
This step is optional, but recommended. It runs the test programs that |
36 | 36 |
we developed for LEMON to check whether the library works properly on |
37 | 37 |
your platform. |
38 | 38 |
|
39 | 39 |
5. `make install' |
40 | 40 |
|
41 | 41 |
This command installs LEMON under /usr/local (you will need root |
42 | 42 |
privileges to be able to do that). If you want to install it to some |
43 | 43 |
other location, then pass the --prefix=DIRECTORY flag to configure in |
44 | 44 |
step 2. For example: `./configure --prefix=/home/username/lemon'. |
45 | 45 |
|
46 | 46 |
6. `make install-html' |
47 | 47 |
|
48 | 48 |
This command installs the documentation under share/doc/lemon/docs. The |
49 | 49 |
generated documentation is included in the tarball. If you want to |
50 | 50 |
generate it yourself, then run `make html'. Note that for this you need |
51 | 51 |
to have the following programs installed: Doxygen, Graphviz, Ghostscript, |
52 | 52 |
Latex. |
53 | 53 |
|
54 | 54 |
|
55 | 55 |
Configure Options and Variables |
56 | 56 |
=============================== |
57 | 57 |
|
58 | 58 |
In step 2 you can customize the actions of configure by setting variables |
59 | 59 |
and passing options to it. This can be done like this: |
60 | 60 |
`./configure [OPTION]... [VARIABLE=VALUE]...' |
61 | 61 |
|
62 | 62 |
Below you will find some useful variables and options (see `./configure --help' |
63 | 63 |
for more): |
64 | 64 |
|
65 | 65 |
CXX='comp' |
66 | 66 |
|
67 | 67 |
Change the C++ compiler to 'comp'. |
68 | 68 |
|
69 | 69 |
CXXFLAGS='flags' |
70 | 70 |
|
71 | 71 |
Pass the 'flags' to the compiler. For example CXXFLAGS='-O3 -march=pentium-m' |
72 | 72 |
turns on generation of aggressively optimized Pentium-M specific code. |
73 | 73 |
|
74 | 74 |
--prefix=PREFIX |
75 | 75 |
|
76 | 76 |
Set the installation prefix to PREFIX. By default it is /usr/local. |
77 | 77 |
|
78 |
--enable-demo |
|
79 |
|
|
80 |
Build the examples in the demo subdirectory. |
|
81 |
|
|
82 |
--disable-demo |
|
83 |
|
|
84 |
Do not build the examples in the demo subdirectory (default). |
|
85 |
|
|
86 | 78 |
--enable-tools |
87 | 79 |
|
88 | 80 |
Build the programs in the tools subdirectory (default). |
89 | 81 |
|
90 | 82 |
--disable-tools |
91 | 83 |
|
92 | 84 |
Do not build the programs in the tools subdirectory. |
93 | 85 |
|
94 | 86 |
--with-glpk[=PREFIX] |
95 | 87 |
|
96 | 88 |
Enable GLPK support (default). You should specify the prefix too if |
97 | 89 |
you installed GLPK to some non-standard location (e.g. your home |
98 | 90 |
directory). If it is not found, GLPK support will be disabled. |
99 | 91 |
|
100 | 92 |
--with-glpk-includedir=DIR |
101 | 93 |
|
102 | 94 |
The directory where the GLPK header files are located. This is only |
103 | 95 |
useful when the GLPK headers and libraries are not under the same |
104 | 96 |
prefix (which is unlikely). |
105 | 97 |
|
106 | 98 |
--with-glpk-libdir=DIR |
107 | 99 |
|
108 | 100 |
The directory where the GLPK libraries are located. This is only |
109 | 101 |
useful when the GLPK headers and libraries are not under the same |
110 | 102 |
prefix (which is unlikely). |
111 | 103 |
|
112 | 104 |
--without-glpk |
113 | 105 |
|
114 | 106 |
Disable GLPK support. |
115 | 107 |
|
116 | 108 |
--with-cplex[=PREFIX] |
117 | 109 |
|
118 | 110 |
Enable CPLEX support (default). You should specify the prefix too |
119 | 111 |
if you installed CPLEX to some non-standard location |
120 | 112 |
(e.g. /opt/ilog/cplex75). If it is not found, CPLEX support will be |
121 | 113 |
disabled. |
122 | 114 |
|
123 | 115 |
--with-cplex-includedir=DIR |
124 | 116 |
|
125 | 117 |
The directory where the CPLEX header files are located. This is |
126 | 118 |
only useful when the CPLEX headers and libraries are not under the |
127 | 119 |
same prefix (e.g. /usr/local/cplex/cplex75/include). |
128 | 120 |
|
129 | 121 |
--with-cplex-libdir=DIR |
130 | 122 |
|
131 | 123 |
The directory where the CPLEX libraries are located. This is only |
132 | 124 |
useful when the CPLEX headers and libraries are not under the same |
133 | 125 |
prefix (e.g. |
134 | 126 |
/usr/local/cplex/cplex75/lib/i86_linux2_glibc2.2_gcc3.0/static_pic_mt). |
135 | 127 |
|
136 | 128 |
--without-cplex |
137 | 129 |
|
138 | 130 |
Disable CPLEX support. |
139 | 131 |
|
140 | 132 |
--with-soplex[=PREFIX] |
141 | 133 |
|
142 | 134 |
Enable SoPlex support (default). You should specify the prefix too if |
143 | 135 |
you installed SoPlex to some non-standard location (e.g. your home |
144 | 136 |
directory). If it is not found, SoPlex support will be disabled. |
145 | 137 |
|
146 | 138 |
--with-soplex-includedir=DIR |
147 | 139 |
|
148 | 140 |
The directory where the SoPlex header files are located. This is only |
149 | 141 |
useful when the SoPlex headers and libraries are not under the same |
150 | 142 |
prefix (which is unlikely). |
151 | 143 |
|
152 | 144 |
--with-soplex-libdir=DIR |
153 | 145 |
|
154 | 146 |
The directory where the SoPlex libraries are located. This is only |
155 | 147 |
useful when the SoPlex headers and libraries are not under the same |
156 | 148 |
prefix (which is unlikely). |
157 | 149 |
|
158 | 150 |
--without-soplex |
159 | 151 |
|
160 | 152 |
Disable SoPlex support. |
1 | 1 |
ACLOCAL_AMFLAGS = -I m4 |
2 | 2 |
|
3 | 3 |
AM_CXXFLAGS = $(WARNINGCXXFLAGS) |
4 | 4 |
|
5 | 5 |
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) |
6 | 6 |
LDADD = $(top_builddir)/lemon/libemon.la |
7 | 7 |
|
8 | 8 |
EXTRA_DIST = \ |
9 | 9 |
AUTHORS \ |
10 | 10 |
LICENSE \ |
11 | 11 |
m4/lx_check_cplex.m4 \ |
12 | 12 |
m4/lx_check_glpk.m4 \ |
13 | 13 |
m4/lx_check_soplex.m4 \ |
14 | 14 |
CMakeLists.txt \ |
15 | 15 |
cmake/FindGhostscript.cmake \ |
16 | 16 |
cmake/FindGLPK.cmake \ |
17 | 17 |
cmake/version.cmake.in \ |
18 | 18 |
cmake/version.cmake \ |
19 | 19 |
cmake/nsis/lemon.ico \ |
20 | 20 |
cmake/nsis/uninstall.ico |
21 | 21 |
|
22 | 22 |
pkgconfigdir = $(libdir)/pkgconfig |
23 | 23 |
lemondir = $(pkgincludedir) |
24 | 24 |
bitsdir = $(lemondir)/bits |
25 | 25 |
conceptdir = $(lemondir)/concepts |
26 | 26 |
pkgconfig_DATA = |
27 | 27 |
lib_LTLIBRARIES = |
28 | 28 |
lemon_HEADERS = |
29 | 29 |
bits_HEADERS = |
30 | 30 |
concept_HEADERS = |
31 | 31 |
noinst_HEADERS = |
32 | 32 |
noinst_PROGRAMS = |
33 | 33 |
bin_PROGRAMS = |
34 | 34 |
check_PROGRAMS = |
35 | 35 |
dist_bin_SCRIPTS = |
36 | 36 |
TESTS = |
37 | 37 |
XFAIL_TESTS = |
38 | 38 |
|
39 | 39 |
include lemon/Makefile.am |
40 | 40 |
include test/Makefile.am |
41 | 41 |
include doc/Makefile.am |
42 |
include demo/Makefile.am |
|
43 | 42 |
include tools/Makefile.am |
44 | 43 |
|
44 |
DIST_SUBDIRS = demo |
|
45 |
|
|
46 |
demo: |
|
47 |
$(MAKE) $(AM_MAKEFLAGS) -C demo |
|
48 |
|
|
45 | 49 |
MRPROPERFILES = \ |
46 | 50 |
aclocal.m4 \ |
47 | 51 |
config.h.in \ |
48 | 52 |
config.h.in~ \ |
49 | 53 |
configure \ |
50 | 54 |
Makefile.in \ |
51 | 55 |
build-aux/config.guess \ |
52 | 56 |
build-aux/config.sub \ |
53 | 57 |
build-aux/depcomp \ |
54 | 58 |
build-aux/install-sh \ |
55 | 59 |
build-aux/ltmain.sh \ |
56 | 60 |
build-aux/missing \ |
57 | 61 |
doc/doxygen.log |
58 | 62 |
|
59 | 63 |
mrproper: |
60 | 64 |
$(MAKE) $(AM_MAKEFLAGS) maintainer-clean |
61 | 65 |
-rm -f $(MRPROPERFILES) |
62 | 66 |
|
63 | 67 |
dist-bz2: dist |
64 | 68 |
zcat $(PACKAGE)-$(VERSION).tar.gz | \ |
65 | 69 |
bzip2 --best -c > $(PACKAGE)-$(VERSION).tar.bz2 |
66 | 70 |
|
67 | 71 |
distcheck-bz2: distcheck |
68 | 72 |
zcat $(PACKAGE)-$(VERSION).tar.gz | \ |
69 | 73 |
bzip2 --best -c > $(PACKAGE)-$(VERSION).tar.bz2 |
70 | 74 |
|
71 |
.PHONY: mrproper dist-bz2 distcheck-bz2 |
|
75 |
.PHONY: demo mrproper dist-bz2 distcheck-bz2 |
1 | 1 |
dnl Process this file with autoconf to produce a configure script. |
2 | 2 |
|
3 | 3 |
dnl Version information. |
4 | 4 |
m4_define([lemon_version_number], |
5 | 5 |
[m4_normalize(esyscmd([echo ${LEMON_VERSION}]))]) |
6 | 6 |
dnl m4_define([lemon_version_number], []) |
7 | 7 |
m4_define([lemon_hg_path], [m4_normalize(esyscmd([./scripts/chg-len.py]))]) |
8 | 8 |
m4_define([lemon_hg_revision], [m4_normalize(esyscmd([hg id -i]))]) |
9 | 9 |
m4_define([lemon_version], [ifelse(lemon_version_number(), |
10 | 10 |
[], |
11 | 11 |
[lemon_hg_path().lemon_hg_revision()], |
12 | 12 |
[lemon_version_number()])]) |
13 | 13 |
|
14 | 14 |
AC_PREREQ([2.59]) |
15 | 15 |
AC_INIT([LEMON], [lemon_version()], [lemon-user@lemon.cs.elte.hu], [lemon]) |
16 | 16 |
AC_CONFIG_AUX_DIR([build-aux]) |
17 | 17 |
AC_CONFIG_MACRO_DIR([m4]) |
18 | 18 |
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects nostdinc]) |
19 | 19 |
AC_CONFIG_SRCDIR([lemon/list_graph.h]) |
20 | 20 |
AC_CONFIG_HEADERS([config.h lemon/config.h]) |
21 | 21 |
|
22 | 22 |
dnl Do compilation tests using the C++ compiler. |
23 | 23 |
AC_LANG([C++]) |
24 | 24 |
|
25 | 25 |
dnl Check the existence of long long type. |
26 | 26 |
AC_CHECK_TYPE(long long, [long_long_found=yes], [long_long_found=no]) |
27 | 27 |
if test x"$long_long_found" = x"yes"; then |
28 | 28 |
AC_DEFINE([HAVE_LONG_LONG], [1], [Define to 1 if you have long long.]) |
29 | 29 |
fi |
30 | 30 |
|
31 | 31 |
dnl Checks for programs. |
32 | 32 |
AC_PROG_CXX |
33 | 33 |
AC_PROG_CXXCPP |
34 | 34 |
AC_PROG_INSTALL |
35 | 35 |
AC_DISABLE_SHARED |
36 | 36 |
AC_PROG_LIBTOOL |
37 | 37 |
|
38 | 38 |
AC_CHECK_PROG([doxygen_found],[doxygen],[yes],[no]) |
39 | 39 |
AC_CHECK_PROG([gs_found],[gs],[yes],[no]) |
40 | 40 |
|
41 | 41 |
dnl Detect Intel compiler. |
42 | 42 |
AC_MSG_CHECKING([whether we are using the Intel C++ compiler]) |
43 | 43 |
AC_COMPILE_IFELSE([#ifndef __INTEL_COMPILER |
44 | 44 |
choke me |
45 | 45 |
#endif], [ICC=[yes]], [ICC=[no]]) |
46 | 46 |
if test x"$ICC" = x"yes"; then |
47 | 47 |
AC_MSG_RESULT([yes]) |
48 | 48 |
else |
49 | 49 |
AC_MSG_RESULT([no]) |
50 | 50 |
fi |
51 | 51 |
|
52 | 52 |
dnl Set custom compiler flags when using g++. |
53 | 53 |
if test "$GXX" = yes -a "$ICC" = no; then |
54 | 54 |
WARNINGCXXFLAGS="-Wall -W -Wall -W -Wunused -Wformat=2 -Wctor-dtor-privacy -Wnon-virtual-dtor -Wno-char-subscripts -Wwrite-strings -Wno-char-subscripts -Wreturn-type -Wcast-qual -Wcast-align -Wsign-promo -Woverloaded-virtual -ansi -fno-strict-aliasing -Wold-style-cast -Wno-unknown-pragmas" |
55 | 55 |
fi |
56 | 56 |
AC_SUBST([WARNINGCXXFLAGS]) |
57 | 57 |
|
58 | 58 |
dnl Checks for libraries. |
59 | 59 |
LX_CHECK_GLPK |
60 | 60 |
LX_CHECK_CPLEX |
61 | 61 |
LX_CHECK_SOPLEX |
62 | 62 |
LX_CHECK_CLP |
63 | 63 |
|
64 | 64 |
AM_CONDITIONAL([HAVE_LP], [test x"$lx_lp_found" = x"yes"]) |
65 | 65 |
AM_CONDITIONAL([HAVE_MIP], [test x"$lx_mip_found" = x"yes"]) |
66 | 66 |
|
67 |
dnl Disable/enable building the demo programs. |
|
68 |
AC_ARG_ENABLE([demo], |
|
69 |
AS_HELP_STRING([--enable-demo], [build the demo programs]) |
|
70 |
AS_HELP_STRING([--disable-demo], [do not build the demo programs @<:@default@:>@]), |
|
71 |
[], [enable_demo=no]) |
|
72 |
AC_MSG_CHECKING([whether to build the demo programs]) |
|
73 |
if test x"$enable_demo" != x"no"; then |
|
74 |
AC_MSG_RESULT([yes]) |
|
75 |
else |
|
76 |
AC_MSG_RESULT([no]) |
|
77 |
fi |
|
78 |
AM_CONDITIONAL([WANT_DEMO], [test x"$enable_demo" != x"no"]) |
|
79 |
|
|
80 | 67 |
dnl Disable/enable building the binary tools. |
81 | 68 |
AC_ARG_ENABLE([tools], |
82 | 69 |
AS_HELP_STRING([--enable-tools], [build additional tools @<:@default@:>@]) |
83 | 70 |
AS_HELP_STRING([--disable-tools], [do not build additional tools]), |
84 | 71 |
[], [enable_tools=yes]) |
85 | 72 |
AC_MSG_CHECKING([whether to build the additional tools]) |
86 | 73 |
if test x"$enable_tools" != x"no"; then |
87 | 74 |
AC_MSG_RESULT([yes]) |
88 | 75 |
else |
89 | 76 |
AC_MSG_RESULT([no]) |
90 | 77 |
fi |
91 | 78 |
AM_CONDITIONAL([WANT_TOOLS], [test x"$enable_tools" != x"no"]) |
92 | 79 |
|
93 | 80 |
dnl Checks for header files. |
94 | 81 |
AC_CHECK_HEADERS(limits.h sys/time.h sys/times.h unistd.h) |
95 | 82 |
|
96 | 83 |
dnl Checks for typedefs, structures, and compiler characteristics. |
97 | 84 |
AC_C_CONST |
98 | 85 |
AC_C_INLINE |
99 | 86 |
AC_TYPE_SIZE_T |
100 | 87 |
AC_HEADER_TIME |
101 | 88 |
AC_STRUCT_TM |
102 | 89 |
|
103 | 90 |
dnl Checks for library functions. |
104 | 91 |
AC_HEADER_STDC |
105 | 92 |
AC_CHECK_FUNCS(gettimeofday times ctime_r) |
106 | 93 |
|
107 | 94 |
dnl Add dependencies on files generated by configure. |
108 | 95 |
AC_SUBST([CONFIG_STATUS_DEPENDENCIES], |
109 | 96 |
['$(top_srcdir)/doc/Doxyfile.in $(top_srcdir)/lemon/lemon.pc.in $(top_srcdir)/cmake/version.cmake.in']) |
110 | 97 |
|
111 | 98 |
AC_CONFIG_FILES([ |
112 | 99 |
Makefile |
100 |
demo/Makefile |
|
113 | 101 |
cmake/version.cmake |
114 | 102 |
doc/Doxyfile |
115 | 103 |
lemon/lemon.pc |
116 | 104 |
]) |
117 | 105 |
|
118 | 106 |
AC_OUTPUT |
119 | 107 |
|
120 | 108 |
echo |
121 | 109 |
echo '****************************** SUMMARY ******************************' |
122 | 110 |
echo |
123 | 111 |
echo Package version............... : $PACKAGE-$VERSION |
124 | 112 |
echo |
125 | 113 |
echo C++ compiler.................. : $CXX |
126 | 114 |
echo C++ compiles flags............ : $WARNINGCXXFLAGS $CXXFLAGS |
127 | 115 |
echo |
128 | 116 |
echo Compiler supports long long... : $long_long_found |
129 | 117 |
echo |
130 | 118 |
echo GLPK support.................. : $lx_glpk_found |
131 | 119 |
echo CPLEX support................. : $lx_cplex_found |
132 | 120 |
echo SOPLEX support................ : $lx_soplex_found |
133 | 121 |
echo CLP support................... : $lx_clp_found |
134 | 122 |
echo |
135 |
echo Build demo programs........... : $enable_demo |
|
136 | 123 |
echo Build additional tools........ : $enable_tools |
137 | 124 |
echo |
138 | 125 |
echo The packace will be installed in |
139 | 126 |
echo -n ' ' |
140 | 127 |
echo $prefix. |
141 | 128 |
echo |
142 | 129 |
echo '*********************************************************************' |
143 | 130 |
|
144 | 131 |
echo |
145 | 132 |
echo Configure complete, now type \'make\' and then \'make install\'. |
146 | 133 |
echo |
1 |
EXTRA_DIST += \ |
|
2 |
demo/CMakeLists.txt \ |
|
3 |
|
|
1 |
AM_CXXFLAGS = $(WARNINGCXXFLAGS) |
|
4 | 2 |
|
5 |
|
|
3 |
AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) |
|
4 |
LDADD = $(top_builddir)/lemon/libemon.la |
|
6 | 5 |
|
7 |
noinst_PROGRAMS += \ |
|
8 |
demo/arg_parser_demo \ |
|
9 |
demo/graph_to_eps_demo \ |
|
10 |
demo/lgf_demo |
|
6 |
EXTRA_DIST = \ |
|
7 |
CMakeLists.txt \ |
|
8 |
digraph.lgf |
|
11 | 9 |
|
12 |
|
|
10 |
noinst_PROGRAMS = \ |
|
11 |
arg_parser_demo \ |
|
12 |
graph_to_eps_demo \ |
|
13 |
lgf_demo |
|
13 | 14 |
|
14 |
demo_arg_parser_demo_SOURCES = demo/arg_parser_demo.cc |
|
15 |
demo_graph_to_eps_demo_SOURCES = demo/graph_to_eps_demo.cc |
|
16 |
|
|
15 |
arg_parser_demo_SOURCES = arg_parser_demo.cc |
|
16 |
graph_to_eps_demo_SOURCES = graph_to_eps_demo.cc |
|
17 |
lgf_demo_SOURCES = lgf_demo.cc |
... | ... |
@@ -578,110 +578,110 @@ |
578 | 578 |
\brief Graph Input-Output methods |
579 | 579 |
|
580 | 580 |
This group contains the tools for importing and exporting graphs |
581 | 581 |
and graph related data. Now it supports the \ref lgf-format |
582 | 582 |
"LEMON Graph Format", the \c DIMACS format and the encapsulated |
583 | 583 |
postscript (EPS) format. |
584 | 584 |
*/ |
585 | 585 |
|
586 | 586 |
/** |
587 | 587 |
@defgroup lemon_io LEMON Graph Format |
588 | 588 |
@ingroup io_group |
589 | 589 |
\brief Reading and writing LEMON Graph Format. |
590 | 590 |
|
591 | 591 |
This group contains methods for reading and writing |
592 | 592 |
\ref lgf-format "LEMON Graph Format". |
593 | 593 |
*/ |
594 | 594 |
|
595 | 595 |
/** |
596 | 596 |
@defgroup eps_io Postscript Exporting |
597 | 597 |
@ingroup io_group |
598 | 598 |
\brief General \c EPS drawer and graph exporter |
599 | 599 |
|
600 | 600 |
This group contains general \c EPS drawing methods and special |
601 | 601 |
graph exporting tools. |
602 | 602 |
*/ |
603 | 603 |
|
604 | 604 |
/** |
605 | 605 |
@defgroup dimacs_group DIMACS format |
606 | 606 |
@ingroup io_group |
607 | 607 |
\brief Read and write files in DIMACS format |
608 | 608 |
|
609 | 609 |
Tools to read a digraph from or write it to a file in DIMACS format data. |
610 | 610 |
*/ |
611 | 611 |
|
612 | 612 |
/** |
613 | 613 |
@defgroup nauty_group NAUTY Format |
614 | 614 |
@ingroup io_group |
615 | 615 |
\brief Read \e Nauty format |
616 | 616 |
|
617 | 617 |
Tool to read graphs from \e Nauty format data. |
618 | 618 |
*/ |
619 | 619 |
|
620 | 620 |
/** |
621 | 621 |
@defgroup concept Concepts |
622 | 622 |
\brief Skeleton classes and concept checking classes |
623 | 623 |
|
624 | 624 |
This group contains the data/algorithm skeletons and concept checking |
625 | 625 |
classes implemented in LEMON. |
626 | 626 |
|
627 | 627 |
The purpose of the classes in this group is fourfold. |
628 | 628 |
|
629 | 629 |
- These classes contain the documentations of the %concepts. In order |
630 | 630 |
to avoid document multiplications, an implementation of a concept |
631 | 631 |
simply refers to the corresponding concept class. |
632 | 632 |
|
633 | 633 |
- These classes declare every functions, <tt>typedef</tt>s etc. an |
634 | 634 |
implementation of the %concepts should provide, however completely |
635 | 635 |
without implementations and real data structures behind the |
636 | 636 |
interface. On the other hand they should provide nothing else. All |
637 | 637 |
the algorithms working on a data structure meeting a certain concept |
638 | 638 |
should compile with these classes. (Though it will not run properly, |
639 | 639 |
of course.) In this way it is easily to check if an algorithm |
640 | 640 |
doesn't use any extra feature of a certain implementation. |
641 | 641 |
|
642 | 642 |
- The concept descriptor classes also provide a <em>checker class</em> |
643 | 643 |
that makes it possible to check whether a certain implementation of a |
644 | 644 |
concept indeed provides all the required features. |
645 | 645 |
|
646 | 646 |
- Finally, They can serve as a skeleton of a new implementation of a concept. |
647 | 647 |
*/ |
648 | 648 |
|
649 | 649 |
/** |
650 | 650 |
@defgroup graph_concepts Graph Structure Concepts |
651 | 651 |
@ingroup concept |
652 | 652 |
\brief Skeleton and concept checking classes for graph structures |
653 | 653 |
|
654 | 654 |
This group contains the skeletons and concept checking classes of LEMON's |
655 | 655 |
graph structures and helper classes used to implement these. |
656 | 656 |
*/ |
657 | 657 |
|
658 | 658 |
/** |
659 | 659 |
@defgroup map_concepts Map Concepts |
660 | 660 |
@ingroup concept |
661 | 661 |
\brief Skeleton and concept checking classes for maps |
662 | 662 |
|
663 | 663 |
This group contains the skeletons and concept checking classes of maps. |
664 | 664 |
*/ |
665 | 665 |
|
666 | 666 |
/** |
667 | 667 |
\anchor demoprograms |
668 | 668 |
|
669 | 669 |
@defgroup demos Demo Programs |
670 | 670 |
|
671 | 671 |
Some demo programs are listed here. Their full source codes can be found in |
672 | 672 |
the \c demo subdirectory of the source tree. |
673 | 673 |
|
674 |
It order to compile them, use <tt>--enable-demo</tt> configure option when |
|
675 |
build the library. |
|
674 |
In order to compile them, use the <tt>make demo</tt> or the |
|
675 |
<tt>make check</tt> commands. |
|
676 | 676 |
*/ |
677 | 677 |
|
678 | 678 |
/** |
679 | 679 |
@defgroup tools Standalone Utility Applications |
680 | 680 |
|
681 | 681 |
Some utility applications are listed here. |
682 | 682 |
|
683 | 683 |
The standard compilation procedure (<tt>./configure;make</tt>) will compile |
684 | 684 |
them, as well. |
685 | 685 |
*/ |
686 | 686 |
|
687 | 687 |
} |
1 | 1 |
#!/bin/bash |
2 | 2 |
|
3 | 3 |
set -e |
4 | 4 |
|
5 | 5 |
if [ $# = 0 ]; then |
6 | 6 |
echo "Usage: $0 release-id" |
7 | 7 |
exit 1 |
8 | 8 |
else |
9 | 9 |
export LEMON_VERSION=$1 |
10 | 10 |
fi |
11 | 11 |
|
12 | 12 |
echo '*****************************************************************' |
13 | 13 |
echo ' Start making release tarballs for version '${LEMON_VERSION} |
14 | 14 |
echo '*****************************************************************' |
15 | 15 |
|
16 | 16 |
autoreconf -vif |
17 |
./configure |
|
17 |
./configure |
|
18 | 18 |
|
19 | 19 |
make |
20 | 20 |
make html |
21 | 21 |
make distcheck |
22 | 22 |
tar xf lemon-${LEMON_VERSION}.tar.gz |
23 | 23 |
zip -r lemon-${LEMON_VERSION}.zip lemon-${LEMON_VERSION} |
24 | 24 |
mv lemon-${LEMON_VERSION}/doc/html lemon-doc-${LEMON_VERSION} |
25 | 25 |
tar czf lemon-doc-${LEMON_VERSION}.tar.gz lemon-doc-${LEMON_VERSION} |
26 | 26 |
zip -r lemon-doc-${LEMON_VERSION}.zip lemon-doc-${LEMON_VERSION} |
27 | 27 |
tar czf lemon-nodoc-${LEMON_VERSION}.tar.gz lemon-${LEMON_VERSION} |
28 | 28 |
zip -r lemon-nodoc-${LEMON_VERSION}.zip lemon-${LEMON_VERSION} |
29 | 29 |
hg tag -m 'LEMON '${LEMON_VERSION}' released ('$(hg par --template="{node|short}")' tagged as r'${LEMON_VERSION}')' r${LEMON_VERSION} |
30 | 30 |
|
31 | 31 |
rm -rf lemon-${LEMON_VERSION} lemon-doc-${LEMON_VERSION} |
32 | 32 |
|
33 | 33 |
echo '*****************************************************************' |
34 | 34 |
echo ' Release '${LEMON_VERSION}' has been created' |
35 | 35 |
echo '*****************************************************************' |
1 | 1 |
EXTRA_DIST += \ |
2 | 2 |
test/CMakeLists.txt |
3 | 3 |
|
4 | 4 |
noinst_HEADERS += \ |
5 | 5 |
test/graph_test.h \ |
6 | 6 |
test/test_tools.h |
7 | 7 |
|
8 | 8 |
check_PROGRAMS += \ |
9 | 9 |
test/adaptors_test \ |
10 | 10 |
test/bfs_test \ |
11 | 11 |
test/circulation_test \ |
12 | 12 |
test/counter_test \ |
13 | 13 |
test/dfs_test \ |
14 | 14 |
test/digraph_test \ |
15 | 15 |
test/dijkstra_test \ |
16 | 16 |
test/dim_test \ |
17 | 17 |
test/edge_set_test \ |
18 | 18 |
test/error_test \ |
19 | 19 |
test/euler_test \ |
20 | 20 |
test/gomory_hu_test \ |
21 | 21 |
test/graph_copy_test \ |
22 | 22 |
test/graph_test \ |
23 | 23 |
test/graph_utils_test \ |
24 | 24 |
test/hao_orlin_test \ |
25 | 25 |
test/heap_test \ |
26 | 26 |
test/kruskal_test \ |
27 | 27 |
test/maps_test \ |
28 | 28 |
test/max_matching_test \ |
29 | 29 |
test/min_cost_arborescence_test \ |
30 | 30 |
test/path_test \ |
31 | 31 |
test/preflow_test \ |
32 | 32 |
test/radix_sort_test \ |
33 | 33 |
test/random_test \ |
34 | 34 |
test/suurballe_test \ |
35 | 35 |
test/test_tools_fail \ |
36 | 36 |
test/test_tools_pass \ |
37 | 37 |
test/time_measure_test \ |
38 | 38 |
test/unionfind_test |
39 | 39 |
|
40 |
test_test_tools_pass_DEPENDENCIES = demo |
|
41 |
|
|
40 | 42 |
if HAVE_LP |
41 | 43 |
check_PROGRAMS += test/lp_test |
42 | 44 |
endif HAVE_LP |
43 | 45 |
if HAVE_MIP |
44 | 46 |
check_PROGRAMS += test/mip_test |
45 | 47 |
endif HAVE_MIP |
46 | 48 |
|
47 | 49 |
TESTS += $(check_PROGRAMS) |
48 | 50 |
XFAIL_TESTS += test/test_tools_fail$(EXEEXT) |
49 | 51 |
|
50 | 52 |
test_adaptors_test_SOURCES = test/adaptors_test.cc |
51 | 53 |
test_bfs_test_SOURCES = test/bfs_test.cc |
52 | 54 |
test_circulation_test_SOURCES = test/circulation_test.cc |
53 | 55 |
test_counter_test_SOURCES = test/counter_test.cc |
54 | 56 |
test_dfs_test_SOURCES = test/dfs_test.cc |
55 | 57 |
test_digraph_test_SOURCES = test/digraph_test.cc |
56 | 58 |
test_dijkstra_test_SOURCES = test/dijkstra_test.cc |
57 | 59 |
test_dim_test_SOURCES = test/dim_test.cc |
58 | 60 |
test_edge_set_test_SOURCES = test/edge_set_test.cc |
59 | 61 |
test_error_test_SOURCES = test/error_test.cc |
60 | 62 |
test_euler_test_SOURCES = test/euler_test.cc |
61 | 63 |
test_gomory_hu_test_SOURCES = test/gomory_hu_test.cc |
62 | 64 |
test_graph_copy_test_SOURCES = test/graph_copy_test.cc |
63 | 65 |
test_graph_test_SOURCES = test/graph_test.cc |
64 | 66 |
test_graph_utils_test_SOURCES = test/graph_utils_test.cc |
65 | 67 |
test_heap_test_SOURCES = test/heap_test.cc |
66 | 68 |
test_kruskal_test_SOURCES = test/kruskal_test.cc |
67 | 69 |
test_hao_orlin_test_SOURCES = test/hao_orlin_test.cc |
68 | 70 |
test_lp_test_SOURCES = test/lp_test.cc |
69 | 71 |
test_maps_test_SOURCES = test/maps_test.cc |
70 | 72 |
test_mip_test_SOURCES = test/mip_test.cc |
71 | 73 |
test_max_matching_test_SOURCES = test/max_matching_test.cc |
72 | 74 |
test_min_cost_arborescence_test_SOURCES = test/min_cost_arborescence_test.cc |
73 | 75 |
test_path_test_SOURCES = test/path_test.cc |
74 | 76 |
test_preflow_test_SOURCES = test/preflow_test.cc |
75 | 77 |
test_radix_sort_test_SOURCES = test/radix_sort_test.cc |
76 | 78 |
test_suurballe_test_SOURCES = test/suurballe_test.cc |
77 | 79 |
test_random_test_SOURCES = test/random_test.cc |
78 | 80 |
test_test_tools_fail_SOURCES = test/test_tools_fail.cc |
79 | 81 |
test_test_tools_pass_SOURCES = test/test_tools_pass.cc |
80 | 82 |
test_time_measure_test_SOURCES = test/time_measure_test.cc |
81 | 83 |
test_unionfind_test_SOURCES = test/unionfind_test.cc |
0 comments (0 inline)