source: trunk/packages/vizservers/configure.in @ 2958

Last change on this file since 2958 was 2886, checked in by ldelgass, 12 years ago

Next release of vtk will be 5.10.0, so teach configure to look for it.

File size: 10.4 KB
Line 
1AC_PREREQ([2.60])
2AC_INIT(vizservers, 0.1, rappture@nanohub.org)
3AC_CONFIG_AUX_DIR(cf)
4AC_CONFIG_HEADERS([nanovis/nvconf.h nanoscale/config.h])
5
6AC_ARG_WITH(
7    [tcllib],
8    [AS_HELP_STRING([--with-tcllib[=DIR]],
9        [location of Tcl binary library libtclstubs.a @<:@default=/usr/lib@:>@])],
10    [with_tcllib=$withval],
11    [with_tcllib=""])
12
13AC_ARG_WITH(
14    [rappture],
15    [AS_HELP_STRING([--with-rappture[=DIR]],
16        [location of rappture files lib/librappture.a and include/rappture.h @<:@default=/usr@:>@])],
17    [with_rappture=$withval],
18    [with_rappture=yes])
19
20AC_ARG_WITH(
21    [vtk-includes],
22    [AS_HELP_STRING([--with-vtk-includes=DIR],
23        [VTK include files are in DIR])],
24    [with_vtk_includes=$withval],
25    [with_vtk_includes=""])
26
27AC_ARG_WITH(
28    [vtk-libs],
29    [AS_HELP_STRING([--with-vtk-libs=DIR],
30        [VTK libraries are in DIR])],
31    [with_vtk_libs=$withval],
32    [with_vtk_libs=""])
33
34AC_ARG_WITH(
35    [vtk],
36    [AS_HELP_STRING([--with-vtk=VERSION],
37        [Version of VTK required])],
38    [with_vtk=$withval],
39    [with_vtk=yes])
40
41RP_LANG_PYTHON
42
43VERSION=0.0.1
44
45#------------------------------------------------------------------------
46# Handle the --prefix=... option
47#------------------------------------------------------------------------
48
49if test "${prefix}" = "NONE"; then
50    prefix=/usr/local
51fi
52if test "${exec_prefix}" = "NONE"; then
53    exec_prefix=$prefix
54fi
55
56if test "x${incdir}" == "x"; then
57  incdir=${exec_prefix}/include
58fi
59libdir=${exec_prefix}/lib
60
61if test "${libdir}" != "${prefix}/lib"; then
62    LIB_SEARCH_DIRS="-L ${prefix}/lib -L ${libdir}"
63else
64    LIB_SEARCH_DIRS="-L ${libdir}"
65fi
66
67SC_CONFIG_CFLAGS
68
69
70AC_PATH_X
71
72AC_PROG_INSTALL
73AC_PROG_RANLIB
74AC_PROG_LN_S
75AC_PROG_MKDIR_P
76
77dnl find and test the C compiler
78AC_PROG_CC
79AC_PROG_CPP
80AC_PROG_CXXCPP
81AC_PROG_CXX
82AC_LANG_CPLUSPLUS
83
84AC_C_BIGENDIAN
85AC_CHECK_SIZEOF(int, 4)
86AC_CHECK_SIZEOF(long, 4)
87AC_CHECK_SIZEOF(long long, 8)
88AC_CHECK_SIZEOF(void *, 4)
89AC_CHECK_SIZEOF(float, 4)
90
91# Save the values as shell variables so that we can substitute them
92# into bltHash.h for situtations where there's no bltInt.h.
93
94
95LD_RPATH="";
96
97#
98# Need to check for the following dependencies:
99#       Rappture headers and library (done)
100#       Tcl headers and library (done)
101#       GL headers and library
102#       GLuT headers and library
103#       GLui header and library
104#       GLEW header and library
105#       Cg headers and library
106#       CgGL headers and library
107#       pthread library
108#       DX headers and library (done, sort of)
109#       ffmpeg headers and library (started)
110#
111
112TCL_VERSION="8.4"
113for dir in \
114 ${exec_prefix} \
115 ${exec_prefix}/lib \
116 ${with_rappture} \
117 ${with_rappture}/lib ; do
118  tclconfig="${dir}/tclConfig.sh"
119  if test -f "$tclconfig" ; then
120    . $tclconfig
121    break
122  fi
123done
124TCL_INC_SPEC="$TCL_INCLUDE_SPEC"
125
126if test "x$with_tcllib" != "x" ; then
127   tclconfig="${with_tcllib}/tclConfig.sh"
128   if test -f "$tclconfig" ; then
129    . $tclconfig
130   fi
131   TCL_LIB_SPEC="-L${with_tcllib} -ltcl${TCL_VERSION}"
132fi
133if test "x$with_tclinclude" != "x" ; then
134   TCL_INC_SPEC="-I${with_tclinclude}"
135fi
136
137RP_DIR=""
138AC_MSG_CHECKING([for rappture])
139if test "$with_rappture" == "yes" ; then
140  for dir in "$exec_prefix" "/usr" ; do
141    if test -r "$dir/include/rappture2/rappture2.h" -a \
142     -r "$dir/lib/librappture.a"; then
143      RP_DIR="$dir"
144      RP_INC_SPEC="-I$dir/include -I$dir/include/rappture2"
145      RP_LIB_DIR="$dir/lib"
146      AC_MSG_RESULT([$dir])
147      break
148    fi
149  done
150else
151  if test ! -d "$with_rappture" ; then
152    AC_MSG_ERROR([--with-rappture: no such directory $with_rappture])
153  fi
154  RP_DIR=$with_rappture
155  RP_INC_SPEC="-I$with_rappture/include -I$with_rappture/include/rappture2"
156  RP_LIB_DIR="$with_rappture/lib"
157fi
158if test "x${RP_DIR}" = "x" ; then
159  AC_MSG_ERROR([cannot find rappture.h and librappture2.a, try using --with-rappture])
160else
161  AC_MSG_RESULT([$with_rappture])
162fi
163
164dnl Prefer our VTK installation over systems. --with-vtk overrides.
165if test "$with_vtk" != "no" ; then
166  if test "$with_vtk" = "yes" ; then
167    for dir in vtk-5.{10,9,8,7,6,5,4,3,2,1} ; do
168      if test -d "${libdir}/$dir" -a -d "${incdir}/$dir"; then
169        VTK_LIB_SPEC="-L${libdir}/$dir"
170        VTK_LIB_DIR="${libdir}/$dir"
171        VTK_INC_SPEC="-I${incdir}/$dir"
172        break
173      fi
174      if test -d "/usr/lib/$dir" -a -d "/usr/include/$dir"; then
175        VTK_LIB_SPEC=-L/usr/lib/$dir
176        VTK_LIB_DIR=/usr/lib/$dir
177        VTK_INC_SPEC=-I/usr/include/$dir
178        break
179      fi
180    done
181  fi
182fi
183
184if test "x$with_vtk_includes" != "x"; then
185   VTK_INC_SPEC=-I$with_vtk_includes
186fi
187
188if test "x$with_vtk_libs" != "x"; then
189   VTK_LIB_DIR=$with_vtk_libs
190   VTK_LIB_SPEC="-L$with_vtk_libs"
191fi
192
193save_CPPFLAGS=$CPPFLAGS
194CPPFLAGS=$VTK_INC_SPEC
195AC_CHECK_HEADERS([vtkSmartPointer.h], [], [AC_MSG_WARN([cannot find vtkSmartPointer.h])])
196CPPFLAGS=$save_CPPFLAGS
197
198AC_CHECK_HEADER([GL/glui.h])
199AC_CHECK_HEADER([glui.h])
200AC_CHECK_HEADER([GL/glut.h])
201AC_CHECK_HEADER([GL/glew.h])
202
203AC_CHECK_HEADERS([stdio.h unistd.h stdlib.h string.h sys/types.h])
204AC_CHECK_HEADERS([sys/socket.h sys/time.h netinet/in.h arpa/inet.h netdb.h])
205
206AC_CHECK_FUNCS([accept4])
207
208AC_MSG_CHECKING([for OpenDX headers])
209DX_INC_DIR=""
210for dir in \
211 /apps/rappture/include \
212 /usr/dx/include \
213 /usr/include
214do
215  if test -r "${dir}/dx/dx.h" ; then
216    DX_INC_DIR="$dir"
217    break
218  fi
219done
220if test "x${DX_INC_DIR}" = "x" ; then
221  AC_MSG_WARN([cannot find OpenDX include files])
222  DX_INC_SPEC=""
223elif test "${DX_INC_DIR}" = "/usr/include" ; then
224  DX_INC_SPEC=""
225else
226  DX_INC_SPEC="-I{DX_INC_DIR}"
227fi
228
229AC_MSG_RESULT([${DX_INC_DIR}])
230save_CPPFLAGS=${CPPFLAGS}
231CPPFLAGS="$DX_INC_SPEC $CPPFLAGS"
232AC_CHECK_HEADERS(dx/dx.h)
233CPPFLAGS=${save_CPPFLAGS}
234
235DX_LIB_DIR=""
236for dir in \
237 /usr/lib \
238 /usr/lib64 \
239 /usr/dx/lib_linux \
240 /usr/lib/dx/lib_linux \
241 /usr/lib64/dx/lib_linux \
242 /apps/rappture/lib
243do
244  saveLDFLAGS=$LDFLAGS
245  LDFLAGS="-L$dir $LDFLAGS"
246  unset ac_cv_lib_DXcallm_DXGetComponentValue
247  AC_CHECK_LIB([DXcallm], [DXGetComponentValue], [found=yes], [found=no], [-lX11])
248  LDFLAGS=$saveLDFLAGS
249  if test "$found" = "yes" ; then
250    DX_LIB_DIR="$dir"
251    break
252  fi
253done
254if test "x${DX_LIB_DIR}" = "x" ; then
255  AC_MSG_WARN([cannot find OpenDX libraries])
256fi
257
258AC_MSG_CHECKING([for libDXcallm library])
259if test "x${DX_LIB_DIR}" = "x" -o "${DX_LIB_DIR}" = "/usr/lib" -o "${DX_LIB_DIR}" = "/usr/lib64"; then
260  DX_LIB_SPEC=""
261else
262  DX_LIB_SPEC="-L${DX_LIB_DIR} -lDXcallm"
263fi
264AC_MSG_RESULT([$DX_LIB_SPEC])
265
266save_CPPFLAGS=$CPPFLAGS
267# Test for redhat-specific location of ffmpeg headers.
268if test -d "/usr/include/ffmpeg" ; then
269  CPPFLAGS="$CPPFLAGS -I/usr/include/ffmpeg"
270  FF_INC_SPEC="-I/usr/include/ffmpeg"
271fi
272
273AC_CHECK_HEADERS([ffmpeg/avcodec.h libavcodec/avcodec.h ffmpeg/avformat.h libavformat/avformat.h ffmpeg/avutil.h libavutil/avutil.h],,,[
274#define __STDC_CONSTANT_MACROS 1
275])
276CPPFLAGS=$save_CPPFLAGS
277
278AC_CHECK_LIB(avcodec, main,,AC_MSG_ERROR(requires libavcodec))
279AC_CHECK_LIB(avutil, main,,AC_MSG_ERROR(requires libavutil))
280AC_CHECK_LIB(avformat, main,,AC_MSG_ERROR(requires libavformat))
281AC_CHECK_LIB(swscale, main)
282AC_CHECK_FUNCS(avcodec_decode_video2)
283AC_CHECK_FUNCS(avcodec_decode_video)
284AC_CHECK_FUNCS(avformat_open_input)
285AC_CHECK_FUNCS(av_open_input_file)
286AC_CHECK_FUNCS(av_guess_format)
287AC_CHECK_FUNCS(guess_format)
288AC_CHECK_FUNCS(av_dump_format)
289AC_CHECK_FUNCS(dump_format)
290AC_CHECK_FUNCS(avio_open)
291AC_CHECK_FUNCS(url_fopen)
292AC_CHECK_FUNCS(avio_close)
293AC_CHECK_FUNCS(url_fclose)
294AC_CHECK_FUNCS(avformat_alloc_context)
295AC_CHECK_FUNCS(av_alloc_format_context)
296AC_CHECK_FUNCS(av_set_parameters)
297AC_CHECK_FUNCS(avformat_write_header)
298AC_CHECK_FUNCS(av_write_header)
299AC_CHECK_FUNC(av_write_trailer,,
300  AC_MSG_ERROR(oops! no av_write_trailer?!?))
301AC_CHECK_FUNC(av_freep,, AC_MSG_ERROR(oops! no av_freep ?!?))
302AC_CHECK_FUNC(av_free,,AC_MSG_ERROR(oops! no av_free ?!?))
303AC_CHECK_FUNC(av_new_stream,,AC_MSG_ERROR(oops! av_new_stream ?!?))
304AC_CHECK_FUNC(av_malloc,, AC_MSG_ERROR(oops! no av_malloc ?!?))
305AC_CHECK_FUNC(av_init_packet,,AC_MSG_ERROR(oops! no av_init_packet ?!?))
306AC_CHECK_FUNC(av_rescale_q,,AC_MSG_ERROR(oops! no av_rescale_q ?!?))
307AC_CHECK_FUNC(av_write_frame,,AC_MSG_ERROR(oops! av_write_frame ?!?))
308AC_CHECK_FUNCS(img_convert)
309AC_CHECK_FUNCS(sws_scale)
310AC_TRY_COMPILE([
311#define __STDC_CONSTANT_MACROS 1
312#include <stdlib.h>
313#ifdef HAVE_FFMPEG_AVCODEC_H
314# include <ffmpeg/avcodec.h>
315#endif
316#ifdef HAVE_LIBAVCODEC_AVCODEC_H
317# include <libavcodec/avcodec.h>
318#endif
319int x = AVMEDIA_TYPE_VIDEO;
320],, ac_avmedia_type_video="yes", ac_avmedia_type_video="no")
321if test "$ac_avmedia_type_video" == "yes" ; then
322  AC_DEFINE(HAVE_AVMEDIA_TYPE_VIDEO,1,[Define if AVMEDIA_TYPE_VIDEO enum exists. ])
323fi
324
325AC_CHECK_LIB([avcodec], [avcodec_alloc_frame])
326# Fallback to deprecated av_alloc_format_context if avformat_alloc_context isn't found
327AC_CHECK_LIB([avformat], [avformat_alloc_context], [],
328    AC_CHECK_LIB([avformat], [av_alloc_format_context], [],
329        [AC_MSG_WARN([libavformat not usable])]))
330
331
332AC_MSG_CHECKING([for nVidia Cg installation])
333CG_DIR=""
334for dir in \
335 /opt/nvidia-cg-toolkit \
336 /usr/cg \
337 /usr
338do
339  if test -r "$dir/include" ; then
340    CG_DIR=$dir
341    break
342  fi
343done
344AC_MSG_RESULT([${CG_DIR}])
345
346CG_INC_SPEC="-I${CG_DIR}/include"
347CG_LIB_DIR="${CG_DIR}/lib"
348
349save_CPPFLAGS=$CPPFLAGS
350CPPFLAGS="${CG_INC_SPEC} $CPPFLAGS"
351AC_CHECK_HEADERS([Cg/cgGL.h], [], AC_MSG_WARN([cannot find nVidia Cg headers]))
352CPPFLAGS=$save_CPPFLAGS
353
354if test "${CG_DIR}" = "/usr" ; then
355  CG_INC_SPEC=""
356  CG_LIB_SPEC="-lCg -lCgGL"
357else
358  CG_LIB_SPEC="-L${CG_LIB_DIR} -lCg -lCgGL"
359  LD_RPATH="$loader_run_path:${CG_LIB_DIR}"
360fi
361
362SUBDIRS="nanoscale nanovis pymolproxy vtkvis"
363
364AC_SUBST(CFLAGS_DEBUG)
365AC_SUBST(CFLAGS_OPTIMIZE)
366AC_SUBST(CG_INC_SPEC)
367AC_SUBST(CG_LIB_SPEC)
368AC_SUBST(DX_INC_SPEC)
369AC_SUBST(DX_LIB_SPEC)
370AC_SUBST(FF_INC_SPEC)
371AC_SUBST(LD_RPATH)
372AC_SUBST(RP_DIR)
373AC_SUBST(RP_INC_SPEC)
374AC_SUBST(RP_LIB_DIR)
375AC_SUBST(SHLIB_CFLAGS)
376AC_SUBST(SHLIB_LD)
377AC_SUBST(SHLIB_LDFLAGS)
378AC_SUBST(SHLIB_SUFFIX)
379AC_SUBST(SIZEOF_FLOAT)
380AC_SUBST(SIZEOF_INT)
381AC_SUBST(SIZEOF_LONG)
382AC_SUBST(SIZEOF_LONG_LONG)
383AC_SUBST(SIZEOF_VOID_P)
384AC_SUBST(STLIB_LD)
385AC_SUBST(SUBDIRS)
386AC_SUBST(PYTHON)
387AC_SUBST(TCL_INC_SPEC)
388AC_SUBST(TCL_LIB_SPEC)
389AC_SUBST(TCL_VERSION)
390AC_SUBST(VERSION)
391AC_SUBST(VTK_INC_SPEC)
392AC_SUBST(VTK_LIB_DIR)
393
394AC_OUTPUT([
395   Makefile \
396   nanoscale/Makefile \
397   nanoscale/renderservers.tcl \
398   nanovis/Makefile \
399   nanovis/newmat11/Makefile \
400   nanovis/R2/src/Makefile \
401   nanovis/vrutil/Makefile \
402   nanovis/vrmath/Makefile \
403   nanovis/imgLoaders/Makefile \
404   nanovis/transfer-function/Makefile \
405   pymolproxy/Makefile \
406   vtkvis/Doxyfile \
407   vtkvis/Makefile \
408   start_viz.sh \
409   start_nanoscale.sh])
Note: See TracBrowser for help on using the repository browser.