| 1 | ############################################################################### |
|---|
| 2 | # Standard Stuff |
|---|
| 3 | ################################################################################ |
|---|
| 4 | AC_INIT(CGMA, 10.2.3) |
|---|
| 5 | AC_CONFIG_MACRO_DIR([m4]) |
|---|
| 6 | AC_CONFIG_AUX_DIR([.]) |
|---|
| 7 | AC_CANONICAL_SYSTEM |
|---|
| 8 | AM_INIT_AUTOMAKE([foreign]) |
|---|
| 9 | AC_DISABLE_SHARED |
|---|
| 10 | |
|---|
| 11 | EXTRA_GNU_FLAGS="-Wall -pipe -pedantic" |
|---|
| 12 | FATHOM_CHECK_COMPILERS |
|---|
| 13 | AC_PROG_LIBTOOL |
|---|
| 14 | LIBS="-lm" |
|---|
| 15 | AC_PROG_SED |
|---|
| 16 | AC_C_BIGENDIAN( [LITTLE_ENDIAN=], [LITTLE_ENDIAN=-DLITTLE_ENDIAN=BYTE_ORDER] ) |
|---|
| 17 | AC_SUBST(LITTLE_ENDIAN) |
|---|
| 18 | FATHOM_COMPILER_FLAGS |
|---|
| 19 | |
|---|
| 20 | ################################################################################ |
|---|
| 21 | # Fortran Stuff for ITAPS C bindings |
|---|
| 22 | ################################################################################ |
|---|
| 23 | if test "x" != "x$FC"; then |
|---|
| 24 | AC_FC_WRAPPERS |
|---|
| 25 | fi |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | ################################################################################ |
|---|
| 30 | # Extract libtool config |
|---|
| 31 | ################################################################################ |
|---|
| 32 | ITAPS_LIBTOOL_VAR( [CXX], [compiler_lib_search_path], [CGM_CXX_LINKFLAGS]) |
|---|
| 33 | ITAPS_LIBTOOL_VAR( [CXX], [postdeps], [CGM_CXX_LIBS]) |
|---|
| 34 | AC_SUBST(CGM_CXX_LINKFLAGS) |
|---|
| 35 | AC_SUBST(CGM_CXX_LIBS) |
|---|
| 36 | |
|---|
| 37 | |
|---|
| 38 | ################################################################################ |
|---|
| 39 | # MPI OPTIONS |
|---|
| 40 | ################################################################################ |
|---|
| 41 | |
|---|
| 42 | AM_CONDITIONAL(build_parallel, [test "x$WITH_MPI" != "xno"]) |
|---|
| 43 | FATHOM_CHECK_MPI |
|---|
| 44 | FATHOM_CONFIG_MPI_EXEC |
|---|
| 45 | if test "x$WITH_MPI" != "xno"; then |
|---|
| 46 | CXXFLAGS="$CXXFLAGS -DUSE_MPI" |
|---|
| 47 | CGM_PARALLEL_INCLUDE='-I${CGM_DIR}/geom/parallel' |
|---|
| 48 | CGM_PARALLEL_LIB='-L${CGM_DIR}/geom/parallel -lcubit_parallel' |
|---|
| 49 | CGM_PARALLEL_LIB_FILE='${CGM_LIBDIR}/libcubit_parallel.la' |
|---|
| 50 | fi |
|---|
| 51 | AM_CONDITIONAL(USE_MPI, [test "xno" != "x$WITH_MPI"]) |
|---|
| 52 | AC_SUBST(CGM_PARALLEL_INCLUDE) |
|---|
| 53 | AC_SUBST(CGM_PARALLEL_LIB) |
|---|
| 54 | AC_SUBST(CGM_PARALLEL_LIB_FILE) |
|---|
| 55 | # Used to generate CGMmpi.h |
|---|
| 56 | if test "xyes" = "x$MPI_CXX_HELP_NEEDED"; then |
|---|
| 57 | AC_DEFINE( [CGM_MPI_CXX_CONFLICT], [1], |
|---|
| 58 | [MPICH_IGNORE_CXX_SEEK is not sufficient to avoid conflicts] ) |
|---|
| 59 | AC_DEFINE_UNQUOTED([CGM_SEEK_SET],[$SEEK_SET],["Value of C SEEK_SET"]) |
|---|
| 60 | AC_DEFINE_UNQUOTED([CGM_SEEK_CUR],[$SEEK_CUR],["Value of C SEEK_CUR"]) |
|---|
| 61 | AC_DEFINE_UNQUOTED([CGM_SEEK_END],[$SEEK_END],["Value of C SEEK_END"]) |
|---|
| 62 | fi |
|---|
| 63 | |
|---|
| 64 | ################################################################################ |
|---|
| 65 | # CGM-specific Checks |
|---|
| 66 | ################################################################################ |
|---|
| 67 | |
|---|
| 68 | FATHOM_CANT_USE_STD |
|---|
| 69 | FATHOM_TEMPLATE_DEFS_INCLUDED |
|---|
| 70 | AC_SUBST(CANT_USE_STD) |
|---|
| 71 | AC_SUBST(CANT_USE_STD_IO) |
|---|
| 72 | AC_SUBST(TEMPLATE_DEFS_INCLUDED) |
|---|
| 73 | AM_CONDITIONAL(INCLUDE_TEMPLATE_DEFS, test x$TEMPLATE_DEFS_INCLUDED != x) |
|---|
| 74 | |
|---|
| 75 | ################################################################################ |
|---|
| 76 | # Use Cubit shared libraries |
|---|
| 77 | ################################################################################ |
|---|
| 78 | CUBIT_FILE=no |
|---|
| 79 | CUBIT_BIN_DIR=no |
|---|
| 80 | HAVE_ACIS_DEF= |
|---|
| 81 | |
|---|
| 82 | AC_ARG_WITH( cubit, |
|---|
| 83 | AC_HELP_STRING([--with-cubit=<dir>],[Use CGM from CUBIT shared library]), |
|---|
| 84 | [CUBIT_DIR="$withval" |
|---|
| 85 | DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-cubit=\"${withval}\""], |
|---|
| 86 | [CUBIT_DIR=no]) |
|---|
| 87 | AC_ARG_WITH( CUBIT, |
|---|
| 88 | AC_HELP_STRING([--with-CUBIT=<dir>],[DEPRECATED. Use --with-cubit (small case)]), |
|---|
| 89 | [CUBIT_DIR="$withval" |
|---|
| 90 | DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-cubit=\"${withval}\""]) |
|---|
| 91 | if test "x$CUBIT_DIR" == "xyes"; then |
|---|
| 92 | AC_MSG_ERROR([Option --with-CUBIT without specifying Cubit directory.]) |
|---|
| 93 | elif test "x$CUBIT_DIR" != "xno"; then |
|---|
| 94 | if ! test -d "$CUBIT_DIR"; then |
|---|
| 95 | AC_MSG_ERROR([$CUBIT_DIR: not a directory.]) |
|---|
| 96 | fi |
|---|
| 97 | CUBIT_LDFLAGS= |
|---|
| 98 | CUBIT_LTFLAGS= |
|---|
| 99 | CUBIT_LIBS=no |
|---|
| 100 | if test -d "$CUBIT_DIR/bin"; then |
|---|
| 101 | CUBIT_BIN_DIR="$CUBIT_DIR/bin" |
|---|
| 102 | elif test -d "$CUBIT_DIR/lib"; then |
|---|
| 103 | CUBIT_BIN_DIR="$CUBIT_DIR/lib" |
|---|
| 104 | elif test -d "$CUBIT_DIR/libs"; then |
|---|
| 105 | CUBIT_BIN_DIR="$CUBIT_DIR/libs" |
|---|
| 106 | else |
|---|
| 107 | CUBIT_BIN_DIR="$CUBIT_DIR" |
|---|
| 108 | fi |
|---|
| 109 | CUBIT_LDFLAGS="-L$CUBIT_BIN_DIR" |
|---|
| 110 | CUBIT_LTFLAGS="-R$CUBIT_BIN_DIR" |
|---|
| 111 | |
|---|
| 112 | AC_LANG_PUSH([C++]) |
|---|
| 113 | old_LIBS="$LIBS" |
|---|
| 114 | old_LDFLAGS="$LDFLAGS" |
|---|
| 115 | LDFLAGS="$LDFLAGS -L$CUBIT_BIN_DIR" |
|---|
| 116 | old_SHLIB_PATH="$SH_LIBPATH" |
|---|
| 117 | old_PATH="$PATH" # windows! |
|---|
| 118 | LD_LIBRARY_PATH="${CUBIT_BIN_DIR}:$LD_LIBRARY_PATH" |
|---|
| 119 | SHLIB_PATH="${CUBIT_BIN_DIR}:$SHLIB_PATH" |
|---|
| 120 | PATH="${CUBIT_BIN_DIR}:$PATH" |
|---|
| 121 | export LD_LIBRARY_PATH |
|---|
| 122 | export SHLIB_PATH |
|---|
| 123 | export PATH |
|---|
| 124 | pattern=["${CUBIT_BIN_DIR}/*cubiti[0-9][0-9].*"] |
|---|
| 125 | for file in $pattern; do |
|---|
| 126 | AC_MSG_CHECKING([for AcisQueryEngine::instance_ in $file]) |
|---|
| 127 | num=[`expr X"$file" : X".*cubiti\([0-9][0-9]\)\..*"`] |
|---|
| 128 | LIBS="$old_LIBS -lcubiti$num" |
|---|
| 129 | AC_LINK_IFELSE([AC_LANG_PROGRAM( |
|---|
| 130 | [class AcisQueryEngine { public: static AcisQueryEngine* instance_; };], |
|---|
| 131 | [AcisQueryEngine::instance_ = 0;])], |
|---|
| 132 | [CUBIT_LIBS="-lcubiti$num" |
|---|
| 133 | CUBIT_FILE=`expr x"$file" : x"$CUBIT_BIN_DIR/\(.*\)"` |
|---|
| 134 | CUBIT_FILE="${CUBIT_BIN_DIR}/$CUBIT_FILE" |
|---|
| 135 | AC_MSG_RESULT(yes) |
|---|
| 136 | break], |
|---|
| 137 | [AC_MSG_RESULT(no)]) |
|---|
| 138 | done |
|---|
| 139 | LIBS="$old_LIBS" |
|---|
| 140 | LDFLAGS="$old_LDFLAGS" |
|---|
| 141 | LD_LIBRARY_PATH="$old_LD_LIBRARY_PATH" |
|---|
| 142 | SHLIB_PATH="$old_SHLIB_PATH" |
|---|
| 143 | PATH="$old_PATH" |
|---|
| 144 | export LD_LIBRARY_PATH |
|---|
| 145 | export SHLIB_PATH |
|---|
| 146 | export PATH |
|---|
| 147 | AC_LANG_POP([C++]) |
|---|
| 148 | |
|---|
| 149 | if test "x$CUBIT_LIBS" = "xno"; then |
|---|
| 150 | AC_MSG_ERROR("Cubit library not found in $CUBIT_BIN_DIR") |
|---|
| 151 | fi |
|---|
| 152 | CGM_EXT_LIBS="$CGM_EXT_LIBS $CUBIT_LIBS" |
|---|
| 153 | CGM_EXT_LDFLAGS="$CGM_EXT_LDFLAGS $CUBIT_LDFLAGS" |
|---|
| 154 | CGM_EXT_LTFLAGS="$CGM_EXT_LTFLAGS $CUBIT_LTFLAGS" |
|---|
| 155 | CUBIT_CGM="-DCUBIT_CGM" |
|---|
| 156 | dnl AC_DEFINE( HAVE_ACIS, "Have CGM ACIS Implementation" ) |
|---|
| 157 | HAVE_ACIS_DEF=-DHAVE_ACIS |
|---|
| 158 | fi |
|---|
| 159 | |
|---|
| 160 | AC_SUBST(CUBIT_BIN_DIR) |
|---|
| 161 | AC_SUBST(CUBIT_LDFLAGS) |
|---|
| 162 | AC_SUBST(CUBIT_LTFLAGS) |
|---|
| 163 | AC_SUBST(CUBIT_LIBS) |
|---|
| 164 | AC_SUBST(CUBIT_FILE) |
|---|
| 165 | AC_SUBST(CUBIT_CGM) |
|---|
| 166 | |
|---|
| 167 | AM_CONDITIONAL(BUILD_CGM,[test x"$CUBIT_DIR" == x"no"]) |
|---|
| 168 | AM_CONDITIONAL(WITH_CUBIT,[test x"$CUBIT_DIR" != x"no"]) |
|---|
| 169 | |
|---|
| 170 | ################################################################################ |
|---|
| 171 | # ACIS OPTIONS |
|---|
| 172 | ################################################################################ |
|---|
| 173 | ACIS_BASE_LIBS='-lSpaAVis -lSpaAWarp -lSpaASurf -lSpaALops -lSpaABlend -lSpaACIS -lSpaBase' |
|---|
| 174 | ACIS_STEP_LIBS='-lacisstep -lxstep' |
|---|
| 175 | ACIS_IGES_LIBS='-lacisiges -lxiges' |
|---|
| 176 | |
|---|
| 177 | AC_ARG_WITH( acis, |
|---|
| 178 | AC_HELP_STRING([--with-acis=<dir>],[Build with ACIS support, specify directory where ACIS is installed.]), |
|---|
| 179 | [ACIS_DIR=$withval |
|---|
| 180 | DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-acis=\"${withval}\""], |
|---|
| 181 | [ACIS_DIR=no] ) |
|---|
| 182 | AC_ARG_WITH( ACIS, |
|---|
| 183 | AC_HELP_STRING([--with-ACIS],[DEPRECATED. Use --wtih-acis (small case)]), |
|---|
| 184 | [ACIS_DIR=$withval |
|---|
| 185 | DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-acis=\"${withval}\""] ) |
|---|
| 186 | AC_ARG_WITH( acis-system, AC_HELP_STRING([--with-acis-system=SYS], |
|---|
| 187 | [Specify ACIS system name (e.g. linux_so), default is to autodetect.]), |
|---|
| 188 | [ACIS_SYSTEM=$withval],[ACIS_SYSTEM=] ) |
|---|
| 189 | AC_ARG_WITH( acis-version, AC_HELP_STRING([--with-acis-version=INT], |
|---|
| 190 | [Specify ACIS version as an integer value (100*major+10*minor+point), default is to autodetect.]), |
|---|
| 191 | [if ! test "$withval" -gt "600"; then |
|---|
| 192 | AC_MSG_ERROR("ACIS-version must be an integer greater than 600.") |
|---|
| 193 | fi |
|---|
| 194 | ACIS_VERSION=$withval], |
|---|
| 195 | [ACIS_VERSION=]) |
|---|
| 196 | if test "x$ACIS_DIR" == "x"; then |
|---|
| 197 | ACIS_DIR=no |
|---|
| 198 | fi |
|---|
| 199 | if test "x$ACIS_DIR" == "xno"; then |
|---|
| 200 | ACIS_LIB_DIR= |
|---|
| 201 | ACIS_LINK_FLAGS= |
|---|
| 202 | fi |
|---|
| 203 | if test "x$ACIS_DIR" != "xno"; then |
|---|
| 204 | if test "x$CUBIT_DIR" != "xno"; then |
|---|
| 205 | AC_MSG_ERROR("Conflicting options: Cannot specifiy both --with-ACIS and --with-CUBIT") |
|---|
| 206 | fi |
|---|
| 207 | |
|---|
| 208 | AC_CHECK_FILE( [${srcdir}/geom/ACIS/AcisQueryEngine.hpp], [], |
|---|
| 209 | [AC_MSG_ERROR([ACIS source not present. Checkout ACIS_SRC and move to ACIS])] ) |
|---|
| 210 | |
|---|
| 211 | if test "$ACIS_DIR" == "yes"; then ACIS_DIR=.; fi |
|---|
| 212 | FATHOM_ACIS_ENV |
|---|
| 213 | |
|---|
| 214 | FATHOM_ACIS_TRANSLATOR |
|---|
| 215 | if test x$ACIS_STEP_TRANSLATOR != x; then |
|---|
| 216 | ACIS_LIBS="$ACIS_LIBS $ACIS_STEP_LIBS" |
|---|
| 217 | ACIS_XLIBS="$ACIS_XLATE_LIBS" |
|---|
| 218 | fi |
|---|
| 219 | if test x$ACIS_IGES_TRANSLATOR != x; then |
|---|
| 220 | ACIS_LIBS="$ACIS_LIBS $ACIS_IGES_LIBS" |
|---|
| 221 | ACIS_XLIBS="$ACIS_XLATE_LIBS" |
|---|
| 222 | fi |
|---|
| 223 | CGM_ACIS_LIBS='-lcubit_ACIS' |
|---|
| 224 | ACIS_LIBS="$ACIS_LIBS $ACIS_XLIBS $ACIS_BASE_LIBS" |
|---|
| 225 | ACIS_LINK_FLAGS="-L$ACIS_LIB_DIR" |
|---|
| 226 | ACIS_HEALER="-DACIS_HEALER" |
|---|
| 227 | ACIS_INCLUDES="-I$ACIS_DIR/include" |
|---|
| 228 | ACIS_LTFLAGS="-R$ACIS_LIB_DIR" |
|---|
| 229 | CGM_EXT_LIBS="$CGM_EXT_LIBS $ACIS_LIBS" |
|---|
| 230 | CGM_EXT_LDFLAGS="$CGM_EXT_LDFLAGS $ACIS_LINK_FLAGS" |
|---|
| 231 | CGM_EXT_INCLUDE="$CGM_EXT_INCLUDE $ACIS_INCLUDES" |
|---|
| 232 | CGM_EXT_LTFLAGS="$CGM_EXT_LTFLAGS $ACIS_LTFLAGS" |
|---|
| 233 | if test "x$GXX" = "xyes"; then |
|---|
| 234 | CPPFLAGS="$CPPFLAGS -isystem $ACIS_DIR/include" |
|---|
| 235 | fi |
|---|
| 236 | ACIS_DEFS='$(ACIS_STEP_TRANSLATOR) $(ACIS_IGES_TRANSLATOR) -DCUBIT_ACIS_VERSION=$(ACIS_VERSION) -DACIS_VERSION=$(ACIS_VERSION) -D$(ACIS_PLATFORM) -DACIS_LOCAL_OPS' |
|---|
| 237 | dnl AC_DEFINE( HAVE_ACIS ) |
|---|
| 238 | HAVE_ACIS_DEF=-DHAVE_ACIS |
|---|
| 239 | fi |
|---|
| 240 | |
|---|
| 241 | # ACIS (at least up to version 16) requires new.h. |
|---|
| 242 | # Newer C++ compilers may not provide this backwards-compatibility |
|---|
| 243 | # file. Check if it is present, and if not, use our own. |
|---|
| 244 | ACIS_NEW_COMPAT_INC='-I${top_srcdir}/compat/new' |
|---|
| 245 | if test "x$ACIS_DIR" != "xno"; then |
|---|
| 246 | AC_LANG_PUSH(C++) |
|---|
| 247 | AC_CHECK_HEADER([new.h],[],[ACIS_INCLUDES="$ACIS_INCLUDES $ACIS_NEW_COMPAT_INC"]) |
|---|
| 248 | AC_LANG_POP(C++) |
|---|
| 249 | fi |
|---|
| 250 | |
|---|
| 251 | AC_SUBST(ACIS_DEFS) |
|---|
| 252 | AC_SUBST(ACIS_DIR) |
|---|
| 253 | AC_SUBST(ACIS_LINK_FLAGS) |
|---|
| 254 | AC_SUBST(ACIS_LIB_DIR) |
|---|
| 255 | AC_SUBST(ACIS_INCLUDES) |
|---|
| 256 | AC_SUBST(ACIS_LIBS) |
|---|
| 257 | AC_SUBST(CGM_ACIS_LIBS) |
|---|
| 258 | AC_SUBST(ACIS_HEALER) |
|---|
| 259 | AC_SUBST(ACIS_VERSION) |
|---|
| 260 | AC_SUBST(ACIS_PLATFORM) |
|---|
| 261 | AC_SUBST(ACIS_STEP_TRANSLATOR) |
|---|
| 262 | AC_SUBST(ACIS_IGES_TRANSLATOR) |
|---|
| 263 | AC_SUBST(HAVE_ACIS_DEF) |
|---|
| 264 | AM_CONDITIONAL(build_ACIS, test x$ACIS_DIR != xno) |
|---|
| 265 | |
|---|
| 266 | ################################################################################ |
|---|
| 267 | # iGeom Babel |
|---|
| 268 | ################################################################################ |
|---|
| 269 | AC_ARG_WITH(babel, |
|---|
| 270 | [AC_HELP_STRING([--with-babel=DIR], [Specify directory containing babel])], |
|---|
| 271 | [BABEL_DIR=$withval |
|---|
| 272 | DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-babel=\"${withval}\"" |
|---|
| 273 | ], [BABEL_DIR=no]) |
|---|
| 274 | case "x$BABEL_DIR" in |
|---|
| 275 | xno) |
|---|
| 276 | BABEL_DIR= |
|---|
| 277 | USE_BABEL=no |
|---|
| 278 | ;; |
|---|
| 279 | xyes|x) |
|---|
| 280 | BABEL_DIR=/usr/local |
|---|
| 281 | AC_CHECK_FILE([${BABEL_DIR}/bin/babel], [USE_BABEL=yes], [USE_BABEL=no]) |
|---|
| 282 | ;; |
|---|
| 283 | *) |
|---|
| 284 | AC_CHECK_FILE([${BABEL_DIR}/bin/babel], [USE_BABEL=yes], [USE_BABEL=no]) |
|---|
| 285 | ;; |
|---|
| 286 | esac |
|---|
| 287 | AC_SUBST(BABEL_DIR) |
|---|
| 288 | AC_SUBST(USE_BABEL) |
|---|
| 289 | AM_CONDITIONAL(USE_BABEL, [test "xno" != "x$USE_BABEL"]) |
|---|
| 290 | |
|---|
| 291 | |
|---|
| 292 | ################################################################################ |
|---|
| 293 | # OCC Options |
|---|
| 294 | ################################################################################ |
|---|
| 295 | # Add --with-occ option to configure script |
|---|
| 296 | |
|---|
| 297 | AC_ARG_WITH( occ, |
|---|
| 298 | [AC_HELP_STRING([--with-occ=<dir>],[OpenCascade shared library directory])], |
|---|
| 299 | [occ_DIR="$withval" |
|---|
| 300 | DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS --with-occ=\"${withval}\""], |
|---|
| 301 | [occ_DIR=no] ) |
|---|
| 302 | |
|---|
| 303 | # if user specified option (other than --without-occ) |
|---|
| 304 | CUBIT_OCC_LIB= |
|---|
| 305 | HAVE_OCC_DEF= |
|---|
| 306 | if test "x$occ_DIR" != "xno"; then |
|---|
| 307 | 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 -lTKLCAF -lTKBinL" |
|---|
| 308 | CUBIT_OCC_LIB="-lcubit_OCC" |
|---|
| 309 | |
|---|
| 310 | # Set OCC_INC_FLAG and OCC_LIB_FLAG based on --with-occ option |
|---|
| 311 | if test "x$occ_DIR" = "x"; then |
|---|
| 312 | OCC_INC_FLAG= |
|---|
| 313 | OCC_LIB_DIR= |
|---|
| 314 | OCC_LIB_FLAG= |
|---|
| 315 | else |
|---|
| 316 | AC_CACHE_CHECK( [for 'include' subdir of $occ_DIR], |
|---|
| 317 | [ac_cv_occ_include_dir], |
|---|
| 318 | [ac_cv_occ_include_dir=NONE |
|---|
| 319 | for subdir in inc ros/inc include; do |
|---|
| 320 | if test -f "${occ_DIR}/${subdir}/Standard_Version.hxx"; then |
|---|
| 321 | ac_cv_occ_include_dir="$subdir" |
|---|
| 322 | break |
|---|
| 323 | elif test -d "${occ_DIR}/${subdir}"; then |
|---|
| 324 | ac_cv_occ_include_dir="$subdir"; |
|---|
| 325 | fi |
|---|
| 326 | done] ) |
|---|
| 327 | if test "xNONE" = "x$ac_cv_occ_include_dir"; then |
|---|
| 328 | AC_MSG_ERROR([Count not find include dir in: $occ_DIR]) |
|---|
| 329 | else |
|---|
| 330 | OCC_INC_FLAG="-I${occ_DIR}/$ac_cv_occ_include_dir" |
|---|
| 331 | fi |
|---|
| 332 | |
|---|
| 333 | AC_CACHE_CHECK( [for 'lib' subdir of $occ_DIR], |
|---|
| 334 | [ac_cv_occ_lib_dir], |
|---|
| 335 | [ac_cv_occ_lib_dir=NONE |
|---|
| 336 | uname=`uname` |
|---|
| 337 | for subdir in lib ros/lib ros/${uname}/lib ros/$uname ; do |
|---|
| 338 | if test -d "${occ_DIR}/${subdir}"; then |
|---|
| 339 | ac_cv_occ_lib_dir="$subdir" |
|---|
| 340 | for file in ${occ_DIR}/${subdir}/libTKernel.* ; do |
|---|
| 341 | if test -f $file; then |
|---|
| 342 | break 2 |
|---|
| 343 | fi |
|---|
| 344 | done |
|---|
| 345 | fi |
|---|
| 346 | done] ) |
|---|
| 347 | if test "xNONE" = "x$ac_cv_occ_lib_dir"; then |
|---|
| 348 | AC_MSG_ERROR([Count not find lib dir in: $occ_DIR]) |
|---|
| 349 | else |
|---|
| 350 | OCC_LIB_DIR="$occ_DIR/$ac_cv_occ_lib_dir" |
|---|
| 351 | OCC_LIB_FLAG="-L$OCC_LIB_DIR" |
|---|
| 352 | fi |
|---|
| 353 | fi |
|---|
| 354 | |
|---|
| 355 | # Check of OCC is present and working |
|---|
| 356 | |
|---|
| 357 | # Save old value of these variables and update working ones |
|---|
| 358 | old_CPPFLAGS="$CPPFLAGS" |
|---|
| 359 | old_LDFLAGS="$LDFLAGS" |
|---|
| 360 | CPPFLAGS="$CPPFLAGS ${OCC_INC_FLAG}" |
|---|
| 361 | LDFLAGS="$LDFLAGS -L$OCC_LIB_DIR" |
|---|
| 362 | |
|---|
| 363 | # Check if 64-bit |
|---|
| 364 | AC_MSG_CHECKING([if platform is 64-bit (-D_OCC64)]) |
|---|
| 365 | AC_TRY_COMPILE([],[int array[6-(int)sizeof(void*)];],[AC_MSG_RESULT(no)], |
|---|
| 366 | [AC_MSG_RESULT(yes); OCC_INC_FLAG="$OCC_INC_FLAG -D_OCC64"]) |
|---|
| 367 | |
|---|
| 368 | # OCC requires some defines |
|---|
| 369 | AC_LANG_PUSH(C++) |
|---|
| 370 | AC_CHECK_HEADER([iostream],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_IOSTREAM"]) |
|---|
| 371 | AC_CHECK_HEADER([iostream.h],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_IOSTREAM_H"]) |
|---|
| 372 | AC_CHECK_HEADER([iomanip],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_IOMANIP"]) |
|---|
| 373 | AC_CHECK_HEADER([iomanip.h],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_IOMANIP_H"]) |
|---|
| 374 | AC_CHECK_HEADER([fstream],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_FSTREAM"]) |
|---|
| 375 | AC_CHECK_HEADER([fstream.h],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_FSTREAM_H"]) |
|---|
| 376 | AC_CHECK_HEADER([limits.h],[OCC_INC_FLAG="$OCC_INC_FLAG -DHAVE_LIMITS_H"]) |
|---|
| 377 | |
|---|
| 378 | # Check for OCC headers Stadard_Version.hxx |
|---|
| 379 | AC_CHECK_HEADER( [Standard_Version.hxx], [], |
|---|
| 380 | [AC_MSG_ERROR([OpenCascade config error:Standard_Version.hxx not found])] ) |
|---|
| 381 | |
|---|
| 382 | # Check if libTKernel.so contains function 'create_mailbox' |
|---|
| 383 | # OCC 6.3 has build error where libTKernel.so requires libdl.so, |
|---|
| 384 | # but does not list that in the shared library dependencies. |
|---|
| 385 | # Try to work around this bug by detecting the need for -ldl. |
|---|
| 386 | AC_CHECK_LIB( [TKernel], [create_mailbox],, |
|---|
| 387 | [unset ac_cv_lib_TKernel_create_mailbox |
|---|
| 388 | AC_CHECK_LIB( [TKernel], [create_mailbox], |
|---|
| 389 | [OCC_LIBS="$OCC_LIBS -ldl"], |
|---|
| 390 | [AC_MSG_ERROR([OpenCascade config error: libTKernel not found ])], |
|---|
| 391 | [-ldl] ) |
|---|
| 392 | ] ) |
|---|
| 393 | AC_LANG_POP(C++) |
|---|
| 394 | |
|---|
| 395 | # Restore original values of variables |
|---|
| 396 | CPPFLAGS="$old_CPPFLAGS" |
|---|
| 397 | LDFLAGS="$old_LDFLAGS" |
|---|
| 398 | HAVE_OCC_DEF="-DHAVE_OCC" |
|---|
| 399 | |
|---|
| 400 | # Append to CGM global values |
|---|
| 401 | CGM_EXT_LIBS="$CGM_EXT_LIBS $OCC_LIBS" |
|---|
| 402 | CGM_EXT_LDFLAGS="$CGM_EXT_LDFLAGS $OCC_LIB_FLAG" |
|---|
| 403 | CGM_EXT_INCLUDE="$CGM_EXT_INCLUDE $OCC_INC_FLAG" |
|---|
| 404 | # NOTE: No CGM_EXT_LTFLAGS because OCC libs are .la files (not needed) |
|---|
| 405 | fi |
|---|
| 406 | |
|---|
| 407 | # Export these variables as variables in Makefiles |
|---|
| 408 | AC_SUBST(OCC_INC_FLAG) |
|---|
| 409 | AC_SUBST(OCC_LIB_DIR) |
|---|
| 410 | AC_SUBST(OCC_LIB_FLAG) |
|---|
| 411 | AC_SUBST(OCC_LIBS) |
|---|
| 412 | AC_SUBST(CUBIT_OCC_LIB) |
|---|
| 413 | AC_SUBST(HAVE_OCC_DEF) |
|---|
| 414 | |
|---|
| 415 | ################################################################################ |
|---|
| 416 | # Define variables for linking |
|---|
| 417 | ################################################################################ |
|---|
| 418 | AC_SUBST(CGM_EXT_LIBS) |
|---|
| 419 | AC_SUBST(CGM_EXT_LDFLAGS) |
|---|
| 420 | AC_SUBST(CGM_EXT_LTFLAGS) |
|---|
| 421 | AC_SUBST(CGM_EXT_INCLUDE) |
|---|
| 422 | |
|---|
| 423 | # Allow "if build_OCC" in Makefile.am |
|---|
| 424 | AM_CONDITIONAL( build_OCC, [test "x$occ_DIR" != "xno"] ) |
|---|
| 425 | |
|---|
| 426 | |
|---|
| 427 | ################################################################################ |
|---|
| 428 | # Output Files |
|---|
| 429 | ################################################################################ |
|---|
| 430 | AC_SUBST(AM_CPPFLAGS) |
|---|
| 431 | AC_SUBST(DISTCHECK_CONFIGURE_FLAGS) |
|---|
| 432 | AC_MSG_RESULT([CXXFLAGS = $CXXFLAGS]) |
|---|
| 433 | dnl AC_OUTPUT_COMMANDS( [if test -f util/CubitUtilConfigure.h; then true; else echo "#define CUBIT_UTIL_EXPORT" > util/CubitUtilConfigure.h; fi], |
|---|
| 434 | dnl [if test -f geom/CubitGeomConfigure.h; then true; else echo "#define CUBIT_GEOM_EXPORT" > geom/CubitGeomConfigure.h; fi] ) |
|---|
| 435 | AC_CONFIG_HEADERS(config.h) |
|---|
| 436 | AC_CONFIG_HEADERS([geom/parallel/CGMmpi_config.h]) |
|---|
| 437 | AC_CONFIG_HEADERS(itaps/iBase_FCDefs.h) |
|---|
| 438 | AC_CONFIG_FILES(Makefile |
|---|
| 439 | util/Makefile |
|---|
| 440 | geom/Makefile |
|---|
| 441 | geom/ACIS/Makefile |
|---|
| 442 | geom/Cholla/Makefile |
|---|
| 443 | geom/facet/Makefile |
|---|
| 444 | geom/facetbool/Makefile |
|---|
| 445 | geom/OCC/Makefile |
|---|
| 446 | geom/parallel/Makefile |
|---|
| 447 | geom/virtual/Makefile |
|---|
| 448 | init/Makefile |
|---|
| 449 | compat/Makefile |
|---|
| 450 | cgm.make |
|---|
| 451 | itaps/Makefile |
|---|
| 452 | itaps/iGeom-Defs.inc |
|---|
| 453 | itaps/SIDL/Makefile |
|---|
| 454 | itaps/SIDL/common.make |
|---|
| 455 | itaps/SIDL/iGeom-SIDL-Defs.inc |
|---|
| 456 | test/Makefile |
|---|
| 457 | cgm_apps/Makefile |
|---|
| 458 | cgm_apps/examples/Makefile |
|---|
| 459 | cgm_apps/examples/driverc++/Makefile |
|---|
| 460 | cgm_apps/examples/facetdriver/Makefile |
|---|
| 461 | ) |
|---|
| 462 | # Generate iGeom_FCDefs.h from iBase_FCDefs.h |
|---|
| 463 | AC_CONFIG_COMMANDS([itaps/iGeom_FCDefs.h], |
|---|
| 464 | [sed -e "s/FC_FUNC/IGEOM_FC_FUNC/" itaps/iBase_FCDefs.h >itaps/iGeom_FCDefs.h]) |
|---|
| 465 | # Remove iGeom_protos.h if old format |
|---|
| 466 | AC_CONFIG_COMMANDS_POST([grep IGEOM_FC_FUNC itaps/iGeom_protos.h >/dev/null 2>&1 || rm -f itaps/iGeom_protos.h]) |
|---|
| 467 | AC_OUTPUT |
|---|
| 468 | |
|---|
| 469 | if test "x$CUBIT_DIR" != "xno" && test "x$CUBIT_DIR" != "x"; then |
|---|
| 470 | AC_MSG_WARN( |
|---|
| 471 | [Linking against Cubit-based CGM; you'll need to add Cubit's 'bin' directory |
|---|
| 472 | to your LD_LIBRARY_PATH before linking, or add -R (linux) or equivalent |
|---|
| 473 | (non-linux) to your link statement to link applications.]) |
|---|
| 474 | fi |
|---|