root/cgm/trunk/configure.in @ 1542

Revision 1542, 11.5 KB (checked in by kraftche, 22 months ago)

remove lots of unnecessary OpenCASCADE libraries

Line 
1###############################################################################
2#                           Standard Stuff
3################################################################################
4AC_INIT(CGMA, 10.2.2)
5AC_CANONICAL_SYSTEM
6AM_INIT_AUTOMAKE(CGMA,10.2.2)
7AC_DISABLE_SHARED
8
9SNL_CHECK_COMPILERS
10AC_PROG_FC
11AM_CONDITIONAL(build_parallel, [test "x$WITH_MPI" != "xno"])
12AC_PROG_LIBTOOL
13LIBS="-lm"
14AC_PROG_LIBTOOL
15AC_C_BIGENDIAN( [LITTLE_ENDIAN=], [LITTLE_ENDIAN=-DLITTLE_ENDIAN=BYTE_ORDER] )
16AC_SUBST(LITTLE_ENDIAN)
17
18
19################################################################################
20#                Fortran Stuff for ITAPS C bindings
21################################################################################
22if test "x" != "x$FC"; then
23  AC_FC_WRAPPERS
24fi
25
26
27################################################################################
28#                              MPI OPTIONS
29################################################################################
30
31if test "x$WITH_MPI" != "xno"; then
32  CXXFLAGS="$CXXFLAGS -DUSE_MPI"
33  CGM_PARALLEL_INCLUDE='-I${CGM_DIR}/geom/parallel'
34  CGM_PARALLEL_LIB='-L${CGM_DIR}/geom/parallel -lcubit_parallel'
35  CGM_PARALLEL_LIB_FILE='${CGM_LIBDIR}/libcubit_parallel.a'
36fi
37AM_CONDITIONAL(USE_MPI, [test "xno" != "x$WITH_MPI"])
38AC_SUBST(CGM_PARALLEL_INCLUDE)
39AC_SUBST(CGM_PARALLEL_LIB)
40AC_SUBST(CGM_PARALLEL_LIB_FILE)
41
42################################################################################
43#                           CGM-specific Checks
44################################################################################
45
46SNL_CANT_USE_STD
47SNL_TEMPLATE_DEFS_INCLUDED
48AC_SUBST(CANT_USE_STD)
49AC_SUBST(CANT_USE_STD_IO)
50AC_SUBST(TEMPLATE_DEFS_INCLUDED)
51AM_CONDITIONAL(INCLUDE_TEMPLATE_DEFS, test x$TEMPLATE_DEFS_INCLUDED != x)
52
53
54################################################################################
55#                         Use Cubit shared libraries
56################################################################################
57CGM_LIBS_LINK='$(CGM_LIBS_LINK_INTERNAL)'
58CGM_LIBS_FILES='$(CGM_LIBS_FILES_INTERNAL)'
59CGM_LIBS_LTFLAGS=
60CUBIT_LINK=no
61CUBIT_FILE=no
62CUBIT_BIN_DIR=no
63HAVE_ACIS_DEF=
64
65AC_ARG_WITH( cubit,
66             AC_HELP_STRING([--with-cubit=<dir>],[Use CGM from CUBIT shared library]),
67             [CUBIT_DIR="$withval"],[CUBIT_DIR=no])
68AC_ARG_WITH( CUBIT,
69             AC_HELP_STRING([--with-CUBIT=<dir>],[DEPRECATED.  Use --with-cubit (small case)]),
70             [CUBIT_DIR="$withval"])
71if test "x$CUBIT_DIR" == "xyes"; then
72  AC_MSG_ERROR([Option --with-CUBIT without specifying Cubit directory.])
73elif test "x$CUBIT_DIR" != "xno"; then
74  if ! test -d "$CUBIT_DIR"; then
75    AC_MSG_ERROR([$CUBIT_DIR: not a directory.])
76  fi
77  CUBIT_LDFLAGS=
78  CUBIT_LTFLAGS=
79  CUBIT_LIBS=no
80  if test -d "$CUBIT_DIR/bin"; then
81    CUBIT_LDFLAGS="$CUBIT_LDFLAGS -L$CUBIT_DIR/bin"
82    CUBIT_LTFLAGS="$CUBIT_LTFLAGS -R$CUBIT_DIR/bin"
83    if test -d "$CUBIT_DIR/bin/lib"; then
84      CUBIT_LDFLAGS="$CUBIT_LDFLAGS -L$CUBIT_DIR/bin/lib"
85      CUBIT_LTFLAGS="$CUBIT_LTFLAGS -R$CUBIT_DIR/bin/lib"
86    fi
87  fi
88  if test -d "$CUBIT_DIR/lib"; then
89    CUBIT_LDFLAGS="$CUBIT_LDFLAGS -L$CUBIT_DIR/lib"
90    CUBIT_LTFLAGS="$CUBIT_LTFLAGS -R$CUBIT_DIR/lib"
91  fi
92  if test -d "$CUBIT_DIR/libs"; then
93    CUBIT_LDFLAGS="$CUBIT_LDFLAGS -L$CUBIT_DIR/libs"
94    CUBIT_LTFLAGS="$CUBIT_LTFLAGS -R$CUBIT_DIR/libs"
95  fi
96
97  CUBIT_BIN_DIR="$CUBIT_DIR/bin"
98  cat >conftest.cc <<EOCUBITCT
99class AcisQueryEngine { public: static AcisQueryEngine* instance_; };
100int main() {
101  AcisQueryEngine::instance_ = 0;
102  return 0;
103}
104EOCUBITCT
105  pattern=["${CUBIT_BIN_DIR}/*cubiti[0-9][0-9].*"]
106  for file in $pattern; do
107    AC_MSG_CHECKING([for AcisQueryEngine::instance_ in $file])
108    num=[`expr X"$file" : X".*cubiti\([0-9][0-9]\)\..*"`]
109    if ./libtool --mode=link $CXX $LDFLAGS $CUBIT_LDFLAGS $CUBIT_LTFLAGS -lcubiti$num conftest.cc -o conftest >&5 2>&5; then
110      CUBIT_LIBS="-lcubiti$num"
111      CUBIT_FILE=`expr x"$file" : x"$CUBIT_DIR/bin/\(.*\)"`
112      CUBIT_FILE="${CUBIT_DIR}/bin/$CUBIT_FILE"
113      AC_MSG_RESULT(yes)
114    else
115      AC_MSG_RESULT(no)
116    fi
117  done
118  rm -f conftest.cc
119 
120  if test "x$CUBIT_LIBS" = "xno"; then
121    AC_MSG_ERROR("Cubit library not found in $CUBIT_BIN_DIR")
122  fi
123  CGM_LIBS_LINK='$(CUBIT_LDFLAGS) $(CUBIT_LIBS)'
124  CGM_LIBS_FILES='$(CUBIT_FILE)'
125  CGM_LIBS_LTFLAGS='$(CUBIT_LTFLAGS)'
126  CUBIT_CGM="-DCUBIT_CGM"
127dnl  AC_DEFINE( HAVE_ACIS, "Have CGM ACIS Implementation" )
128  HAVE_ACIS_DEF=-DHAVE_ACIS
129fi
130
131AC_SUBST(CUBIT_LDFLAGS)
132AC_SUBST(CUBIT_LTFLAGS)
133AC_SUBST(CUBIT_LIBS)
134AC_SUBST(CUBIT_FILE)
135AC_SUBST(CUBIT_CGM)
136AC_SUBST(CGM_LIBS_LINK)
137AC_SUBST(CGM_LIBS_FILES)
138AC_SUBST(CGM_LIBS_LTFLAGS)
139
140AM_CONDITIONAL(BUILD_CGM,[test x"$CUBIT_DIR" == x"no"])
141
142
143################################################################################
144#                           ACIS OPTIONS
145################################################################################
146ACIS_BASE_LIBS='-lSpaAVis -lSpaAWarp -lSpaASurf -lSpaALops -lSpaABlend -lSpaACIS -lSpaBase'
147ACIS_STEP_LIBS='-lacisstep -lxstep'
148ACIS_IGES_LIBS='-lacisiges -lxiges'
149
150AC_ARG_WITH( acis,
151             AC_HELP_STRING([--with-acis=<dir>],[Build with ACIS support, specify directory where ACIS is installed.]),
152             [ACIS_DIR=$withval],[ACIS_DIR=no] )
153AC_ARG_WITH( ACIS,
154             AC_HELP_STRING([--with-ACIS],[DEPRECATED.  Use --wtih-acis (small case)]),
155             [ACIS_DIR=$withval] )
156AC_ARG_WITH( ACIS-system, AC_HELP_STRING([--with-acis-system=SYS],
157          [Specify ACIS system name (e.g. linux_so), default is to autodetect.]),
158             [ACIS_SYSTEM=$withval],[ACIS_SYSTEM=] )
159AC_ARG_WITH( acis-version, AC_HELP_STRING([--with-acis-version=INT],
160[Specify ACIS version as an integer value (100*major+10*minor+point), default is to autodetect.]),
161[if ! test "$withval" -gt "600"; then
162  AC_MSG_ERROR("ACIS-version must be an integer greater than 600.")
163 fi
164 ACIS_VERSION=$withval],
165[ACIS_VERSION=0])
166if test "x$ACIS_DIR" == "x"; then
167  ACIS_DIR=no;
168fi         
169if test "x$ACIS_DIR" == "xno"; then
170  ACIS_LIB_DIR=".";
171fi
172if test "x$ACIS_DIR" != "xno"; then
173  if test "x$CUBIT_DIR" != "xno"; then
174    AC_MSG_ERROR("Conflicting options:  Cannot specifiy both --with-ACIS and --with-CUBIT")
175  fi
176
177  AC_CHECK_FILE( [${srcdir}/geom/ACIS/AcisQueryEngine.hpp], [],
178                 [AC_MSG_ERROR([ACIS source not present.  Checkout ACIS_SRC and move to ACIS])] )
179
180  if test "$ACIS_DIR" == "yes"; then ACIS_DIR=.; fi
181  SNL_ACIS_ENV
182 
183  SNL_ACIS_TRANSLATOR
184  if test x$ACIS_STEP_TRANSLATOR != x; then
185    ACIS_LIBS="$ACIS_LIBS $ACIS_STEP_LIBS"
186    ACIS_XLIBS="$ACIS_XLATE_LIBS"
187  fi
188  if test x$ACIS_IGES_TRANSLATOR != x; then
189    ACIS_LIBS="$ACIS_LIBS $ACIS_IGES_LIBS"
190    ACIS_XLIBS="$ACIS_XLATE_LIBS"
191  fi
192  CGM_ACIS_LIBS='-lcubit_ACIS'
193  ACIS_LIBS="$ACIS_LIBS $ACIS_XLIBS $ACIS_BASE_LIBS"
194  ACIS_HEALER="-DACIS_HEALER"
195  ACIS_INCLUDES="-I$ACIS_DIR/include"
196  ACIS_DEFS='$(ACIS_STEP_TRANSLATOR) $(ACIS_IGES_TRANSLATOR) -DCUBIT_ACIS_VERSION=$(ACIS_VERSION) -DACIS_VERSION=$(ACIS_VERSION) -D$(ACIS_PLATFORM) -DACIS_LOCAL_OPS'
197dnl  AC_DEFINE( HAVE_ACIS )
198  HAVE_ACIS_DEF=-DHAVE_ACIS
199fi
200AC_SUBST(ACIS_DEFS)
201AC_SUBST(ACIS_DIR)
202AC_SUBST(ACIS_LIB_DIR)
203AC_SUBST(ACIS_INCLUDES)
204AC_SUBST(ACIS_LIBS)
205AC_SUBST(CGM_ACIS_LIBS)
206AC_SUBST(ACIS_HEALER)
207AC_SUBST(ACIS_VERSION)
208AC_SUBST(ACIS_PLATFORM)
209AC_SUBST(ACIS_STEP_TRANSLATOR)
210AC_SUBST(ACIS_IGES_TRANSLATOR)
211AC_SUBST(HAVE_ACIS_DEF)
212AM_CONDITIONAL(build_ACIS, test x$ACIS_DIR != xno)
213
214################################################################################
215#                           iGeom Babel
216################################################################################
217AC_ARG_WITH(babel,
218[AC_HELP_STRING([--with-babel=DIR], [Specify directory containing babel])],
219[BABEL_DIR=$withval
220 DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-babel=\"${withval}\""
221 ], [BABEL_DIR=no])
222case "x$BABEL_DIR" in
223  xno)
224    BABEL_DIR=
225    USE_BABEL=no
226    ;;
227  xyes|x)
228    BABEL_DIR=/usr/local
229    AC_CHECK_FILE([${BABEL_DIR}/bin/babel], [USE_BABEL=yes], [USE_BABEL=no])
230    ;;
231  *)
232    AC_CHECK_FILE([${BABEL_DIR}/bin/babel], [USE_BABEL=yes], [USE_BABEL=no])
233    ;;
234esac
235AC_SUBST(BABEL_DIR)
236AC_SUBST(USE_BABEL)
237AM_CONDITIONAL(USE_BABEL, [test "xno" != "x$USE_BABEL"])
238
239
240################################################################################
241#                           OCC Options
242################################################################################
243# Add --with-occ option to configure script
244
245AC_ARG_WITH( occ,
246             [AC_HELP_STRING([--with-occ=<dir>],[OpenCascade shared library directory])],
247             [occ_DIR="$withval"],
248             [occ_DIR=no] )
249
250# if user specified option (other than --without-occ)
251if test "x$occ_DIR" != "xno"; then
252  OCC_LIBS="-lTKMath -lTKXSBase -lTKernel -lTKShHealing -lTKBRep -lTKG3d -lTKBO -lTKFeat -lTKFillet -lTKG2d -lTKOffset -lTKBool -lTKGeomAlgo -lTKGeomBase -lTKPrim -lTKTopAlgo -lTKHLR -lTKIGES -lTKMesh -lTKPrim -lTKSTEP209 -lTKSTEPAttr -lTKSTEPBase -lTKSTEP -lTKSTL -lTKTopAlgo -lTKXSBase"
253
254  # Set OCC_INC_FLAG and OCC_LIB_FLAG based on --with-occ option
255  if test "x$occ_DIR" = "x"; then
256    OCC_INC_FLAG=
257    OCC_LIB_FLAG=
258  else
259    uname=`uname`
260    OCC_INC_FLAG="-I${occ_DIR}/ros/inc -I/usr/include"
261# -I/usr/include/c++/4.2 -I/usr/include/c++/4.2/tr1"
262    OCC_LIB_FLAG="-L${occ_DIR}/ros/${uname}/lib"
263  fi
264
265  # Check of OCC is present and working
266
267  # Save old value of these variables and update working ones
268  old_CPPFLAGS="$CPPFLAGS"
269  old_LDFLAGS="$LDFLAGS"
270  CPPFLAGS="$CPPFLAGS ${OCC_INC_FLAG}"
271  LDFLAGS="$LDFLAGS ${OCC_LIB_FLAG}"
272
273  # Check if 64-bit
274  AC_MSG_CHECKING([if platform is 64-bit (-D_OCC64)])
275  AC_TRY_COMPILE([],[int array[6-(int)sizeof(void*)];],[AC_MSG_RESULT(no)],
276                 [AC_MSG_RESULT(yes); OCC_INC_FLAG="$OCC_INC_FLAG -D_OCC64 -DHAVE_IOSTREAM_H -DHAVE_LIMITS_H"])
277
278  # Check if OCC has Stadard_Version.hxx
279  AC_CHECK_HEADER( [Standard_Version.hxx], [],
280                 [AC_MSG_ERROR([OpenCascade config error:Standard_Version.hxx not found])] )
281
282  # Check if libTKernel.so contains function 'create_mailbox'
283  old_LIBS="$LIBS"
284  AC_CHECK_LIB( [TKernel], [create_mailbox],,
285                [AC_MSG_ERROR([OpenCascade config error: libTKernel not found ])])
286  LIBS="$old_LIBS"
287
288  # Restore original values of variables
289  CPPFLAGS="$old_CPPFLAGS"
290  LDFLAGS="$old_LDFLAGS"
291fi
292
293# Export these variables as variables in Makefiles
294AC_SUBST(OCC_INC_FLAG)
295AC_SUBST(OCC_LIB_FLAG)
296AC_SUBST(OCC_LIBS)
297
298# Allow "if WITH_OCC" in Makefile.am
299AM_CONDITIONAL( WITH_OCC, [test "x$occ_DIR" != "xno"] )
300
301
302################################################################################
303#                           Output Files
304################################################################################
305AC_MSG_RESULT([CXXFLAGS = $CXXFLAGS])
306AC_OUTPUT_COMMANDS( [if test -f util/CubitUtilConfigure.h; then true; else echo "#define CUBIT_UTIL_EXPORT" > util/CubitUtilConfigure.h; fi],
307                    [if test -f geom/CubitGeomConfigure.h; then true; else echo "#define CUBIT_GEOM_EXPORT" > geom/CubitGeomConfigure.h; fi] )
308AC_CONFIG_HEADERS(config.h)
309AC_CONFIG_HEADERS(itaps/iBase_FCDefs.h)
310AC_CONFIG_FILES(Makefile
311           util/Makefile
312           geom/Makefile
313           geom/ACIS/Makefile
314           geom/Cholla/Makefile
315           geom/facet/Makefile
316           geom/facetbool/Makefile
317           geom/OCC/Makefile
318           geom/parallel/Makefile
319           geom/virtual/Makefile
320           init/Makefile
321           cgm.make
322           itaps/Makefile
323           itaps/iGeom-Defs.inc
324           itaps/SIDL/Makefile
325           itaps/SIDL/iGeom-SIDL-Defs.inc
326           test/Makefile
327           )
328
329AC_OUTPUT
Note: See TracBrowser for help on using the browser.