7 AC_INIT([simgrid],[2.95-cvs],[simgrid-devel@lists.gforge.inria.fr])
8 AC_CONFIG_SRCDIR([include/gras.h])
9 AC_CONFIG_HEADERS([src/gras_config.h])
10 # A CI_PREREQ(2003.01.16) # We need a recent ACI when having sub-modules
12 AC_REVISION($Revision$)
17 AC_CONFIG_MACRO_DIR(acmacro)
18 ACLOCAL="$ACLOCAL -I acmacro"
24 SG_CONFIGURE_PART(System checks...)
25 AC_PROG_CC(xlC gcc cc)
30 # Checks for header files.
33 AC_CHECK_HEADERS([sys/socket.h \
35 windows.h winsock.h winsock2.h \
38 AC_CHECK_FUNCS([gettimeofday usleep \
42 # Checks for typedefs, structures, and compiler characteristics.
47 ###################################
48 ## SimGrid and GRAS specific checks
51 SG_CONFIGURE_PART(Checking GRAS architecture signature...)
52 # Check architecture signature begin
54 # Check architecture signature end
55 GRAS_CHECK_STRUCT_COMPACTION
58 SG_CONFIGURE_PART([Checking for threads, contexts or assimilated...])
60 AC_MSG_CHECKING(on top of what can we build the contexts)
62 [ --with-context=[ucontext/pthread] Use either (System V) swapcontext or pthread [[default=auto]].],,
68 auto) with_context=ucontext;;
69 *) AC_MSG_ERROR("--with-context must be either ucontext or pthread") ;;
72 if test "x$with_context" = "xucontext" ; then
73 if test "x$ac_check_ucontext" = "xyes"; then
74 AC_MSG_RESULT(found ucontext.h. Great!)
75 AC_DEFINE([USE_UCONTEXT],1,[Define if we use ucontext or not])
78 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
79 if test `eval echo '${'$as_ac_Header'}'` = yes; then
80 AC_MSG_RESULT(there is no ucontext on windows, and none is needed.")
82 AC_MSG_RESULT([[no working ucontext found. Falling back to pthreads]])
88 if test "x$with_context" = "xpthread"; then
89 AC_CHECK_HEADERS([pthread.h])
90 dnl A C_CHECK_LIB(pthread, pthread_mutex_lock, LIBS="$LIBS -lpthread")
91 AC_CHECK_LIB(pthread,pthread_create,,
92 [AC_MSG_ERROR([[Cannot find pthreads, no way (try --with-context=ucontext if you haven't already tried).]])])
93 AC_DEFINE([USE_PTHREADS],1,[Define if we use pthreads or not])
94 AC_MSG_RESULT(You have pthreads. Let's use them.)
97 #########################################
98 ## Check for libraries extra-dependencies
101 SG_CONFIGURE_PART(Checking extra libraries dependencies...)
103 AC_SUBST([SIMGRID_DEP])
106 AC_CHECK_LIB(nsl, gethostbyname, [GRAS_DEP="$GRAS_DEP -lnsl"])
107 AC_CHECK_LIB(socket, connect, [GRAS_DEP="$GRAS_DEP -lsocket"])
109 AC_MSG_CHECKING(for extra dependencies of libgras)
111 *mingw* ) GRAS_DEP="$GRAS_DEP -lws2_32" ; SIMGRID_DEP="$SIMGRID_DEP -lws2_32" ;;
114 if test "x$GRAS_DEP" = x; then
117 AC_MSG_RESULT($GRAS_DEP)
121 ##############################################
122 ## Enhance maintainer mode and SUBST variables
123 ## (must be placed after any compilation tests since our overprotective flags
124 ## let some tests fail)
127 if test x$USE_MAINTAINER_MODE = xyes
129 # Maintainers have no choice ! I'm a BOFH, and I plainly assume. [Mt]
130 enable_compile_warnings=yes
138 #####################
139 ## Check for programs
142 SG_CONFIGURE_PART(Check for programs...)
143 AC_CHECK_PROG(BASH, bash, `which bash`, /bin/sh)
144 WARNING="This file is generated, do not edit"
147 # Can we rebuild the parsers?
148 # We really want flex and refuse other lex. So, the parser is portable and
149 # does not induce extra lib dependency
152 # Can we rebuild the xml-lexers from the XML specification?
153 # if not, simply touch the flex source files (which are distributed in
154 # tarballs even if generated by flexml) and hope for the best.
155 AC_CHECK_PROG(FLEXML,flexml,`which flexml`,NOTFOUND)
156 AM_CONDITIONAL(HAVE_FLEXML,test x$FLEXML != xNOTFOUND)
163 # examples/pastry/Makefile examples/pastry/test_sg
164 # examples/gras/chord/Makefile examples/gras/chord/test_sg examples/gras/chord/test_rl
166 SG_CONFIGURE_PART(Generating files...)
173 examples/msg/Makefile examples/msg/run_msg_test
174 examples/gras/Makefile
175 examples/gras/ping/Makefile examples/gras/ping/test_sg examples/gras/ping/test_rl
176 examples/gras/timer/Makefile examples/gras/timer/test_sg examples/gras/timer/test_rl
177 examples/gras/chrono/Makefile examples/gras/chrono/test_sg examples/gras/chrono/test_rl
178 examples/gras/tokenS/Makefile examples/gras/tokenS/test_sg examples/gras/tokenS/test_rl
179 examples/amok/Makefile
180 examples/amok/bandwidth/Makefile examples/amok/bandwidth/test_sg examples/amok/bandwidth/test_rl
183 tools/graspe-slave tools/Makefile
187 testsuite/gras/trp_tcp_usage testsuite/gras/trp_file_usage
190 testsuite/run_tests \
191 testsuite/gras/trp_tcp_usage testsuite/gras/trp_file_usage \
192 tools/graspe-slave tools/graspe-master \
194 examples/amok/bandwidth/test_sg examples/amok/bandwidth/test_rl \
196 examples/gras/ping/test_sg examples/gras/ping/test_rl \
197 examples/gras/timer/test_sg examples/gras/timer/test_rl \
198 examples/gras/chrono/test_sg examples/gras/chrono/test_rl \
199 examples/gras/tokenS/test_sg examples/gras/tokenS/test_rl \
200 examples/msg/run_msg_test \
202 test -e $file && chmod +x $file; \
207 # examples/gras/chord/test_sg examples/gras/chord/test_rl \
208 # examples/gras/pastry/test_sg
212 # examples/gras/saturate/Makefile examples/gras/saturate/test_sg
213 # examples/gras/alnem/Makefile examples/gras/alnem/test_sg
221 Configuration of package \`${PACKAGE}' (version ${VERSION}) on $gras_arch_name (=$gras_arch):