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
... ...
@@ -6,104 +6,96 @@
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
Ignore white space 48 line context
... ...
@@ -18,54 +18,58 @@
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
... ...
@@ -43,104 +43,91 @@
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 6 line context
... ...
@@ -650,38 +650,38 @@
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
... ...
@@ -16,48 +16,50 @@
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
0 comments (0 inline)