1############################################################################# 2# 3# MODULE: Grass Compilation 4# AUTHOR(S): Original author unknown - probably CERL 5# Eric G. Miller - egm2 jps.net 6# Justin Hickey - Thailand - jhickey hpcc.nectec.or.th 7# Markus Neteler - Germany/Italy - neteler itc.it 8# Nicklas Larsson (update to autoconfig 2.69) 9# PURPOSE: This configure runs all the tests to determine what components 10# are installed on the current system. It also defines certain 11# configuration variables for compilation and installation. 12# COPYRIGHT: (C) 2000-2021 by the GRASS Development Team 13# 14# This program is free software under the GNU General 15# Public License (>=v2). Read the file COPYING that 16# comes with GRASS for details. 17# 18# MANUAL: http://www.gnu.org/software/autoconf/manual/autoconf.html 19# http://savannah.gnu.org/projects/autoconf/ 20# Website for config.guess, config.sub: 21# wget http://git.savannah.gnu.org/cgit/config.git/plain/config.guess 22# wget http://git.savannah.gnu.org/cgit/config.git/plain/config.sub 23# Note: use autoconf-2.69 24############################################################################# 25 26define([AC_CACHE_LOAD], ) 27define([AC_CACHE_SAVE], ) 28define([AC_CACHE_VAL], [ 29$2 30]) 31 32AC_INIT 33AC_CONFIG_SRCDIR([configure.ac]) 34AC_PREREQ([2.69]) 35AC_CONFIG_HEADER(include/config.h) 36AC_CANONICAL_HOST 37AC_PROG_CC 38LOC_EXEEXT 39AC_SUBST(MINGW32) 40 41# Check for full floating-point support, including Infinity and NaN 42IEEEFLAG= 43LOC_CHECK_FP_INF_NAN([], 44[], 45[ ac_save_cflags=${CFLAGS} 46 CFLAGS=-mieee 47 LOC_CHECK_FP_INF_NAN([ with -mieee], 48 [IEEEFLAG="-mieee"], 49 [AC_MSG_WARN([*** Incomplete floating-point support.])], 50 [AC_MSG_ERROR([*** INTERNAL CONFIGURE ERROR])]) 51 CFLAGS=${ac_save_cflags}], 52[ LOC_CHECK_CC_MIEEE ]) 53CFLAGS="$CFLAGS $IEEEFLAG" 54 55# Set BINDIR 56 57if test -n "${bindir}"; then 58BINDIR="${bindir}" 59else 60BINDIR=/usr/local/bin 61fi 62AC_SUBST(BINDIR) 63 64# Set SRCDIR and DSTDIR 65 66AC_PATH_PROG(pwd, pwd, pwd) 67 68if test "$MINGW32" = yes ; then 69 winpwd="pwd -W" 70else 71 winpwd="$pwd" 72fi 73 74AC_MSG_CHECKING(for source directory) 75 76if test -z "$srcdir" ; then 77 SRCDIR=`$pwd` 78else 79 SRCDIR=`(cd "$srcdir" ; $pwd)` 80fi 81 82AC_MSG_RESULT("$SRCDIR") 83 84AC_MSG_CHECKING(for build directory) 85 86DSTDIR=`$pwd` 87WINDSTDIR=`$winpwd` 88 89AC_MSG_RESULT("$DSTDIR") 90 91AC_SUBST(SRCDIR) 92AC_SUBST(DSTDIR) 93 94# Set ARCH 95 96ARCH= 97if test -z "${host}"; then 98ARCH="unknown" 99else 100ARCH="${host}" 101fi 102 103AC_SUBST(ARCH) 104 105# Set GISBASE and GRASS_BIN 106 107GISBASE="${WINDSTDIR}/dist.${ARCH}" 108GRASS_BIN="${DSTDIR}/bin.${ARCH}" 109 110AC_SUBST(GISBASE) 111AC_SUBST(GRASS_BIN) 112 113# Set GRASS_VERSION_* 114 115GRASS_VERSION_FILE=include/VERSION 116GRASS_VERSION_MAJOR=`sed -n 1p "${GRASS_VERSION_FILE}"` 117GRASS_VERSION_MINOR=`sed -n 2p "${GRASS_VERSION_FILE}"` 118GRASS_VERSION_RELEASE=`sed -n 3p "${GRASS_VERSION_FILE}"` 119GRASS_VERSION_DATE=`sed -n 4p "${GRASS_VERSION_FILE}"` 120GRASS_VERSION_NUMBER=`echo ${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.${GRASS_VERSION_RELEASE}` 121NAME_VER=`echo ${GRASS_VERSION_NUMBER} | sed 's/\..*//'` 122changequote(,) 123LIB_VER=`echo ${GRASS_VERSION_NUMBER} | sed 's/^\([0-9.]*\).*$/\1/'` 124changequote([,]) 125 126GRASS_VERSION_GIT="exported" 127# get git short hash + date of last change in GRASS headers 128# (and anything else in include) 129GRASS_HEADERS_GIT_HASH=`date -u +%FT%T%z | sed 's/\(..\)$/:\1/'` 130GRASS_HEADERS_GIT_DATE=`date -u +%FT%T%z | sed 's/\(..\)$/:\1/'` 131AC_PATH_PROG(GIT, git, no) 132if test "$GIT" != "no" ; then 133 GRASS_VERSION_GIT=`$GIT rev-parse --short HEAD 2>/dev/null` 134 if test -z "$GRASS_VERSION_GIT"; then 135 GRASS_VERSION_GIT="exported" 136 fi 137 GRASS_HEADERS_GIT_HASH=`$GIT log -1 --pretty=format:"%h" -- "${SRCDIR}/include" 2>/dev/null` 138 if test -z "$GRASS_HEADERS_GIT_HASH"; then 139 GRASS_HEADERS_GIT_HASH=`date -u +%FT%T%z | sed 's/\(..\)$/:\1/'` 140 fi 141 GRASS_HEADERS_GIT_DATE=`date -d $($GIT log -1 --pretty=format:"%cI" -- "${SRCDIR}/include") -u +%FT%T%z | sed 's/\(..\)$/:\1/'` 2>/dev/null 142 if test -z "$GRASS_HEADERS_GIT_DATE"; then 143 GRASS_HEADERS_GIT_DATE=`date -u +%FT%T%z | sed 's/\(..\)$/:\1/'` 144 fi 145fi 146 147AC_SUBST(GRASS_VERSION_FILE) 148AC_SUBST(GRASS_VERSION_MAJOR) 149AC_SUBST(GRASS_VERSION_MINOR) 150AC_SUBST(GRASS_VERSION_RELEASE) 151AC_SUBST(GRASS_VERSION_NUMBER) 152AC_SUBST(GRASS_VERSION_DATE) 153AC_SUBST(GRASS_VERSION_GIT) 154AC_SUBST(GRASS_HEADERS_GIT_HASH) 155AC_SUBST(GRASS_HEADERS_GIT_DATE) 156AC_SUBST(NAME_VER) 157AC_SUBST(LIB_VER) 158 159# Check for MacOSX App 160 161AC_ARG_ENABLE(macosx-app, 162[ --enable-macosx-app create a MacOSX application],, 163[enable_macosx_app=no]) 164 165AC_MSG_CHECKING(for MacOSX App) 166case "$enable_macosx_app" in 167 yes) MACOSX_APP=1 ;; 168 no) MACOSX_APP= ;; 169 *) AC_MSG_ERROR([*** You must answer yes or no.]) ;; 170esac 171AC_MSG_RESULT("$enable_macosx_app") 172AC_SUBST(MACOSX_APP) 173 174# Check for MacOSX archs 175 176AC_MSG_CHECKING(for MacOSX architectures) 177 178MACOSX_ARCHS= 179 180if test -z "$with_macosx_archs" ; then 181 AC_MSG_RESULT(no) 182else 183 for a in $with_macosx_archs 184 do 185 # check if valid arch? 186 case "$a" in 187 i386|ppc|x86_64|ppc64) 188 MACOSX_ARCHS="$MACOSX_ARCHS -arch $a" 189 ;; 190 esac 191 done 192 AC_MSG_RESULT([$MACOSX_ARCHS]) 193 LDFLAGS="$LDFLAGS $MACOSX_ARCHS" 194 CFLAGS="$CFLAGS $MACOSX_ARCHS" 195 CXXFLAGS="$CXXFLAGS $MACOSX_ARCHS" 196fi 197 198AC_SUBST(MACOSX_ARCHS) 199 200# Done checking MacOSX archs 201 202# Check for MacOSX SDK 203 204AC_MSG_CHECKING(for MacOSX SDK) 205 206MACOSX_SDK= 207 208if test -z "$with_macosx_sdk" ; then 209 AC_MSG_RESULT(no) 210else 211 AC_CHECK_FILE($with_macosx_sdk/SDKSettings.plist, [ 212 MACOSX_SDK="-isysroot $with_macosx_sdk"],[ 213 AC_MSG_ERROR([*** specified SDK does not exist or is not a SDK])]) 214 LDFLAGS="$LDFLAGS $MACOSX_SDK" 215 CFLAGS="$CFLAGS $MACOSX_SDK" 216 CXXFLAGS="$CXXFLAGS $MACOSX_SDK" 217fi 218 219AC_SUBST(MACOSX_SDK) 220 221# Done checking MacOSX SDK 222 223# Set INST_DIR 224 225if test -n "$MACOSX_APP" ; then 226 INSTDIR='${prefix}'"/GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app/Contents/MacOS" 227else 228 INSTDIR='${prefix}'"/grass${GRASS_VERSION_MAJOR}${GRASS_VERSION_MINOR}" 229fi 230 231AC_SUBST(INSTDIR) 232 233# Get flags for building shared libraries 234 235SC_ENABLE_SHARED 236 237ac_save_ldflags="$LDFLAGS" 238SC_CONFIG_CFLAGS 239LDFLAGS="${ac_save_ldflags} $LDFLAGS" 240 241# Enable options 242 243AC_ARG_ENABLE(w11, 244[ --enable-w11 use W11 library for Windows X11 emulation],, 245[enable_w11=no]) 246 247# With options 248 249LOC_ARG_WITH(cxx, C++) 250#LOC_ARG_WITH(g77, GNU Fortran 77, no) 251 252AC_ARG_WITH(macosx-archs, 253[ --with-macosx-archs[=arch list] 254 compile multiple architectures on MacOSX, ie. 255 universal. Valid architectures are i386, ppc, 256 x86_64 and ppc64. (default: no [native])],, with_macosx_archs="no") 257AC_ARG_WITH(macosx-sdk, 258[ --with-macosx-sdk[=path/sdk] 259 compile with a system SDK on MacOSX. (default: no)],, with_macosx_sdk="no") 260LOC_ARG_WITH(tiff, TIFF) 261LOC_ARG_WITH(png, PNG) 262LOC_ARG_WITH(postgres, PostgreSQL, no) 263LOC_ARG_WITH(mysql, MySQL, no) 264LOC_ARG_WITH(sqlite, SQLite) 265LOC_ARG_WITH(opengl, OpenGL) 266LOC_ARG_WITH(odbc, ODBC, no) 267LOC_ARG_WITH(fftw, FFTW) 268LOC_ARG_WITH(blas, BLAS, no) 269LOC_ARG_WITH(lapack, LAPACK, no) 270LOC_ARG_WITH(cairo, Cairo) 271LOC_ARG_WITH(freetype, FreeType) 272LOC_ARG_WITH(nls, NLS, no) 273LOC_ARG_WITH(readline, Readline, no) 274LOC_ARG_WITH(opendwg, openDWG, no) 275LOC_ARG_WITH(regex, regex) 276LOC_ARG_WITH(pthread, POSIX threads, no) 277LOC_ARG_WITH(openmp, OpenMP, no) 278LOC_ARG_WITH(opencl, OpenCL, no) 279LOC_ARG_WITH(bzlib, BZIP2, no) 280LOC_ARG_WITH(zstd, Zstandard) 281 282AC_ARG_WITH(gdal, 283[ --with-gdal[=path/gdal-config] 284 enable GDAL/OGR support (gdal-config with path, 285 e.g. '--with-gdal=/usr/local/bin/gdal-config')]) 286 287AC_ARG_WITH(liblas, 288[ --with-liblas[=path/liblas-config] 289 enable libLAS support (liblas-config with path, 290 e.g. '--with-liblas=/usr/local/bin/liblas-config', 291 default: no)],, with_liblas="no") 292 293AC_ARG_WITH(pdal, 294[ --with-pdal[=path/pdal-config] 295 enable PDAL support (pdal-config with path, 296 e.g. '--with-pdal=/usr/local/bin/pdal-config', 297 default: no)],, with_pdal="no") 298 299AC_ARG_WITH(wxwidgets, 300[ --with-wxwidgets[=path/wx-config] 301 enable wxWidgets support (wx-config with path, 302 e.g. '--with-wxwidgets=/usr/local/bin/wx-config', 303 default: no)],, with_wxwidgets="no") 304 305AC_ARG_WITH(netcdf, 306[ --with-netcdf[=path/nc-config] 307 enable NetCDF support (nc-config with path, 308 e.g. '--with-nc=/usr/local/bin/nc-config', 309 default: no)],, with_netcdf="no") 310 311# With includes and libs options 312 313AC_ARG_WITH(geos, 314[ --with-geos[=path/geos-config] 315 enable GEOS support (geos-config with path, 316 e.g. '--with-geos=/usr/local/bin/geos-config', 317 default: no)],, with_geos="no") 318 319AC_ARG_WITH(includes, 320[ --with-includes=DIRS site include files are in DIRS]) 321 322AC_ARG_WITH(libs, 323[ --with-libs=DIRS site library files are in DIRS]) 324 325LOC_ARG_WITH_INC(zlib, zlib) 326LOC_ARG_WITH_LIB(zlib, zlib) 327 328LOC_ARG_WITH_INC(bzlib, BZIP2) 329LOC_ARG_WITH_LIB(bzlib, BZIP2) 330 331LOC_ARG_WITH_INC(zstd, ZSTD) 332LOC_ARG_WITH_LIB(zstd, ZSTD) 333 334LOC_ARG_WITH_INC(readline, Readline) 335LOC_ARG_WITH_LIB(readline, Readline) 336 337LOC_ARG_WITH_INC(tiff, TIFF) 338LOC_ARG_WITH_LIB(tiff, TIFF) 339 340LOC_ARG_WITH_INC(png, PNG) 341LOC_ARG_WITH_LIB(png, PNG) 342 343LOC_ARG_WITH_INC(postgres, PostgreSQL) 344LOC_ARG_WITH_LIB(postgres, PostgreSQL) 345 346LOC_ARG_WITH_INC(mysql, MySQL) 347LOC_ARG_WITH_LIB(mysql, MySQL) 348 349LOC_ARG_WITH_INC(sqlite, SQLite) 350LOC_ARG_WITH_LIB(sqlite, SQLite) 351 352LOC_ARG_WITH_INC(opengl, OpenGL) 353LOC_ARG_WITH_LIB(opengl, OpenGL) 354LOC_ARG_WITH_FRAMEWORK(opengl, OpenGL) 355 356LOC_ARG_WITH_INC(odbc, ODBC) 357LOC_ARG_WITH_LIB(odbc, ODBC) 358 359LOC_ARG_WITH_INC(fftw, FFTW) 360LOC_ARG_WITH_LIB(fftw, FFTW) 361 362LOC_ARG_WITH_INC(blas, BLAS) 363LOC_ARG_WITH_LIB(blas, BLAS) 364 365LOC_ARG_WITH_INC(lapack, LAPACK) 366LOC_ARG_WITH_LIB(lapack, LAPACK) 367 368LOC_ARG_WITH_INC(cairo, cairo) 369LOC_ARG_WITH_LIB(cairo, cairo) 370LOC_ARG_WITH_LDFLAGS(cairo, cairo) 371 372LOC_ARG_WITH_INC(freetype, FreeType) 373LOC_ARG_WITH_LIB(freetype, FreeType) 374 375LOC_ARG_WITH_INC(proj, External PROJ.4) 376LOC_ARG_WITH_LIB(proj, External PROJ.4) 377LOC_ARG_WITH_SHARE(proj, External PROJ.4) 378 379LOC_ARG_WITH_INC(opendwg, openDWG) 380LOC_ARG_WITH_LIB(opendwg, openDWG) 381 382LOC_ARG_WITH_INC(regex, regex) 383LOC_ARG_WITH_LIB(regex, regex) 384 385LOC_ARG_WITH_INC(pthread, POSIX threads) 386LOC_ARG_WITH_LIB(pthread, POSIX threads) 387 388LOC_ARG_WITH_INC(openmp, OpenMP) 389LOC_ARG_WITH_LIB(openmp, OpenMP) 390 391LOC_ARG_WITH_INC(opencl, OpenCL) 392LOC_ARG_WITH_LIB(opencl, OpenCL) 393#LOC_ARG_WITH_FRAMEWORK(opencl, OpenCL) 394 395# Put this early on so CPPFLAGS and LDFLAGS have any additional dirs 396 397# With includes option 398 399# Handle Fortran compiler choice 400#LOC_CHECK_USE(g77, GNU Fortran 77, USE_G77) 401# Done checking fortran 402 403AC_MSG_CHECKING(for additional include dirs) 404case "$with_includes" in 405y | ye | yes | n | no) 406 AC_MSG_ERROR([*** You must supply a directory to list --with-includes.]) 407 ;; 408esac 409AC_MSG_RESULT($with_includes) 410 411if test -n "$with_includes"; then 412 for dir in $with_includes; do 413 if test -d "$dir"; then 414 INCLUDE_DIRS="$INCLUDE_DIRS -I$dir" 415 else 416 AC_MSG_ERROR([*** Include directory $dir does not exist.]) 417 fi 418 done 419 CPPFLAGS="$CPPFLAGS $INCLUDE_DIRS" 420fi 421AC_SUBST(INCLUDE_DIRS) 422 423# With libs option 424 425AC_MSG_CHECKING(for additional library dirs) 426case "$with_libs" in 427y | ye | yes | n | no) 428 AC_MSG_ERROR([*** You must supply a directory list to --with-libs.]) 429 ;; 430esac 431AC_MSG_RESULT($with_libs) 432 433if test -n "$with_libs"; then 434 for dir in $with_libs; do 435 if test -d "$dir"; then 436 LIBRARY_DIRS="$LIBRARY_DIRS -L$dir" 437 else 438 AC_MSG_ERROR([*** Library directory $dir does not exist.]) 439 fi 440 done 441 LDFLAGS="$LDFLAGS $LIBRARY_DIRS" 442fi 443AC_SUBST(LIBRARY_DIRS) 444 445# Programs and standard headers, libraries, functions 446 447AC_PROG_INSTALL 448 449AC_PROG_LEX 450if test "$LEX" = "lex"; then 451 AC_PATH_PROG(LEXPATH, lex, no) 452 if test "$LEXPATH" = "no"; then 453 AC_MSG_ERROR([*** Unable to locate lex.]) 454 fi 455fi 456 457AC_PROG_YACC 458if test "$YACC" = "yacc"; then 459 AC_PATH_PROG(YACCPATH, yacc, no) 460 if test "$YACCPATH" = "no"; then 461 AC_MSG_ERROR([*** Unable to locate yacc.]) 462 fi 463fi 464 465AC_PROG_RANLIB 466AC_CHECK_PROGS(AR, ar) 467AC_CHECK_PROGS(ENV, env) 468AC_PATH_PROG(PERL, perl, no) 469AC_HEADER_STDC 470#AC_CHECK_HEADERS(curses.h limits.h termio.h termios.h unistd.h values.h) 471AC_CHECK_HEADERS(limits.h termio.h termios.h unistd.h values.h f2c.h g2c.h) 472AC_CHECK_HEADERS(sys/ioctl.h sys/mtio.h sys/resource.h sys/time.h) 473AC_CHECK_HEADERS(sys/timeb.h sys/types.h sys/utsname.h) 474AC_CHECK_HEADERS(libintl.h iconv.h) 475AC_CHECK_HEADERS(langinfo.h) 476AC_HEADER_TIME 477AC_TYPE_OFF_T 478AC_TYPE_UID_T 479 480AC_CANONICAL_HOST 481case $host_os in 482 *cygwin* ) CYGWIN=yes;; 483 * ) CYGWIN=no;; 484esac 485 486AC_CHECK_FUNCS(ftime gethostname gettimeofday lseek nice time uname) 487AC_CHECK_FUNCS(seteuid setpriority setreuid setruid) 488AC_CHECK_FUNCS(drand48) 489AC_CHECK_FUNCS(putenv setenv) 490AC_CHECK_FUNCS(nanosleep) 491if test "$cross_compiling" != "yes" ; then 492AC_FUNC_SETPGRP 493else 494CROSS_COMPILING=1 495AC_SUBST(CROSS_COMPILING) 496fi 497 498AC_MSG_CHECKING(for long long int) 499AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[long long int x;]])],[ 500AC_MSG_RESULT(yes) 501AC_DEFINE(HAVE_LONG_LONG_INT, 1, [define if "long long int" is available]) 502],[ 503AC_MSG_RESULT(no) 504]) 505 506AC_MSG_CHECKING(for int64_t) 507AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[int64_t x;]])],[ 508AC_MSG_RESULT(yes) 509AC_DEFINE(HAVE_INT64_T, 1, [define if "int64_t" is available]) 510],[ 511AC_MSG_RESULT(no) 512]) 513 514AC_MSG_CHECKING(for W11) 515case "$enable_w11" in 516 yes|no) AC_MSG_RESULT("$enable_w11") ;; 517 *) AC_MSG_ERROR([*** You must answer yes or no.]) ;; 518esac 519 520USE_X11= 521USE_W11= 522XLIB= 523XTLIB= 524 525if test "$enable_w11" = "yes" ; then 526 X_CFLAGS=-I${SRCDIR}/display/drivers/windows/libW11 527 X_LIBS='-L$(LIBDIR)' 528 AC_SUBST(X_CFLAGS) 529 AC_SUBST(X_LIBS) 530 531 USE_W11="1" 532 USE_X11="1" 533 XLIB=-lX11 534 535 CFLAGS="$CFLAGS -D__W98__" 536else 537 AC_PATH_XTRA 538 if test "$no_x" != "yes"; then 539 USE_X11="1" 540 XLIB=-lX11 541 XTLIB=-lXt 542 fi 543fi 544 545AC_SUBST(XLIB) 546AC_SUBST(XTLIB) 547AC_SUBST(USE_X11) 548 549# Note that some systems (FreeBSD for example) need an extra library for 550# cuserid 551ac_save_libs="$LIBS" 552LIBS="" 553AC_SEARCH_LIBS(cuserid,[compat]) 554DBMIEXTRALIB="$LIBS" 555LIBS="$ac_save_libs" 556AC_SUBST(DBMIEXTRALIB) 557 558AC_CHECK_FUNCS(asprintf) 559AC_SUBST(HAVE_ASPRINTF) 560 561# Test if mathlib needs -lm flag or is included with libc 562AC_CHECK_FUNC(atan, MATHLIB=, [ 563AC_CHECK_LIB(m, atan, MATHLIB=-lm, [ 564 AC_MSG_ERROR([*** Failed check for math library.]) 565])]) 566AC_SUBST(MATHLIB) 567 568AC_CHECK_FUNC(dlsym, DLLIB=, [ 569AC_CHECK_LIB(dl, dlsym, DLLIB=-ldl, [ 570 DLLIB= 571])]) 572AC_SUBST(DLLIB) 573 574AC_CHECK_FUNC(iconv, ICONVLIB=, [ 575AC_CHECK_LIB(iconv, iconv, ICONVLIB=-liconv, [ 576AC_CHECK_LIB(giconv, iconv, ICONVLIB=-lgiconv, [ 577AC_CHECK_FUNC(libiconv, ICONVLIB=, [ 578AC_CHECK_LIB(iconv, libiconv, ICONVLIB=-liconv, [ 579AC_CHECK_LIB(giconv, libiconv, ICONVLIB=-lgiconv, [ 580 AC_MSG_WARN([*** Unable to locate iconv() function.]) 581 ICONVLIB= 582])])])])])]) 583AC_SUBST(ICONVLIB) 584 585have_socket=1 586AC_CHECK_FUNC(socket, SOCKLIB=, [ 587AC_CHECK_LIB(socket, socket, SOCKLIB=-lsocket, [ 588 have_socket=0 589 AC_MSG_WARN([*** Unable to locate socket() function.]) 590])]) 591AC_SUBST(SOCKLIB) 592if test "$have_socket" = 1 ; then 593 HAVE_SOCKET=1 594 AC_DEFINE(HAVE_SOCKET, 1, [define if socket() exists]) 595else 596 HAVE_SOCKET= 597fi 598AC_SUBST(HAVE_SOCKET) 599 600 601# Mandatory zlib dependency 602 603ZLIBLIBPATH= 604ZLIBINCPATH= 605ZLIB= 606 607# With zlib includes directory 608 609LOC_CHECK_INC_PATH(zlib,zlib,ZLIBINCPATH) 610 611LOC_CHECK_INCLUDES(zlib.h,zlib,$ZLIBINCPATH) 612 613# With zlib library directory 614 615LOC_CHECK_LIB_PATH(zlib,zlib,ZLIBLIBPATH) 616 617LOC_CHECK_LIBS(z,deflate,zlib,$ZLIBLIBPATH,ZLIB,,,) 618 619# 620 621AC_SUBST(ZLIBINCPATH) 622AC_SUBST(ZLIBLIBPATH) 623AC_SUBST(ZLIB) 624 625# Done checking zlib 626 627# bzip2 support 628 629BZIP2LIBPATH= 630BZIP2INCPATH= 631BZIP2LIB= 632 633LOC_CHECK_USE(bzlib,bzlib,USE_BZIP2) 634 635if test -n "$USE_BZIP2"; then 636 637# With bzip2 includes directory 638 639LOC_CHECK_INC_PATH(bzlib,bzlib,BZIP2INCPATH) 640 641LOC_CHECK_INCLUDES(bzlib.h,bzlib,$BZIP2INCPATH) 642 643# With bzip2 library directory 644 645LOC_CHECK_LIB_PATH(bzlib,bzlib,BZIP2LIBPATH) 646 647LOC_CHECK_LIBS(bz2,BZ2_bzBuffToBuffCompress,bzlib,$BZIP2LIBPATH,BZIP2LIB,,,) 648 649# 650 651fi # $USE_BZIP2 652 653AC_SUBST(BZIP2INCPATH) 654AC_SUBST(BZIP2LIBPATH) 655AC_SUBST(BZIP2LIB) 656 657# Done checking bzip2 658 659# zstd support 660 661ZSTDLIBPATH= 662ZSTDINCPATH= 663ZSTDLIB= 664 665LOC_CHECK_USE(zstd,zstd,USE_ZSTD) 666 667if test -n "$USE_ZSTD"; then 668 669# With zstd includes directory 670 671LOC_CHECK_INC_PATH(zstd,zstd,ZSTDINCPATH) 672LOC_CHECK_INCLUDES(zstd.h,zstd,$ZSTDINCPATH) 673 674# With zstd library directory 675 676LOC_CHECK_LIB_PATH(zstd,zstd,ZSTDLIBPATH) 677 678LOC_CHECK_LIBS(zstd,ZSTD_compress,zstd,$ZSTDLIBPATH,ZSTDLIB,,,) 679 680# 681 682fi # $USE_ZSTD 683 684AC_SUBST(ZSTDINCPATH) 685AC_SUBST(ZSTDLIBPATH) 686AC_SUBST(ZSTDLIB) 687 688# Done checking zstd 689 690# Mandatory PROJ dependency 691 692PROJINC= 693PROJLIB= 694PROJSHARE= 695PROJ4API=0 696PROJMAJOR=4 697 698# With PROJ includes directory 699 700LOC_CHECK_INC_PATH(proj,External PROJ,PROJINC) 701 702# PROJ version check: if proj.h exists, it must be proj 5+ 703LOC_CHECK_INCLUDES(proj.h,External PROJ,$PROJINC,PROJ4API=1) 704 705if test $PROJ4API = 0 ; then 706 LOC_CHECK_VERSION_INT(proj.h,PROJ_VERSION_MAJOR,External PROJ major,proj_ver_major,$PROJINC,0) 707 LOC_CHECK_VERSION_INT(proj.h,PROJ_VERSION_MINOR,External PROJ minor,proj_ver_minor,$PROJINC,0) 708 LOC_CHECK_VERSION_INT(proj.h,PROJ_VERSION_PATCH,External PROJ patch,proj_ver_patch,$PROJINC,0) 709 AC_MSG_RESULT([found PROJ version "${proj_ver_major}.${proj_ver_minor}.${proj_ver_patch}"]) 710 PROJMAJOR=${proj_ver_major} 711 # minimum required PROJ 5+ version to use the new PROJ API: 5.1.0 712 if test ${proj_ver_major} = 5 && test `expr ${proj_ver_minor} \< 1` = 1 ; then 713 AC_MSG_WARN([At least PROJ version "5.1.0" is required for the new API ]) 714 PROJ4API=1 715 fi 716else 717 LOC_CHECK_VERSION_INT(proj_api.h,PJ_VERSION,External PROJ.4,proj_ver,$PROJINC,0) 718 if test `expr ${proj_ver} \>= 600` = 1 ; then 719 PROJMAJOR=6 720 elif test `expr ${proj_ver} \>= 500` = 1 ; then 721 PROJMAJOR=5 722 elif test `expr ${proj_ver} \>= 400` = 1 ; then 723 PROJMAJOR=4 724 fi 725 AC_MSG_RESULT([found PROJ version "${proj_ver}"]) 726fi 727 728if test $PROJ4API = 0 ; then 729 AC_MSG_RESULT([using new PROJ version 5+ API]) 730 731 # With PROJ library directory 732 733 LOC_CHECK_LIB_PATH(proj,External PROJ,PROJLIB) 734 LOC_CHECK_LIBS(proj,proj_pj_info,External PROJ,$PROJLIB,PROJLIB,,,) 735else 736 AC_MSG_RESULT([using old PROJ version 4 API]) 737 AC_DEFINE(USE_PROJ4API, 1, [define if using old PROJ version 4 API]) 738 739 LOC_CHECK_INCLUDES(proj_api.h,External PROJ,$PROJINC) 740 # PROJ version check for v4.x 741 742 if test "$cross_compiling" = yes; then 743 AC_MSG_WARN([*** Cannot check PROJ.4 version (cross-compiling).]) 744 else 745 LOC_CHECK_VERSION_INT(proj_api.h,PJ_VERSION,External PROJ.4,proj_ver,$PROJINC,0) 746 747 if test `expr ${proj_ver} \< 446` = 1 ; then 748 AC_MSG_ERROR([*** PROJ.4.4.6 or later is required.]) 749 fi 750 fi 751 752 # With PROJ library directory 753 754 LOC_CHECK_LIB_PATH(proj,External PROJ.4,PROJLIB) 755 LOC_CHECK_LIBS(proj,pj_get_def,External PROJ.4,$PROJLIB,PROJLIB,,,) 756fi 757 758# With PROJ share directory 759 760LOC_CHECK_SHARE_PATH(proj,External PROJ,PROJSHARE) 761if test -z "$PROJSHARE" ; then 762 AC_MSG_WARN([*** External PROJ directory not specified; default will be used]) 763 PROJSHARE=/usr/share/proj 764fi 765 766# check if share/proj/epsg exists only for PROJ < 6 767if test `expr ${PROJMAJOR} \< 6` = 1 ; then 768 # LOC_CHECK_SHARE does not work when cross compiling 769 if test "$cross_compiling" = "yes" ; then 770 AC_MSG_CHECKING([for epsg]) 771 AC_MSG_RESULT([unknown (cross-compiling)]) 772 else 773 LOC_CHECK_SHARE(epsg,External PROJ,$PROJSHARE,[ 774 AC_MSG_WARN([*** Unable to locate PROJ data files.]) 775 ]) 776 fi 777fi 778 779AC_SUBST(PROJINC) 780AC_SUBST(PROJLIB) 781AC_SUBST(PROJSHARE) 782 783# Done checking PROJ 784 785# Enable regex option 786 787LOC_CHECK_USE(regex,regex,USE_REGEX) 788 789REGEXINCPATH= 790REGEXLIBPATH= 791REGEXLIB= 792 793if test -n "$USE_REGEX"; then 794 795# With regex includes directory 796 797LOC_CHECK_INC_PATH(regex,regex,REGEXINCPATH) 798 799LOC_CHECK_INCLUDES(regex.h,regex,$REGEXINCPATH) 800 801# With regex library directory 802 803LOC_CHECK_LIB_PATH(regex,regex,REGEXLIBPATH) 804 805LOC_CHECK_FUNC(regcomp,regex functions,REGEXLIB,,,,,[ 806LOC_CHECK_LIBS(regex,regcomp,regex,$REGEXLIBPATH,REGEXLIB,,,) 807]) 808 809fi # $USE_REGEX 810 811AC_SUBST(REGEXINCPATH) 812AC_SUBST(REGEXLIBPATH) 813AC_SUBST(REGEXLIB) 814AC_SUBST(USE_REGEX) 815 816# Done checking regex 817 818# Enable Readline option 819 820LOC_CHECK_USE(readline,Readline,USE_READLINE) 821 822READLINEINCPATH= 823READLINELIBPATH= 824READLINELIB= 825HISTORYLIB= 826 827if test -n "$USE_READLINE"; then 828 829# With Readline includes directory 830 831LOC_CHECK_INC_PATH(readline,Readline,READLINEINCPATH) 832 833LOC_CHECK_INCLUDES(readline/readline.h,Readline,$READLINEINCPATH) 834LOC_CHECK_INCLUDES(readline/history.h,Readline,$READLINEINCPATH) 835 836# With Readline library directory 837 838LOC_CHECK_LIB_PATH(readline,Readline,READLINELIBPATH) 839 840LOC_CHECK_LIBS(readline,readline,Readline,$READLINELIBPATH,READLINELIB,,,) 841LOC_CHECK_LIBS(history,add_history,History,$READLINELIBPATH,HISTORYLIB,,,) 842 843fi # $USE_READLINE 844 845AC_SUBST(READLINEINCPATH) 846AC_SUBST(READLINELIBPATH) 847AC_SUBST(READLINELIB) 848AC_SUBST(HISTORYLIB) 849 850# Done checking Readline 851 852# GDAL option 853 854AC_MSG_CHECKING(whether to use GDAL) 855 856GDAL_LIBS= 857GDAL_CFLAGS= 858USE_GDAL= 859USE_OGR= 860 861if test "`basename xx/$with_gdal`" = "gdal-config" ; then 862 GDAL_CONFIG="$with_gdal" 863fi 864 865if test "$with_gdal" = "no" ; then 866 AC_MSG_RESULT(no) 867else 868 AC_MSG_RESULT(yes) 869 AC_PATH_PROG(GDAL_CONFIG, gdal-config, no) 870 871 if test "$GDAL_CONFIG" = "no" ; then 872 AC_MSG_ERROR([*** couldn't find gdal-config]) 873 fi 874 875 if test "$GDAL_CONFIG" != "" ; then 876 GDAL_LIBS=`"$GDAL_CONFIG" --libs` 877 GDAL_DEP_LIBS=`"$GDAL_CONFIG" --dep-libs` 878 GDAL_CFLAGS=`"$GDAL_CONFIG" --cflags` 879 USE_GDAL=1 880 if test `"$GDAL_CONFIG" --ogr-enabled` = "yes" ; then 881 AC_DEFINE(HAVE_OGR, 1, [define if OGR is to be used]) 882 USE_OGR=1 883 fi 884 fi 885 886 GDAL= 887 ac_save_libs="$LIBS" 888 ac_save_cflags="$CFLAGS" 889 LIBS="$LIBS $GDAL_LIBS" 890 CFLAGS="$CFLAGS $GDAL_CFLAGS" 891 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <gdal.h>]], [[GDALOpen("foo", GA_ReadOnly);]])],[],[ 892 LIBS="$LIBS $GDAL_DEP_LIBS" 893 AC_TRY_LINK([#include <gdal.h>],[GDALOpen("foo", GA_ReadOnly);],GDAL_LIBS="$GDAL_LIBS $GDAL_DEP_LIBS",[ 894 AC_MSG_ERROR([*** Unable to locate GDAL library.]) 895 ]) 896 ]) 897 LIBS=${ac_save_libs} 898 CFLAGS=${ac_save_cflags} 899 900 AC_DEFINE(HAVE_GDAL, 1, [define if GDAL is to be used]) 901fi 902 903AC_SUBST(GDAL_LIBS) 904AC_SUBST(GDAL_CFLAGS) 905AC_SUBST(USE_GDAL) 906AC_SUBST(USE_OGR) 907 908# libLAS option 909 910AC_MSG_CHECKING(whether to use libLAS) 911 912LIBLAS_LIBS= 913LIBLAS_CFLAGS= 914USE_LIBLAS= 915 916if test "`basename xx/$with_liblas`" = "liblas-config" ; then 917 LIBLAS_CONFIG="$with_liblas" 918fi 919 920if test "$with_liblas" = "no" ; then 921 AC_MSG_RESULT(no) 922else 923 AC_MSG_RESULT(yes) 924 AC_PATH_PROG(LIBLAS_CONFIG, liblas-config, no) 925 926 if test "$LIBLAS_CONFIG" = "no" ; then 927 AC_MSG_ERROR([*** couldn't find liblas-config]) 928 fi 929 930 if test "$LIBLAS_CONFIG" != "" ; then 931 LIBLAS_LIBS=`"$LIBLAS_CONFIG" --libs` 932 LIBLAS_CFLAGS=`"$LIBLAS_CONFIG" --cflags` 933 LIBLAS_INC=`"$LIBLAS_CONFIG" --includes` 934 USE_LIBLAS=1 935 fi 936 937 LIBLAS= 938 ac_save_libs="$LIBS" 939 ac_save_cflags="$CFLAGS" 940 ac_save_cppflags="$CPPFLAGS" 941 LIBS="$LIBS $LIBLAS_LIBS" 942 CFLAGS="$CFLAGS $LIBLAS_CFLAGS" 943 CPPFLAGS="$CPPFLAGS $LIBLAS_INC" 944 AC_CHECK_HEADERS(liblas/capi/liblas.h) 945 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <liblas/capi/liblas.h>]], [[LASReader_Create("foo");]])],[],[ 946 AC_TRY_LINK([#include <liblas/capi/liblas.h>],[LASReader_Create("foo");],LAS_LIBS="$LAS_LIBS",[ 947 AC_MSG_ERROR([*** Unable to locate libLAS library.]) 948 ]) 949 ]) 950 LIBS=${ac_save_libs} 951 CFLAGS=${ac_save_cflags} 952 CPPFLAGS=${ac_save_cppflags} 953 954 AC_DEFINE(HAVE_LIBLAS, 1, [define if liblas exists]) 955fi 956 957AC_SUBST(LIBLAS_LIBS) 958AC_SUBST(LIBLAS_CFLAGS) 959AC_SUBST(LIBLAS_INC) 960AC_SUBST(USE_LIBLAS) 961 962# PDAL option 963 964AC_MSG_CHECKING(whether to use PDAL) 965 966AC_LANG_PUSH(C++) 967 968PDAL_LIBS= 969PDAL_CPPFLAGS= 970USE_PDAL= 971 972if test "`basename xx/$with_pdal`" = "pdal-config" ; then 973 PDAL_CONFIG="$with_pdal" 974fi 975 976if test "$with_pdal" = "no" ; then 977 AC_MSG_RESULT(no) 978else 979 AC_MSG_RESULT(yes) 980 AC_PATH_PROG(PDAL_CONFIG, pdal-config, no) 981 982 if test "$PDAL_CONFIG" = "no" ; then 983 AC_MSG_ERROR([*** could not find pdal-config]) 984 fi 985 986 if test "$PDAL_CONFIG" != "" ; then 987 PDAL_LIBS=`"$PDAL_CONFIG" --libs` 988 PDAL_CPPFLAGS=`"$PDAL_CONFIG" --cxxflags` 989 PDAL_INC=`"$PDAL_CONFIG" --includes` 990 USE_PDAL=1 991 fi 992 993 PDAL= 994 ac_save_libs="$LIBS" 995 ac_save_cflags="$CFLAGS" 996 ac_save_cppflags="$CPPFLAGS" 997 LIBS="$LIBS $PDAL_LIBS" 998 CFLAGS="$CFLAGS $PDAL_CFLAGS" 999 CPPFLAGS="$CPPFLAGS $PDAL_CPPFLAGS $PDAL_INC" 1000 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pdal/PointTable.hpp>]], [[pdal::PointTable table;]])],[],[ 1001 AC_TRY_LINK([#include <pdal/PointTable.hpp>],[pdal::PointTable table;],PDAL_LIBS="$PDAL_LIBS",[ 1002 AC_MSG_ERROR([*** Unable to locate PDAL library.]) 1003 ]) 1004 ]) 1005 LIBS=${ac_save_libs} 1006 CFLAGS=${ac_save_cflags} 1007 CPPFLAGS=${ac_save_cppflags} 1008 1009 AC_DEFINE(HAVE_PDAL, 1, [define if PDAL exists]) 1010fi 1011 1012AC_SUBST(PDAL_LIBS) 1013AC_SUBST(PDAL_CPPFLAGS) 1014AC_SUBST(PDAL_INC) 1015AC_SUBST(USE_PDAL) 1016 1017AC_LANG_POP(C++) 1018 1019# NetCDF option 1020 1021AC_MSG_CHECKING(whether to use NetCDF) 1022 1023NETCDF_LIBS= 1024NETCDF_CFLAGS= 1025USE_NETCDF= 1026 1027if test "`basename xx/$with_netcdf`" = "nc-config" ; then 1028 NETCDF_CONFIG="$with_netcdf" 1029fi 1030 1031if test "$with_netcdf" = "no" ; then 1032 AC_MSG_RESULT(no) 1033else 1034 AC_MSG_RESULT(yes) 1035 AC_PATH_PROG(NETCDF_CONFIG, nc-config, no) 1036 1037 if test "$NETCDF_CONFIG" = "no" ; then 1038 AC_MSG_ERROR([*** couldn't find nc-config]) 1039 fi 1040 1041 if test "$NETCDF_CONFIG" != "" ; then 1042 NETCDF_LIBS=`"$NETCDF_CONFIG" --libs` 1043 NETCDF_CFLAGS=`"$NETCDF_CONFIG" --cflags` 1044 USE_NETCDF=1 1045 fi 1046 1047 NETCDF= 1048 ac_save_libs="$LIBS" 1049 ac_save_cflags="$CFLAGS" 1050 LIBS="$LIBS $NETCDF_LIBS" 1051 CFLAGS="$CFLAGS $NETCDF_CFLAGS" 1052 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netcdf.h>]], [[nc_create("foo", NC_CLOBBER, NULL);]])],[],[ 1053 AC_TRY_LINK([#include <netcdf.h>],[nc_create("foo", NC_CLOBBER, NULL);],NETCDF_LIBS="$NETCDF_LIBS",[ 1054 AC_MSG_ERROR([*** Unable to locate NetCDF library.]) 1055 ]) 1056 ]) 1057 LIBS=${ac_save_libs} 1058 CFLAGS=${ac_save_cflags} 1059 1060 AC_DEFINE(HAVE_NETCDF, 1, [define if NetCDF exists]) 1061fi 1062 1063AC_SUBST(NETCDF_LIBS) 1064AC_SUBST(NETCDF_CFLAGS) 1065AC_SUBST(USE_NETCDF) 1066 1067# GEOS option 1068 1069AC_MSG_CHECKING(whether to use GEOS) 1070 1071GEOS_LIBS= 1072GEOS_CFLAGS= 1073USE_GEOS= 1074 1075# FIXME: "quote" $with_geos ? 1076if test "`basename xx/$with_geos`" = "geos-config" ; then 1077 GEOS_CONFIG="$with_geos" 1078fi 1079 1080if test "$with_geos" = "no" ; then 1081 AC_MSG_RESULT(no) 1082else 1083 AC_MSG_RESULT(yes) 1084 AC_PATH_PROG(GEOS_CONFIG, geos-config, no) 1085 1086 if test "$GEOS_CONFIG" = "no" ; then 1087 AC_MSG_ERROR([*** couldn't find geos-config]) 1088 fi 1089 1090 if test "$GEOS_CONFIG" != "" ; then 1091 GEOS_LIBS=`"$GEOS_CONFIG" --clibs` 1092 GEOS_CFLAGS=`"$GEOS_CONFIG" --cflags` 1093 USE_GEOS=1 1094 fi 1095 1096 LOC_CHECK_INCLUDES(geos_c.h,GEOS,$GEOS_CFLAGS) 1097### geos 3.3.6 installs geos_c.lib, see http://osgeo-org.1560.n6.nabble.com/osgeo4w-329-update-geos-to-3-3-6-td5024605.html 1098# if test "$MINGW32" = yes ; then 1099# LOC_CHECK_LIBS(geos_c_i,initGEOS,GEOS,$GEOS_LIBS,GEOS_LIBS) 1100# else 1101 LOC_CHECK_LIBS(geos_c,initGEOS,GEOS,$GEOS_LIBS,GEOS_LIBS) 1102# fi 1103 AC_DEFINE(HAVE_GEOS, 1, [define if GEOS is to be used]) 1104fi 1105 1106AC_SUBST(GEOS_LIBS) 1107AC_SUBST(GEOS_CFLAGS) 1108AC_SUBST(USE_GEOS) 1109 1110# Enable TIFF option 1111 1112LOC_CHECK_USE(tiff,TIFF,USE_TIFF) 1113 1114TIFF_INCLUDE_DIRS= 1115TIFF_LIBRARY_DIRS= 1116TIFFLIB= 1117 1118if test -n "$USE_TIFF"; then 1119 1120# With TIFF includes directory 1121 1122LOC_CHECK_INC_PATH(tiff,TIFF,TIFF_INCLUDE_DIRS) 1123 1124LOC_CHECK_INCLUDES(tiffio.h,TIFF,$TIFF_INCLUDE_DIRS) 1125 1126# With TIFF library directory 1127 1128LOC_CHECK_LIB_PATH(tiff,TIFF,TIFF_LIBRARY_DIRS) 1129 1130LOC_CHECK_LIBS(tiff,TIFFOpen,TIFF,$TIFF_LIBRARY_DIRS,TIFFLIB,,,,-ljpeg,$ZLIB,$MATHLIB) 1131 1132fi # $USE_TIFF 1133 1134AC_SUBST(TIFF_INCLUDE_DIRS) 1135AC_SUBST(TIFF_LIBRARY_DIRS) 1136AC_SUBST(TIFFLIB) 1137 1138# Done checking TIFF 1139 1140# Enable PNG option 1141 1142LOC_CHECK_USE(png,PNG,USE_PNG) 1143 1144PNGINC= 1145PNGLIB= 1146 1147if test -n "$USE_PNG"; then 1148 1149# With PNG includes directory 1150 1151LOC_CHECK_INC_PATH(png,PNG,PNGINC) 1152 1153LOC_CHECK_INCLUDES(png.h,PNG,$PNGINC) 1154 1155# With PNG library directory 1156 1157LOC_CHECK_LIB_PATH(png,PNG,PNGLIB) 1158 1159LOC_CHECK_LIBS(png,png_read_image,PNG,$PNGLIB,PNGLIB,,$ZLIB $MATHLIB,) 1160 1161fi # $USE_PNG 1162 1163AC_SUBST(PNGINC) 1164AC_SUBST(PNGLIB) 1165AC_SUBST(USE_PNG) 1166 1167# Done checking PNG 1168 1169# Enable PostgreSQL option 1170 1171LOC_CHECK_USE(postgres,PostgreSQL,USE_POSTGRES) 1172 1173if test -n "$USE_POSTGRES"; then 1174AC_DEFINE(HAVE_POSTGRES, 1, [define if PostgreSQL is to be used]) 1175fi # $USE_POSTGRES 1176 1177PQINCPATH= 1178PQLIBPATH= 1179PQLIB= 1180 1181if test -n "$USE_POSTGRES"; then 1182 1183# With PostgreSQL includes directory 1184 1185LOC_CHECK_INC_PATH(postgres,PostgreSQL,PQINCPATH) 1186 1187LOC_CHECK_INCLUDES(libpq-fe.h,PostgreSQL,$PQINCPATH) 1188 1189fi # $USE_POSTGRES 1190 1191if test -n "$USE_POSTGRES"; then 1192 1193# With PostgreSQL library directory 1194 1195LOC_CHECK_LIB_PATH(postgres,PostgreSQL,PQLIBPATH) 1196 1197LOC_CHECK_LIBS(pq,PQsetdbLogin,PostgreSQL,$PQLIBPATH,PQLIB,,,,-lcrypt,-lssl -lcrypto) 1198 1199ac_save_ldflags="$LDFLAGS" 1200LDFLAGS="$LDFLAGS $PQLIBPATH" 1201AC_CHECK_LIB(pq,PQcmdTuples, [AC_DEFINE(HAVE_PQCMDTUPLES, 1, [define if PQcmdTuples in lpq])], [ 1202AC_CHECK_LIB(pq,PQcmdTuples, [AC_DEFINE(HAVE_PQCMDTUPLES, 1, [define if PQcmdTuples in lpq])], [ 1203], -lcrypt) 1204]) 1205LDFLAGS="${ac_save_ldflags}" 1206 1207fi # $USE_POSTGRES 1208 1209AC_SUBST(USE_POSTGRES) 1210 1211AC_SUBST(PQINCPATH) 1212AC_SUBST(PQLIBPATH) 1213AC_SUBST(PQLIB) 1214 1215# Done checking PostgreSQL 1216 1217# Enable MySQL option 1218 1219LOC_CHECK_USE(mysql,MySQL,USE_MYSQL) 1220 1221MYSQLINCPATH= 1222MYSQLLIBPATH= 1223MYSQLLIB= 1224 1225if test -n "$USE_MYSQL"; then 1226 1227# With MySQL includes directory 1228 1229LOC_CHECK_INC_PATH(mysql,MySQL,MYSQLINCPATH) 1230 1231LOC_CHECK_INCLUDES(mysql.h,MySQL,$MYSQLINCPATH) 1232 1233fi # $USE_MYSQL 1234 1235if test -n "$USE_MYSQL"; then 1236 # With MySQL library directory 1237 1238 LOC_CHECK_LIB_PATH(mysql,MySQL,MYSQLLIBPATH) 1239 1240 LOC_CHECK_LIBS(mysqlclient,mysql_query,MySQL,$MYSQLLIBPATH,MYSQLLIB,,,,$ZLIB,$SOCKLIB,$MATHLIB) 1241 1242 # Check for libmysqld (for embedded version of the driver) 1243 AC_PATH_PROG(MYSQLD_CONFIG, mysql_config, no) 1244 1245 if test "$MYSQLD_CONFIG" = "no" ; then 1246 AC_MSG_ERROR([*** couldn't find mysql_config]) 1247 fi 1248 1249 if test "$MYSQLD_CONFIG" != "" ; then 1250 AC_LANG_PUSH([C++]) 1251 ac_save_libs="$LIBS" 1252 MYSQLDLIB=`"$MYSQLD_CONFIG" --libmysqld-libs` 1253 1254 LIBS="$MYSQLDLIB $LIBS" 1255 AC_CHECK_FUNC(mysql_server_init,,[MYSQLDLIB=""; 1256 AC_MSG_WARN([libmysqld not found])] ) 1257 LIBS=$ac_save_libs 1258 AC_LANG_POP([C++]) 1259 fi 1260 1261fi # $USE_MYSQL 1262 1263AC_SUBST(USE_MYSQL) 1264 1265AC_SUBST(MYSQLINCPATH) 1266AC_SUBST(MYSQLLIBPATH) 1267AC_SUBST(MYSQLLIB) 1268AC_SUBST(MYSQLDLIB) 1269 1270# Done checking MySQL 1271 1272# Enable SQLite option 1273 1274LOC_CHECK_USE(sqlite,SQLite,USE_SQLITE) 1275 1276SQLITEINCPATH= 1277SQLITELIBPATH= 1278SQLITELIB= 1279 1280if test -n "$USE_SQLITE"; then 1281 1282# With SQLite includes directory 1283 1284LOC_CHECK_INC_PATH(sqlite,SQLite,SQLITEINCPATH) 1285 1286LOC_CHECK_INCLUDES(sqlite3.h,SQLite,$SQLITEINCPATH) 1287 1288AC_DEFINE(HAVE_SQLITE, 1, [define if SQLite is to be used]) 1289 1290fi # $USE_SQLITE 1291 1292if test -n "$USE_SQLITE"; then 1293 1294# With SQLite library directory 1295 1296LOC_CHECK_LIB_PATH(sqlite,SQLite,SQLITELIBPATH) 1297 1298LOC_CHECK_LIBS(sqlite3,sqlite3_open,SQLite,$SQLITELIBPATH,SQLITELIB,,,,$MATHLIB,$DLLIB) 1299 1300fi # $USE_SQLITE 1301 1302AC_SUBST(USE_SQLITE) 1303 1304AC_SUBST(SQLITEINCPATH) 1305AC_SUBST(SQLITELIBPATH) 1306AC_SUBST(SQLITELIB) 1307 1308# Done checking SQLite 1309 1310# Enable OpenGL option 1311 1312OPENGLINC= 1313OPENGLLIB= 1314OPENGLULIB= 1315USE_OPENGL= 1316OPENGL_X11= 1317OPENGL_AQUA= 1318OPENGL_WINDOWS= 1319 1320AC_MSG_CHECKING(whether to use OpenGL) 1321AC_MSG_RESULT("$with_opengl") 1322case "$with_opengl" in 1323 n|no) 1324 OPENGL_TYPE=none 1325 ;; 1326 y|yes|x|x11|glx) 1327 OPENGL_TYPE=X11 1328 USE_OPENGL=1 1329 OPENGL_X11=1 1330 ;; 1331 aqua|mac|osx|macosx|agl) 1332 OPENGL_TYPE=Aqua 1333 USE_OPENGL=1 1334 OPENGL_AQUA=1 1335 ;; 1336 win|windows|mswin|wgl) 1337 OPENGL_TYPE=Windows 1338 USE_OPENGL=1 1339 OPENGL_WINDOWS=1 1340 ;; 1341 *) 1342 AC_MSG_ERROR([*** Valid arguments for --with-opengl= are yes,no,x11,aqua,windows.]) 1343 ;; 1344esac 1345 1346if test -n "$USE_OPENGL" ; then 1347 1348if test "$OPENGL_X11" = 1 ; then 1349 1350# With OpenGL includes directory 1351 1352LOC_CHECK_INC_PATH(opengl,OpenGL,OPENGLINC) 1353 1354LOC_CHECK_INCLUDES(GL/gl.h GL/glu.h,OpenGL,$OPENGLINC $X_CFLAGS) 1355 1356# With OpenGL library directory 1357 1358LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH) 1359 1360LOC_CHECK_LIBS(GL,glBegin,OpenGL,$OPENGL_LIB_PATH,OPENGLLIB,$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lpthread,-lXext) 1361 1362LOC_CHECK_LIBS(GLU,gluBeginCurve,GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lstdc++) 1363 1364OPENGLLIB="$OPENGL_LIB_PATH $OPENGLLIB" 1365OPENGLULIB="$OPENGL_LIB_PATH $OPENGLULIB" 1366 1367LOC_CHECK_FUNC(glXCreatePbuffer,,,,,$OPENGLLIB,[AC_DEFINE(HAVE_PBUFFERS, 1, [define if glXCreatePbuffer exists])]) 1368LOC_CHECK_FUNC(glXCreateGLXPixmap,,,,,$OPENGLLIB,[AC_DEFINE(HAVE_PIXMAPS, 1, [define if glXCreatePbuffer exists])]) 1369 1370AC_DEFINE(OPENGL_X11, 1, [define if OpenGL uses X11]) 1371 1372fi # $OPENGL_X11 1373 1374if test "$OPENGL_AQUA" = 1 ; then 1375 1376LOC_CHECK_FRAMEWORK_PATH(opengl,OpenGL,OPENGLPATH) 1377 1378LOC_CHECK_INCLUDES(OpenGL/gl.h OpenGL/glu.h,OpenGL,$OPENGLPATH) 1379 1380LOC_CHECK_FUNC(glBegin,OpenGL library,OPENGLLIB,-framework OpenGL -framework AGL -framework ApplicationServices,$OPENGLPATH) 1381LOC_CHECK_FUNC(gluBeginCurve,GLU library,OPENGLLIB,,$OPENGLPATH,$OPENGLLIB) 1382 1383OPENGLINC="$OPENGLPATH" 1384OPENGLLIBPATH="$OPENGLPATH" 1385 1386AC_DEFINE(OPENGL_AQUA, 1, [define if OpenGL uses Aqua (MacOS X)]) 1387 1388fi # $OPENGL_AQUA 1389 1390if test "$OPENGL_WINDOWS" = 1 ; then 1391 1392# With OpenGL includes directory 1393 1394LOC_CHECK_INC_PATH(opengl,OpenGL,OPENGLINC) 1395 1396LOC_CHECK_INCLUDES(GL/gl.h GL/glu.h,OpenGL,$OPENGLINC) 1397 1398# With OpenGL library directory 1399 1400LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH) 1401 1402ac_save_cflags="$CFLAGS" 1403CFLAGS="$CFLAGS $OPENGLINC" 1404LOC_CHECK_LINK(opengl32,[#include <GL/gl.h>],[glEnd();],OpenGL,$OPENGL_LIB_PATH,OPENGLLIB) 1405LOC_CHECK_LINK(glu32,[#include <GL/glu.h>],[gluNewQuadric();],GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB) 1406CFLAGS="${ac_save_cflags}" 1407 1408OPENGLLIB="$OPENGL_LIB_PATH $OPENGLLIB" 1409OPENGLULIB="$OPENGL_LIB_PATH $OPENGLULIB" 1410 1411AC_DEFINE(OPENGL_WINDOWS, 1, [define if OpenGL uses Windows]) 1412 1413fi # $OPENGL_WINDOWS 1414 1415fi # $USE_OPENGL 1416 1417AC_SUBST(USE_OPENGL) 1418AC_SUBST(OPENGL_X11) 1419AC_SUBST(OPENGL_AQUA) 1420AC_SUBST(OPENGL_WINDOWS) 1421 1422AC_SUBST(OPENGLINC) 1423AC_SUBST(OPENGLLIB) 1424AC_SUBST(OPENGLULIB) 1425 1426# Done checking OpenGL 1427 1428# Enable ODBC option 1429 1430LOC_CHECK_USE(odbc,ODBC,USE_ODBC) 1431 1432ODBCINC= 1433ODBCLIB= 1434 1435if test -n "$USE_ODBC"; then 1436 1437# With ODBC includes directory 1438 1439LOC_CHECK_INC_PATH(odbc,ODBC,ODBCINC) 1440 1441AC_CHECK_HEADER([windows.h], 1442 AC_DEFINE(HAVE_WINDOWS_H, 1, [Define to 1 if you have the <windows.h> header file.])) 1443 1444ac_save_cppflags="$CPPFLAGS" 1445CPPFLAGS="$ODBCINC $CPPFLAGS" 1446AC_CHECK_HEADER([sql.h], 1447AC_DEFINE(HAVE_SQL_H, 1, [Define to 1 if you have the <sql.h> header file.]), 1448AC_MSG_ERROR([*** Unable to locate <sql.h>.]),[#if defined(HAVE_WINDOWS_H) 1449# include <windows.h> 1450#endif 1451]) 1452CPPFLAGS=$ac_save_cppflags 1453 1454# With ODBC library directory 1455 1456LOC_CHECK_LIB_PATH(odbc,ODBC,ODBCLIB) 1457 1458LOC_CHECK_LIBS(odbc,SQLConnect,ODBC,$ODBCLIB,ODBCLIB,$ICONVLIB,,[ 1459LOC_CHECK_LIBS(iodbc,SQLConnect,ODBC,$ODBCLIB,ODBCLIB,,,[ 1460ac_save_cflags="$CFLAGS" 1461CFLAGS="$CFLAGS $ODBCINC" 1462LOC_CHECK_LINK(odbc32,[#include <windows.h> 1463#include <sql.h>],[SQLAllocEnv((SQLHENV *)0);],ODBC,$ODBCLIB,ODBCLIB) 1464CFLAGS="${ac_save_cflags}" 1465]) 1466]) 1467 1468fi # $USE_ODBC 1469 1470AC_SUBST(ODBCINC) 1471AC_SUBST(ODBCLIB) 1472 1473# Done checking ODBC 1474 1475# Enable FFTW option 1476 1477LOC_CHECK_USE(fftw,FFTW,USE_FFTW) 1478 1479FFTWINC= 1480FFTWLIB= 1481 1482if test -n "$USE_FFTW"; then 1483 1484# With FFTW includes directory 1485 1486LOC_CHECK_INC_PATH(fftw,FFTW,FFTWINC) 1487 1488LOC_CHECK_INCLUDES(fftw3.h,FFTW,$FFTWINC,[ 1489LOC_CHECK_INCLUDES(fftw.h,FFTW,,[ 1490LOC_CHECK_INCLUDES(dfftw.h,FFTW,,) 1491]) 1492]) 1493 1494# With FFTW library directory 1495 1496LOC_CHECK_LIB_PATH(fftw,FFTW,FFTWLIB) 1497 1498LOC_CHECK_LIBS(fftw3, fftw_execute,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,[ 1499LOC_CHECK_LIBS(fftw, fftwnd_one,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,[ 1500LOC_CHECK_LIBS(dfftw,fftwnd_one,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,) 1501]) 1502]) 1503 1504fi # $USE_FFTW 1505 1506AC_SUBST(FFTWINC) 1507AC_SUBST(FFTWLIB) 1508 1509# Done checking FFTW 1510 1511# Enable BLAS option 1512 1513LOC_CHECK_USE(blas,BLAS,USE_BLAS) 1514 1515BLASLIB= 1516BLASINC= 1517 1518if test -n "$USE_BLAS"; then 1519 1520# With BLAS includes directory 1521# BLAS doesn't have includes (FORTRAN library) 1522# With BLAS library directory 1523 1524LOC_CHECK_INC_PATH(blas, BLAS, BLASINC) 1525LOC_CHECK_LIB_PATH(blas, BLAS, BLASLIB) 1526 1527# See if cblas.h exists (CBLAS,ATLAS,others) 1528save_CPPFLAGS="$CPPFLAGS" 1529CPPFLAGS="$BLASINC $CPPFLAGS" 1530AC_CHECK_HEADERS(cblas.h) 1531CPPFLAGS="$save_CPPFLAGS" 1532 1533LOC_CHECK_LIBS(blas,dnrm2_,BLAS,$BLASLIB,BLASLIB,$MATHLIB,,,-lg2c) 1534 1535blas_ok=no 1536 1537# Check for ATLAS 1538save_LDFLAGS="$LDFLAGS" 1539LDFLAGS="$BLASLIB $LDFLAGS" 1540AC_CHECK_LIB(atlas, ATL_xerbla, 1541 [AC_CHECK_LIB(f77blas, sgemm_, 1542 [AC_CHECK_LIB(cblas, cblas_dgemm, 1543 [blas_ok=yes; BLASLIB="-lcblas -lf77blas -latlas"], 1544 [],[-lf77blas -latlas])], 1545 [],[-latlas])] 1546) 1547LDFLAGS="$save_LDFLAGS" 1548 1549# Do we have ATLAS? 1550if test $blas_ok = yes; then 1551 AC_DEFINE(HAVE_LIBATLAS, 1, [define if ATLAS exists]) 1552fi 1553 1554# BLAS in Apple vecLib framework? (Mac OS-X) 1555# not dependent on APP build 1556#if test -n "$MACOSX_APP"; then 1557if test $blas_ok = no; then 1558 vlib_flags="-framework vecLib" 1559 save_LIBS="$LIBS" 1560 LIBS="$vlib_flags $LIBS" 1561 AC_MSG_CHECKING([for sgemm in $vlib_flags]) 1562 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[sgemm]])],[blas_ok=yes; BLASLIB="$vlib_flags"],[BLASLIB=""]) 1563 AC_MSG_RESULT($blas_ok) 1564 LIBS="$save_LIBS" 1565fi 1566#fi # $MACOSX_APP 1567 1568# BLAS in PhiPACK libraries? (requires generic BLAS, too) 1569if test $blas_ok = no; then 1570 AC_CHECK_LIB(blas, sgemm_, 1571 [AC_CHECK_LIB(dgemm, dgemm_, 1572 [AC_CHECK_LIB(sgemm, sgemm_, 1573 [blas_ok=yes; BLASLIB="-lsgemm -ldgemm -lblas"], 1574 [], [-lblas])], 1575 [], [-lblas])] 1576 ) 1577fi 1578 1579# BLAS in Sun Performance library? 1580if test $blas_ok = no; then 1581 if test "x$GCC" != xyes; then # only works with Sun CC 1582 AC_CHECK_LIB(sunmath, acosp, 1583 [AC_CHECK_LIB(sunperf, sgemm_, 1584 [blas_ok=yes; BLASLIB="-xlic_lib=sunperf -lsunmath"], 1585 [], [-lsunmath])] 1586 ) 1587 fi 1588fi 1589 1590# Generic BLAS library 1591if test $blas_ok = no; then 1592 AC_CHECK_LIB(blas, sgemm_, [blas_ok=yes; BLASLIB="-lblas"]) 1593fi 1594 1595if test $blas_ok = yes; then 1596AC_DEFINE(HAVE_LIBBLAS, 1, [define if BLAS exists]) 1597fi 1598 1599fi # $USE_BLAS 1600 1601AC_SUBST(BLASLIB) 1602AC_SUBST(BLASINC) 1603 1604# Done checking BLAS 1605 1606# Enable LAPACK option 1607 1608LOC_CHECK_USE(lapack,LAPACK,USE_LAPACK) 1609 1610LAPACKLIB= 1611LAPACKINC= 1612 1613# LAPACK is useless without BLAS 1614if test -n "$USE_BLAS"; then 1615if test -n "$USE_LAPACK"; then 1616 1617# With LAPACK includes directory 1618# LAPACK doesn't have includes (FORTRAN library) 1619# With LAPACK library directory 1620 1621lapack_ok=no 1622 1623LOC_CHECK_INC_PATH(lapack, LAPACK, LAPACKINC) 1624LOC_CHECK_LIB_PATH(lapack, LAPACK, LAPACKLIB) 1625 1626# See if clapack.h exists (ATLAS) 1627save_CPPFLAGS="$CPPFLAGS" 1628CPPFLAGS="$LAPACKINC $CPPFLAGS" 1629AC_CHECK_HEADERS(clapack.h) 1630CPPFLAGS="$save_CPPFLAGS" 1631 1632# LAPACK linked to by default? 1633if test lapack_ok=no; then 1634 save_LIBS="$LIBS"; LIBS="$LIBS $BLASLIB $MATHLIB $FLIBS" 1635 save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LAPACKLIB $LDFLAGS" 1636 AC_CHECK_FUNC(dsegv_, [lapack_ok=yes]) 1637 LIBS="$save_LIBS" 1638 LDFLAGS="$save_LDFLAGS" 1639fi 1640 1641# Generic LAPACK library? 1642if test $lapack_ok = no; then 1643 save_libs="$LIBS"; LIBS="$BLASLIB $MATHLIB $LIBS" 1644 save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LAPACKLIB $LDFLAGS" 1645 AC_CHECK_LIB(lapack, desgv_, 1646 [lapack_ok=yes; LAPACKLIB="-llapack"], [], [$FLIBS]) 1647 LIBS="$save_LIBS" 1648 LDFLAGS="$save_LDFLAGS" 1649fi 1650 1651if test $lapack_ok = no; then 1652 LOC_CHECK_LIBS(lapack,dgesv_,LAPACK,$LAPACKLIB,LAPACKLIB,$BLASLIB $MATHLIB,,,-lg2c) 1653fi 1654 1655AC_DEFINE(HAVE_LIBLAPACK, 1, [define if LAPACK exists]) 1656 1657fi # $USE_LAPACK 1658fi # $USE_BLAS 1659 1660AC_SUBST(LAPACKLIB) 1661AC_SUBST(LAPACKINC) 1662 1663# Done checking LAPACK 1664 1665# Enable Cairo display driver option 1666 1667LOC_CHECK_USE(cairo,Cairo,USE_CAIRO) 1668 1669CAIROINC= 1670CAIROLIB= 1671 1672if test -n "$USE_CAIRO"; then 1673 1674cairo="cairo" 1675pkgs="cairo-ft cairo-fc cairo-pdf cairo-ps cairo-svg fontconfig" 1676if test -n "$USE_X11"; then 1677 pkgs="$pkgs cairo-xlib cairo-xlib-xrender" 1678fi 1679for pkg in $pkgs ; do 1680 if pkg-config --exists $pkg ; then 1681 cairo="$cairo $pkg" 1682 fi 1683done 1684 1685# With Cairo includes directory 1686#FIXME: somehow quote dirs with spaces in $cairo ? 1687CAIROINC=`pkg-config --cflags $cairo` 1688 1689LOC_CHECK_INC_PATH(cairo,cairo,CAIROINC) 1690 1691LOC_CHECK_INCLUDES(cairo.h,Cairo,$CAIROINC) 1692 1693# With Cairo library directory 1694 1695CAIROLIB=`pkg-config --libs $cairo` 1696 1697LOC_CHECK_LIB_PATH(cairo,cairo,CAIROLIB) 1698LOC_CHECK_LDFLAGS(cairo,cairo,CAIROLIB) 1699 1700LOC_CHECK_FUNC(cairo_create,,,,,$CAIROLIB,[:]) 1701LOC_CHECK_FUNC(cairo_xlib_surface_create_with_xrender_format,,,,,$CAIROLIB, 1702[CAIRO_HAS_XRENDER=1],[CAIRO_HAS_XRENDER=]) 1703AC_SUBST(CAIRO_HAS_XRENDER) 1704LOC_CHECK_FUNC(cairo_xlib_surface_get_xrender_format,,,,,$CAIROLIB, 1705[CAIRO_HAS_XRENDER_SURFACE=1],[CAIRO_HAS_XRENDER_SURFACE=]) 1706AC_SUBST(CAIRO_HAS_XRENDER_SURFACE) 1707 1708CAIROLIB="$CAIROLIB $CAIROLDFLAGS" 1709 1710fi # $USE_CAIRO 1711 1712AC_SUBST(CAIROINC) 1713AC_SUBST(CAIROLIB) 1714AC_SUBST(USE_CAIRO) 1715 1716# Done checking Cairo 1717 1718# Enable FreeType option 1719 1720LOC_CHECK_USE(freetype,FreeType,USE_FREETYPE) 1721 1722FTINC= 1723FTLIB= 1724 1725if test -n "$USE_FREETYPE"; then 1726 1727# With FreeType includes directory 1728 1729LOC_CHECK_INC_PATH(freetype,FreeType,FTINC) 1730 1731LOC_CHECK_INCLUDES(ft2build.h,FreeType,$FTINC) 1732 1733# With FreeType library directory 1734 1735LOC_CHECK_LIB_PATH(freetype,FreeType,FTLIB) 1736 1737LOC_CHECK_LIBS(freetype,FT_Init_FreeType,FreeType,$FTLIB,FTLIB,,,) 1738 1739fi # $USE_FREETYPE 1740 1741AC_SUBST(FTINC) 1742AC_SUBST(FTLIB) 1743 1744# Done checking FreeType 1745 1746# Enable NLS option 1747 1748LOC_CHECK_USE(nls,NLS,USE_NLS) 1749 1750INTLLIB= 1751HAVE_NLS= 1752 1753if test -n "${USE_NLS}" ; then 1754 AC_DEFINE(USE_NLS, 1, [define if NLS requested]) 1755 1756AC_CHECK_FUNC(gettext, INTLLIB=, [ 1757AC_CHECK_LIB(intl, gettext, INTLLIB=-lintl, [ 1758 AC_MSG_ERROR([*** Unable to locate gettext() function.]) 1759])]) 1760 1761 HAVE_NLS=1 1762fi 1763 1764AC_SUBST(INTLLIB) 1765AC_SUBST(HAVE_NLS) 1766 1767# Enable C++ option 1768 1769LOC_CHECK_USE(cxx,C++,USE_CXX) 1770 1771if test -n "$USE_CXX"; then 1772 AC_PROG_CXX 1773else 1774 CXX= 1775 CXXFLAGS= 1776 AC_SUBST(CXX) 1777 AC_SUBST(CXXFLAGS) 1778fi 1779 1780# Done checking C++ 1781 1782# Enable openDWG option 1783 1784LOC_CHECK_USE(opendwg,openDWG,USE_OPENDWG) 1785 1786OPENDWGINCPATH= 1787OPENDWGLIBPATH= 1788OPENDWGLIB= 1789 1790if test -n "${USE_OPENDWG}"; then 1791 1792# With OPENDWG includes directory 1793 1794LOC_CHECK_INC_PATH(opendwg,openDGW,OPENDWGINCPATH) 1795 1796LOC_CHECK_INCLUDES(ad2.h,openDWG,$OPENDWGINCPATH) 1797 1798# With OPENDWG library directory 1799 1800LOC_CHECK_LIB_PATH(opendwg,openDWG,OPENDWGLIBPATH) 1801 1802#search for ad2.a, ad3.a ... in openDWG toolkit directory: 1803#FIX ME how to program this test?? 1804#LOC_CHECK_LIBS(ad?.a,adSeekLayer,openDWG,$OPENDWGLIBPATH,OPENDWGLIB,,) 1805# 1806#for now hack (but working): 1807TRUEOPENDWGLIBPATH=`echo "$OPENDWGLIBPATH" | cut -b3-` 1808adlib=`ls -1 "$TRUEOPENDWGLIBPATH"/ad?.a | tail -1` 1809OPENDWGLIB="$adlib" 1810 1811fi # $USE_OPENDWG 1812 1813AC_SUBST(OPENDWGINCPATH) 1814AC_SUBST(OPENDWGLIBPATH) 1815AC_SUBST(OPENDWGLIB) 1816AC_SUBST(USE_OPENDWG) 1817 1818# Done checking OPENDWG 1819 1820# Enable pthread option 1821 1822LOC_CHECK_USE(pthread,POSIX threads,USE_PTHREAD) 1823 1824PTHREADINCPATH= 1825PTHREADLIBPATH= 1826PTHREADLIB= 1827 1828if test -n "$USE_PTHREAD"; then 1829 1830# With pthread includes directory 1831 1832LOC_CHECK_INC_PATH(pthread,POSIX threads,PTHREADINCPATH) 1833 1834LOC_CHECK_INCLUDES(pthread.h,POSIX threads,$PTHREADINCPATH) 1835 1836# With pthread library directory 1837 1838LOC_CHECK_LIB_PATH(pthread,POSIX threads,PTHREADLIBPATH) 1839 1840LOC_CHECK_FUNC(pthread_create,POSIX threads functions,PTHREADLIB,,,,,[ 1841LOC_CHECK_LIBS(pthread,pthread_create,POSIX threads,$PTHREADLIBPATH,PTHREADLIB,,,) 1842]) 1843 1844fi # $USE_PTHREAD 1845 1846AC_SUBST(PTHREADINCPATH) 1847AC_SUBST(PTHREADLIBPATH) 1848AC_SUBST(PTHREADLIB) 1849AC_SUBST(USE_PTHREAD) 1850 1851# Done checking pthread 1852 1853# Enable OpenMP option 1854 1855LOC_CHECK_USE(openmp,OpenMP,USE_OPENMP) 1856 1857OMPINCPATH= 1858OMPLIBPATH= 1859OMPLIB= 1860OMPCFLAGS= 1861 1862if test -n "$USE_OPENMP"; then 1863 1864# With OpenMP includes directory 1865 1866LOC_CHECK_INC_PATH(openmp,OpenMP,OMPINCPATH) 1867 1868LOC_CHECK_INCLUDES(omp.h,OpenMP,$OMPINCPATH) 1869 1870# With OpenMP library directory 1871# GCC et al.: -lgomp 1872# Solaris cc: -lmtsk 1873# AIX xlc: -lxlsmp 1874# SGI IRIX 6.5 MIPSpro C/C++: -lmp 1875 1876LOC_CHECK_LIB_PATH(openmp,OpenMP,OMPLIBPATH) 1877 1878LOC_CHECK_FUNC(GOMP_parallel_start,OpenMP functions,OMPLIB,,,,,[ 1879LOC_CHECK_LIBS(gomp,GOMP_parallel_start,OpenMP,$OMPLIBPATH,OMPLIB,,,) 1880]) 1881 1882# compiler dependent 1883#if test ${CC} = "gcc" ; then 1884if test x$GCC = xyes ; then 1885 # GNU C compiler (>= 4.2.1) 1886 OMPCFLAGS=-fopenmp 1887elif test ${CC} = "icc" ; then 1888 # Intel compiler 1889 OMPCFLAGS=-openmp 1890elif test ${CC} = "opencc" ; then 1891 # AMD's x86 Open64 compiler 1892 OMPCFLAGS=-mp 1893elif test ${CC} = "pgcc" ; then 1894 # Portland Group's compiler 1895 OMPCFLAGS=-mp 1896# ... anybody else? 1897fi 1898 1899# try to build a test program with "$CC $OMPCLFAGS" to confirm it works 1900#...how? 1901#echo "int main() {return 0;}" > test.c 1902#$CC $OMPCLFAGS test.c -o test 1903 1904fi # $USE_OPENMP 1905 1906AC_SUBST(OMPINCPATH) 1907AC_SUBST(OMPLIBPATH) 1908AC_SUBST(OMPLIB) 1909AC_SUBST(OMPCFLAGS) 1910AC_SUBST(USE_OPENMP) 1911 1912# Done checking OpenMP 1913 1914# Enable OpenCL option 1915 1916LOC_CHECK_USE(opencl,OpenCL,USE_OPENCL) 1917 1918OCLINCPATH= 1919OCLLIBPATH= 1920OCLLIB= 1921 1922if test -n "$USE_OPENCL"; then 1923 1924# With OpenCL includes directory 1925 1926LOC_CHECK_INC_PATH(opencl,OpenCL,OCLINCPATH) 1927 1928if test -n "$MACOSX_APP" ; then 1929 LOC_CHECK_INCLUDES(OpenCL/opencl.h,OpenCL,$OCLINCPATH) 1930 1931 # With OpenCL library directory 1932 ### FIXME: ### 1933 #LOC_CHECK_FRAMEWORK_PATH(opencl,OpenCL,OPENCLPATH) 1934 # last term in following would become ',$OPENCLPATH)' if above is uncommented 1935 LOC_CHECK_FUNC(clGetPlatformInfo,OpenCL library,OCLLIB,-framework OpenCL,) 1936else 1937 LOC_CHECK_INCLUDES(CL/cl.h,OpenCL,$OCLINCPATH) 1938 1939 # With OpenCL library directory 1940 LOC_CHECK_LIB_PATH(opencl,OpenCL,OCLLIBPATH) 1941 LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCL,$OCLLIBPATH,OCLLIB,,,) 1942 # expanded symbol check: yes? no? 1943 #LOC_CHECK_FUNC(clGetPlatformInfo,OpenCL functions,OCLLIB,,,,,[ 1944 #LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCL,$OCLLIBPATH,OCLLIB,,,) 1945 #]) 1946fi 1947 1948fi # $USE_OPENCL 1949 1950AC_SUBST(OCLINCPATH) 1951AC_SUBST(OCLLIBPATH) 1952AC_SUBST(OCLLIB) 1953AC_SUBST(USE_OPENCL) 1954 1955# Done checking OpenCL 1956 1957# Enable LFS (from cdr-tools, tar, and autoconf 2.68) 1958dnl Check for large file support 1959dnl Do this last to make sure that no large file definition 1960dnl in confdefs.h will modify our results 1961AC_SYS_LARGEFILE 1962ac_save_cflags=${CFLAGS} 1963CFLAGS="$LFS_CFLAGS ${ac_save_cflags}" 1964dnl Warning do not run this test. it interferes with the test 1965dnl AC_CHECK_FUNCS(fseeko ftello) from above. 1966dnl The test AC_HAVE_LARGEFILES will check whether ftello/fseeko 1967dnl are available in Large File mode 1968AC_FUNC_FSEEKO 1969AC_HAVE_LARGEFILES 1970CFLAGS=${ac_save_cflags} 1971# Done large file support 1972 1973USE_TERMIO= 1974AC_SUBST(USE_TERMIO) 1975 1976STRIPFLAG= 1977AC_SUBST(STRIPFLAG) 1978 1979GRASS_HOME="${DSTDIR}" 1980AC_SUBST(GRASS_HOME) 1981 1982AC_CONFIG_FILES([include/Make/Platform.make include/Make/Doxyfile_arch_html include/Make/Doxyfile_arch_latex include/version.h grass.pc]) 1983AC_OUTPUT 1984 1985LOC_MSG([Copying config.status to config.status.${ARCH}]) 1986cp -f config.status config.status.${ARCH} 1987 1988# Display configuration status 1989 1990LOC_MSG() 1991LOC_MSG([GRASS is now configured for: ${host}]) 1992LOC_MSG() 1993LOC_MSG([ Source directory: ${SRCDIR}]) 1994LOC_MSG([ Build directory: ${DSTDIR}]) 1995LOC_MSG([ Installation directory: ${INSTDIR}]) 1996LOC_MSG([ Startup script in directory:${bindir}]) 1997LOC_MSG([ C compiler: ${CC} ${CFLAGS}]) 1998LOC_MSG([ C++ compiler: ${CXX} ${CXXFLAGS}]) 1999LOC_MSG([ Building shared libraries: ${shared_ok}]) 2000LOC_MSG([ OpenGL platform: ${OPENGL_TYPE}]) 2001LOC_MSG() 2002LOC_MSG_USE(MacOSX application,MACOSX_APP) 2003LOC_MSG([ MacOSX architectures: ${MACOSX_ARCHS}]) 2004LOC_MSG([ MacOSX SDK: ${MACOSX_SDK}]) 2005LOC_MSG() 2006LOC_MSG_USE(BLAS support,USE_BLAS) 2007LOC_MSG_USE(BZIP2 support,USE_BZIP2) 2008LOC_MSG_USE(C++ support,USE_CXX) 2009LOC_MSG_USE(Cairo support,USE_CAIRO) 2010LOC_MSG_USE(DWG support,USE_OPENDWG) 2011LOC_MSG_USE(FFTW support,USE_FFTW) 2012LOC_MSG_USE(FreeType support,USE_FREETYPE) 2013LOC_MSG_USE(GDAL support,USE_GDAL) 2014LOC_MSG_USE(GEOS support,USE_GEOS) 2015LOC_MSG_USE(LAPACK support,USE_LAPACK) 2016LOC_MSG_USE(Large File support (LFS), USE_LARGEFILES) 2017LOC_MSG_USE(libLAS support,USE_LIBLAS) 2018LOC_MSG_USE(MySQL support,USE_MYSQL) 2019LOC_MSG_USE(NetCDF support,USE_NETCDF) 2020LOC_MSG_USE(NLS support,USE_NLS) 2021LOC_MSG_USE(ODBC support,USE_ODBC) 2022LOC_MSG_USE(OGR support,USE_OGR) 2023LOC_MSG_USE(OpenCL support,USE_OPENCL) 2024LOC_MSG_USE(OpenGL support,USE_OPENGL) 2025LOC_MSG_USE(OpenMP support,USE_OPENMP) 2026LOC_MSG_USE(PDAL support,USE_PDAL) 2027LOC_MSG_USE(PNG support,USE_PNG) 2028LOC_MSG_USE(POSIX thread support,USE_PTHREAD) 2029LOC_MSG_USE(PostgreSQL support,USE_POSTGRES) 2030LOC_MSG_USE(Readline support,USE_READLINE) 2031LOC_MSG_USE(Regex support,USE_REGEX) 2032LOC_MSG_USE(SQLite support,USE_SQLITE) 2033LOC_MSG_USE(TIFF support,USE_TIFF) 2034LOC_MSG_USE(X11 support,USE_X11) 2035LOC_MSG_USE(Zstandard support,USE_ZSTD) 2036LOC_MSG() 2037# remove when the new PROJ API is stable 2038if test $PROJ4API = 0 ; then 2039AC_MSG_RESULT([ using new PROJ 5+ API]) 2040else 2041AC_MSG_RESULT([ using old PROJ 4 API]) 2042fi 2043LOC_MSG() 2044