gravatar
ladanyi@tmit.bme.hu
ladanyi@tmit.bme.hu
Add 'demo' make target for building the demo programs
0 7 0
default
7 files changed with 27 insertions and 41 deletions:
↑ Collapse diff ↑
Ignore white space 6 line context
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.
Ignore white space 6 line context
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
Ignore white space 6 line context
... ...
@@ -19,128 +19,115 @@
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
Ignore white space 6 line context
1
EXTRA_DIST += \
2
	demo/CMakeLists.txt \
3
	demo/digraph.lgf
1
AM_CXXFLAGS = $(WARNINGCXXFLAGS)
4 2

	
5
if WANT_DEMO
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
endif WANT_DEMO
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
demo_lgf_demo_SOURCES = demo/lgf_demo.cc
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
Ignore white space 96 line context
... ...
@@ -626,62 +626,62 @@
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
}
Ignore white space 6 line context
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 --enable-demo
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 '*****************************************************************'
Ignore white space 6 line context
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)