configure.in 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974
  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. # PURPOSE: This configure runs all the tests to determine what components
  9. # are installed on the current system. It also defines certain
  10. # configuration variables for compilation and installation.
  11. # COPYRIGHT: (C) 2000-2009, 2011-2012 by the GRASS Development Team
  12. #
  13. # This program is free software under the GNU General
  14. # Public License (>=v2). Read the file COPYING that
  15. # comes with GRASS for details.
  16. #
  17. # MANUAL: http://www.gnu.org/software/autoconf/manual/autoconf.html
  18. # http://savannah.gnu.org/projects/autoconf/
  19. # Website for config.guess, config.sub:
  20. # wget http://git.savannah.gnu.org/cgit/config.git/plain/config.guess
  21. # wget http://git.savannah.gnu.org/cgit/config.git/plain/config.sub
  22. # Note: use autoconf-2.13
  23. #############################################################################
  24. define([AC_CACHE_LOAD], )
  25. define([AC_CACHE_SAVE], )
  26. define([AC_CACHE_VAL], [
  27. $2
  28. ])
  29. AC_INIT(configure.in)
  30. AC_PREREQ(2.13)
  31. AC_PREFIX_DEFAULT(/usr/local)
  32. AC_CONFIG_HEADER(include/config.h)
  33. AC_CANONICAL_HOST
  34. AC_PROG_CC
  35. LOC_EXEEXT
  36. AC_SUBST(MINGW32)
  37. # Check for full floating-point support, including Infinity and NaN
  38. IEEEFLAG=
  39. LOC_CHECK_FP_INF_NAN([],
  40. [],
  41. [ ac_save_cflags=${CFLAGS}
  42. CFLAGS=-mieee
  43. LOC_CHECK_FP_INF_NAN([ with -mieee],
  44. [IEEEFLAG="-mieee"],
  45. [AC_MSG_WARN([*** Incomplete floating-point support.])],
  46. [AC_MSG_ERROR([*** INTERNAL CONFIGURE ERROR])])
  47. CFLAGS=${ac_save_cflags}],
  48. [ LOC_CHECK_CC_MIEEE ])
  49. CFLAGS="$CFLAGS $IEEEFLAG"
  50. # Set BINDIR
  51. if test -n "${bindir}"; then
  52. BINDIR="${bindir}"
  53. else
  54. BINDIR=/usr/local/bin
  55. fi
  56. AC_SUBST(BINDIR)
  57. # Set SRCDIR and DSTDIR
  58. AC_PATH_PROG(pwd, pwd, pwd)
  59. if test "$MINGW32" = yes ; then
  60. winpwd="$pwd -W"
  61. else
  62. winpwd="$pwd"
  63. fi
  64. AC_MSG_CHECKING(for source directory)
  65. if test -z "$srcdir" ; then
  66. SRCDIR=`$pwd`
  67. else
  68. SRCDIR=`(cd "$srcdir" ; $pwd)`
  69. fi
  70. AC_MSG_RESULT("$SRCDIR")
  71. AC_MSG_CHECKING(for build directory)
  72. DSTDIR=`$pwd`
  73. WINDSTDIR=`$winpwd`
  74. AC_MSG_RESULT("$DSTDIR")
  75. AC_SUBST(SRCDIR)
  76. AC_SUBST(DSTDIR)
  77. # Set ARCH
  78. ARCH=
  79. if test -z "${host}"; then
  80. ARCH="unknown"
  81. else
  82. ARCH="${host}"
  83. fi
  84. AC_SUBST(ARCH)
  85. # Use absolute path for aux directory so that install-sh works
  86. AC_CONFIG_AUX_DIR("$SRCDIR")
  87. # Set GISBASE and GRASS_BIN
  88. GISBASE="${WINDSTDIR}/dist.${ARCH}"
  89. GRASS_BIN="${DSTDIR}/bin.${ARCH}"
  90. AC_SUBST(GISBASE)
  91. AC_SUBST(GRASS_BIN)
  92. # Set GRASS_VERSION_*
  93. GRASS_VERSION_FILE=include/VERSION
  94. GRASS_VERSION_MAJOR=`sed -n 1p "${GRASS_VERSION_FILE}"`
  95. GRASS_VERSION_MINOR=`sed -n 2p "${GRASS_VERSION_FILE}"`
  96. GRASS_VERSION_RELEASE=`sed -n 3p "${GRASS_VERSION_FILE}"`
  97. GRASS_VERSION_DATE=`sed -n 4p "${GRASS_VERSION_FILE}"`
  98. GRASS_VERSION_NUMBER=`echo ${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.${GRASS_VERSION_RELEASE}`
  99. NAME_VER=`echo ${GRASS_VERSION_NUMBER} | sed 's/\..*//'`
  100. changequote(,)
  101. LIB_VER=`echo ${GRASS_VERSION_NUMBER} | sed 's/^\([0-9.]*\).*$/\1/'`
  102. changequote([,])
  103. GRASS_VERSION_SVN=
  104. AC_PATH_PROG(SVN_VERSION, svnversion, no)
  105. if test "$SVN_VERSION" != "no" ; then
  106. GRASS_VERSION_SVN=`$SVN_VERSION -c | cut -f2 -d:`
  107. if test "$GRASS_VERSION_SVN" = "exported" -o "$GRASS_VERSION_SVN" = "Unversioned directory" ; then
  108. GRASS_VERSION_SVN=
  109. fi
  110. fi
  111. AC_SUBST(GRASS_VERSION_FILE)
  112. AC_SUBST(GRASS_VERSION_MAJOR)
  113. AC_SUBST(GRASS_VERSION_MINOR)
  114. AC_SUBST(GRASS_VERSION_RELEASE)
  115. AC_SUBST(GRASS_VERSION_NUMBER)
  116. AC_SUBST(GRASS_VERSION_DATE)
  117. AC_SUBST(GRASS_VERSION_SVN)
  118. AC_SUBST(NAME_VER)
  119. AC_SUBST(LIB_VER)
  120. # Check for MacOSX App
  121. AC_ARG_ENABLE(macosx-app,
  122. [ --enable-macosx-app create a MacOSX application],,
  123. [enable_macosx_app=no])
  124. AC_MSG_CHECKING(for MacOSX App)
  125. case "$enable_macosx_app" in
  126. yes) MACOSX_APP=1 ;;
  127. no) MACOSX_APP= ;;
  128. *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
  129. esac
  130. AC_MSG_RESULT("$enable_macosx_app")
  131. AC_SUBST(MACOSX_APP)
  132. # Check for MacOSX archs
  133. AC_MSG_CHECKING(for MacOSX architectures)
  134. MACOSX_ARCHS=
  135. if test -z "$with_macosx_archs" ; then
  136. AC_MSG_RESULT(no)
  137. else
  138. for a in $with_macosx_archs
  139. do
  140. # check if valid arch?
  141. case "$a" in
  142. i386|ppc|x86_64|ppc64)
  143. MACOSX_ARCHS="$MACOSX_ARCHS -arch $a"
  144. ;;
  145. esac
  146. done
  147. AC_MSG_RESULT([$MACOSX_ARCHS])
  148. LDFLAGS="$LDFLAGS $MACOSX_ARCHS"
  149. CFLAGS="$CFLAGS $MACOSX_ARCHS"
  150. CXXFLAGS="$CXXFLAGS $MACOSX_ARCHS"
  151. fi
  152. AC_SUBST(MACOSX_ARCHS)
  153. # Done checking MacOSX archs
  154. # Check for MacOSX SDK
  155. AC_MSG_CHECKING(for MacOSX SDK)
  156. MACOSX_SDK=
  157. if test -z "$with_macosx_sdk" ; then
  158. AC_MSG_RESULT(no)
  159. else
  160. AC_CHECK_FILE($with_macosx_sdk/SDKSettings.plist, [
  161. MACOSX_SDK="-isysroot $with_macosx_sdk"],[
  162. AC_MSG_ERROR([*** specified SDK does not exist or is not a SDK])])
  163. LDFLAGS="$LDFLAGS $MACOSX_SDK"
  164. CFLAGS="$CFLAGS $MACOSX_SDK"
  165. CXXFLAGS="$CXXFLAGS $MACOSX_SDK"
  166. fi
  167. AC_SUBST(MACOSX_SDK)
  168. # Done checking MacOSX SDK
  169. # Set INST_DIR
  170. if test -n "$MACOSX_APP" ; then
  171. INSTDIR='${prefix}'"/GRASS-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.app/Contents/MacOS"
  172. else
  173. INSTDIR='${prefix}'"/grass-${GRASS_VERSION_MAJOR}.${GRASS_VERSION_MINOR}.${GRASS_VERSION_RELEASE}"
  174. fi
  175. AC_SUBST(INSTDIR)
  176. # Get flags for building shared libraries
  177. SC_ENABLE_SHARED
  178. ac_save_ldflags="$LDFLAGS"
  179. SC_CONFIG_CFLAGS
  180. LDFLAGS="${ac_save_ldflags} $LDFLAGS"
  181. # Enable options
  182. AC_ARG_ENABLE(w11,
  183. [ --enable-w11 use W11 library for Windows X11 emulation],,
  184. [enable_w11=no])
  185. # With options
  186. LOC_ARG_WITH(cxx, C++)
  187. #LOC_ARG_WITH(g77, GNU Fortran 77, no)
  188. AC_ARG_WITH(macosx-archs,
  189. [ --with-macosx-archs[=arch list]
  190. compile multiple architectures on MacOSX, ie.
  191. universal. Valid architectures are i386, ppc,
  192. x86_64 and ppc64. (default: no [native])],, with_macosx_archs="no")
  193. AC_ARG_WITH(macosx-sdk,
  194. [ --with-macosx-sdk[=path/sdk]
  195. compile with a system SDK on MacOSX. (default: no)],, with_macosx_sdk="no")
  196. LOC_ARG_WITH(tiff, TIFF)
  197. LOC_ARG_WITH(png, PNG)
  198. LOC_ARG_WITH(postgres, PostgreSQL, no)
  199. LOC_ARG_WITH(mysql, MySQL, no)
  200. LOC_ARG_WITH(sqlite, SQLite, no)
  201. LOC_ARG_WITH(ffmpeg, FFMPEG, no)
  202. LOC_ARG_WITH(opengl, OpenGL)
  203. LOC_ARG_WITH(odbc, ODBC, no)
  204. LOC_ARG_WITH(fftw, FFTW)
  205. LOC_ARG_WITH(blas, BLAS, no)
  206. LOC_ARG_WITH(lapack, LAPACK, no)
  207. LOC_ARG_WITH(cairo, Cairo)
  208. LOC_ARG_WITH(freetype, FreeType)
  209. LOC_ARG_WITH(nls, NLS, no)
  210. LOC_ARG_WITH(readline, Readline, no)
  211. LOC_ARG_WITH(opendwg, openDWG, no)
  212. LOC_ARG_WITH(regex, regex)
  213. LOC_ARG_WITH(pthread, POSIX threads, no)
  214. LOC_ARG_WITH(openmp, OpenMP, no)
  215. LOC_ARG_WITH(opencl, OpenCL, no)
  216. AC_ARG_WITH(gdal,
  217. [ --with-gdal[=path/gdal-config]
  218. enable GDAL/OGR support (gdal-config with path,
  219. e.g. '--with-gdal=/usr/local/bin/gdal-config')])
  220. AC_ARG_WITH(liblas,
  221. [ --with-liblas[=path/liblas-config]
  222. enable libLAS support (liblas-config with path,
  223. e.g. '--with-liblas=/usr/local/bin/liblas-config',
  224. default: no)],, with_liblas="no")
  225. AC_ARG_WITH(wxwidgets,
  226. [ --with-wxwidgets[=path/wx-config]
  227. enable wxWidgets support (wx-config with path,
  228. e.g. '--with-wxwidgets=/usr/local/bin/wx-config',
  229. default: no)],, with_wxwidgets="no")
  230. AC_ARG_WITH(netcdf,
  231. [ --with-netcdf[=path/nc-config]
  232. enable NetCDF support (nc-config with path,
  233. e.g. '--with-nc=/usr/local/bin/nc-config',
  234. default: no)],, with_netcdf="no")
  235. # With includes and libs options
  236. AC_ARG_WITH(geos,
  237. [ --with-geos[=path/geos-config]
  238. enable GEOS support (geos-config with path,
  239. e.g. '--with-geos=/usr/local/bin/geos-config',
  240. default: no)],, with_geos="no")
  241. AC_ARG_WITH(includes,
  242. [ --with-includes=DIRS site include files are in DIRS])
  243. AC_ARG_WITH(libs,
  244. [ --with-libs=DIRS site library files are in DIRS])
  245. LOC_ARG_WITH_INC(zlib, zlib)
  246. LOC_ARG_WITH_LIB(zlib, zlib)
  247. LOC_ARG_WITH_INC(readline, Readline)
  248. LOC_ARG_WITH_LIB(readline, Readline)
  249. LOC_ARG_WITH_INC(tiff, TIFF)
  250. LOC_ARG_WITH_LIB(tiff, TIFF)
  251. LOC_ARG_WITH_INC(png, PNG)
  252. LOC_ARG_WITH_LIB(png, PNG)
  253. LOC_ARG_WITH_INC(postgres, PostgreSQL)
  254. LOC_ARG_WITH_LIB(postgres, PostgreSQL)
  255. LOC_ARG_WITH_INC(mysql, MySQL)
  256. LOC_ARG_WITH_LIB(mysql, MySQL)
  257. LOC_ARG_WITH_INC(sqlite, SQLite)
  258. LOC_ARG_WITH_LIB(sqlite, SQLite)
  259. LOC_ARG_WITH_INC(ffmpeg, FFMPEG)
  260. LOC_ARG_WITH_LIB(ffmpeg, FFMPEG)
  261. LOC_ARG_WITH_INC(opengl, OpenGL)
  262. LOC_ARG_WITH_LIB(opengl, OpenGL)
  263. LOC_ARG_WITH_FRAMEWORK(opengl, OpenGL)
  264. LOC_ARG_WITH_INC(odbc, ODBC)
  265. LOC_ARG_WITH_LIB(odbc, ODBC)
  266. LOC_ARG_WITH_INC(fftw, FFTW)
  267. LOC_ARG_WITH_LIB(fftw, FFTW)
  268. LOC_ARG_WITH_INC(blas, BLAS)
  269. LOC_ARG_WITH_LIB(blas, BLAS)
  270. LOC_ARG_WITH_INC(lapack, LAPACK)
  271. LOC_ARG_WITH_LIB(lapack, LAPACK)
  272. LOC_ARG_WITH_INC(cairo, cairo)
  273. LOC_ARG_WITH_LIB(cairo, cairo)
  274. LOC_ARG_WITH_LDFLAGS(cairo, cairo)
  275. LOC_ARG_WITH_INC(freetype, FreeType)
  276. LOC_ARG_WITH_LIB(freetype, FreeType)
  277. LOC_ARG_WITH_INC(proj, External PROJ.4)
  278. LOC_ARG_WITH_LIB(proj, External PROJ.4)
  279. LOC_ARG_WITH_SHARE(proj, External PROJ.4)
  280. LOC_ARG_WITH_INC(opendwg, openDWG)
  281. LOC_ARG_WITH_LIB(opendwg, openDWG)
  282. LOC_ARG_WITH_INC(regex, regex)
  283. LOC_ARG_WITH_LIB(regex, regex)
  284. LOC_ARG_WITH_INC(pthread, POSIX threads)
  285. LOC_ARG_WITH_LIB(pthread, POSIX threads)
  286. LOC_ARG_WITH_INC(openmp, OpenMP)
  287. LOC_ARG_WITH_LIB(openmp, OpenMP)
  288. LOC_ARG_WITH_INC(opencl, OpenCL)
  289. LOC_ARG_WITH_LIB(opencl, OpenCL)
  290. #LOC_ARG_WITH_FRAMEWORK(opencl, OpenCL)
  291. # Put this early on so CPPFLAGS and LDFLAGS have any additional dirs
  292. # With includes option
  293. # Handle Fortran compiler choice
  294. #LOC_CHECK_USE(g77, GNU Fortran 77, USE_G77)
  295. # Done checking fortran
  296. AC_MSG_CHECKING(for additional include dirs)
  297. case "$with_includes" in
  298. y | ye | yes | n | no)
  299. AC_MSG_ERROR([*** You must supply a directory to list --with-includes.])
  300. ;;
  301. esac
  302. AC_MSG_RESULT($with_includes)
  303. if test -n "$with_includes"; then
  304. for dir in $with_includes; do
  305. if test -d "$dir"; then
  306. INCLUDE_DIRS="$INCLUDE_DIRS -I$dir"
  307. else
  308. AC_MSG_ERROR([*** Include directory $dir does not exist.])
  309. fi
  310. done
  311. CPPFLAGS="$CPPFLAGS $INCLUDE_DIRS"
  312. fi
  313. AC_SUBST(INCLUDE_DIRS)
  314. # With libs option
  315. AC_MSG_CHECKING(for additional library dirs)
  316. case "$with_libs" in
  317. y | ye | yes | n | no)
  318. AC_MSG_ERROR([*** You must supply a directory list to --with-libs.])
  319. ;;
  320. esac
  321. AC_MSG_RESULT($with_libs)
  322. if test -n "$with_libs"; then
  323. for dir in $with_libs; do
  324. if test -d "$dir"; then
  325. LIBRARY_DIRS="$LIBRARY_DIRS -L$dir"
  326. else
  327. AC_MSG_ERROR([*** Library directory $dir does not exist.])
  328. fi
  329. done
  330. LDFLAGS="$LDFLAGS $LIBRARY_DIRS"
  331. fi
  332. AC_SUBST(LIBRARY_DIRS)
  333. # Programs and standard headers, libraries, functions
  334. AC_PROG_INSTALL
  335. AC_PROG_LEX
  336. if test "$LEX" = "lex"; then
  337. AC_PATH_PROG(LEXPATH, lex, no)
  338. if test "$LEXPATH" = "no"; then
  339. AC_MSG_ERROR([*** Unable to locate lex.])
  340. fi
  341. fi
  342. AC_PROG_YACC
  343. if test "$YACC" = "yacc"; then
  344. AC_PATH_PROG(YACCPATH, yacc, no)
  345. if test "$YACCPATH" = "no"; then
  346. AC_MSG_ERROR([*** Unable to locate yacc.])
  347. fi
  348. fi
  349. AC_PROG_RANLIB
  350. AC_CHECK_PROGS(AR, ar)
  351. AC_CHECK_PROGS(ENV, env)
  352. AC_PATH_PROG(PERL, perl, no)
  353. AC_HEADER_STDC
  354. #AC_CHECK_HEADERS(curses.h limits.h termio.h termios.h unistd.h values.h)
  355. AC_CHECK_HEADERS(limits.h termio.h termios.h unistd.h values.h f2c.h g2c.h)
  356. AC_CHECK_HEADERS(sys/ioctl.h sys/mtio.h sys/resource.h sys/time.h)
  357. AC_CHECK_HEADERS(sys/timeb.h sys/types.h sys/utsname.h)
  358. AC_CHECK_HEADERS(libintl.h iconv.h)
  359. AC_CHECK_HEADERS(langinfo.h)
  360. AC_HEADER_TIME
  361. AC_TYPE_OFF_T
  362. AC_TYPE_UID_T
  363. AC_TYPE_SIGNAL
  364. AC_CYGWIN
  365. AC_CHECK_FUNCS(ftime gethostname gettimeofday lseek nice time uname)
  366. AC_CHECK_FUNCS(seteuid setpriority setreuid setruid)
  367. AC_CHECK_FUNCS(drand48)
  368. AC_CHECK_FUNCS(putenv setenv)
  369. AC_CHECK_FUNCS(nanosleep)
  370. if test "$cross_compiling" != "yes" ; then
  371. AC_FUNC_SETPGRP
  372. else
  373. CROSS_COMPILING=1
  374. AC_SUBST(CROSS_COMPILING)
  375. fi
  376. AC_MSG_CHECKING(for long long int)
  377. AC_TRY_COMPILE(,[long long int x;],[
  378. AC_MSG_RESULT(yes)
  379. AC_DEFINE(HAVE_LONG_LONG_INT)
  380. ],[
  381. AC_MSG_RESULT(no)
  382. ])
  383. AC_MSG_CHECKING(for W11)
  384. case "$enable_w11" in
  385. yes|no) AC_MSG_RESULT("$enable_w11") ;;
  386. *) AC_MSG_ERROR([*** You must answer yes or no.]) ;;
  387. esac
  388. USE_X11=
  389. USE_W11=
  390. XLIB=
  391. XTLIB=
  392. if test "$enable_w11" = "yes" ; then
  393. X_CFLAGS=-I${SRCDIR}/display/drivers/windows/libW11
  394. X_LIBS='-L$(LIBDIR)'
  395. AC_SUBST(X_CFLAGS)
  396. AC_SUBST(X_LIBS)
  397. USE_W11="1"
  398. USE_X11="1"
  399. XLIB=-lX11
  400. CFLAGS="$CFLAGS -D__W98__"
  401. else
  402. AC_PATH_XTRA
  403. if test "$no_x" != "yes"; then
  404. USE_X11="1"
  405. XLIB=-lX11
  406. XTLIB=-lXt
  407. fi
  408. fi
  409. AC_SUBST(XLIB)
  410. AC_SUBST(XTLIB)
  411. AC_SUBST(USE_X11)
  412. # Note that some systems (FreeBSD for example) need an extra library for
  413. # cuserid
  414. ac_save_libs="$LIBS"
  415. LIBS=""
  416. AC_SEARCH_LIBS(cuserid,[compat])
  417. DBMIEXTRALIB="$LIBS"
  418. LIBS="$ac_save_libs"
  419. AC_SUBST(DBMIEXTRALIB)
  420. AC_CHECK_FUNCS(asprintf)
  421. AC_SUBST(HAVE_ASPRINTF)
  422. # Test if mathlib needs -lm flag or is included with libc
  423. AC_CHECK_FUNC(atan, MATHLIB=, [
  424. AC_CHECK_LIB(m, atan, MATHLIB=-lm, [
  425. AC_MSG_ERROR([*** Failed check for math library.])
  426. ])])
  427. AC_SUBST(MATHLIB)
  428. AC_CHECK_FUNC(dlsym, DLLIB=, [
  429. AC_CHECK_LIB(dl, dlsym, DLLIB=-ldl, [
  430. DLLIB=
  431. ])])
  432. AC_SUBST(DLLIB)
  433. AC_CHECK_FUNC(iconv, ICONVLIB=, [
  434. AC_CHECK_LIB(iconv, iconv, ICONVLIB=-liconv, [
  435. AC_CHECK_LIB(giconv, iconv, ICONVLIB=-lgiconv, [
  436. AC_CHECK_FUNC(libiconv, ICONVLIB=, [
  437. AC_CHECK_LIB(iconv, libiconv, ICONVLIB=-liconv, [
  438. AC_CHECK_LIB(giconv, libiconv, ICONVLIB=-lgiconv, [
  439. AC_MSG_WARN([*** Unable to locate iconv() function.])
  440. ICONVLIB=
  441. ])])])])])])
  442. AC_SUBST(ICONVLIB)
  443. have_socket=1
  444. AC_CHECK_FUNC(socket, SOCKLIB=, [
  445. AC_CHECK_LIB(socket, socket, SOCKLIB=-lsocket, [
  446. have_socket=0
  447. AC_MSG_WARN([*** Unable to locate socket() function.])
  448. ])])
  449. AC_SUBST(SOCKLIB)
  450. if test "$have_socket" = 1 ; then
  451. HAVE_SOCKET=1
  452. AC_DEFINE(HAVE_SOCKET)
  453. else
  454. HAVE_SOCKET=
  455. fi
  456. AC_SUBST(HAVE_SOCKET)
  457. # Mandatory zlib dependency
  458. ZLIBLIBPATH=
  459. ZLIBINCPATH=
  460. ZLIB=
  461. # With zlib includes directory
  462. LOC_CHECK_INC_PATH(zlib,zlib,ZLIBINCPATH)
  463. LOC_CHECK_INCLUDES(zlib.h,zlib,$ZLIBINCPATH)
  464. # With zlib library directory
  465. LOC_CHECK_LIB_PATH(zlib,zlib,ZLIBLIBPATH)
  466. LOC_CHECK_LIBS(z,deflate,zlib,$ZLIBLIBPATH,ZLIB,,,)
  467. #
  468. AC_SUBST(ZLIBINCPATH)
  469. AC_SUBST(ZLIBLIBPATH)
  470. AC_SUBST(ZLIB)
  471. # Done checking zlib
  472. # Mandatory PROJ dependency
  473. PROJINC=
  474. PROJLIB=
  475. PROJSHARE=
  476. # With PROJ includes directory
  477. LOC_CHECK_INC_PATH(proj,External PROJ.4,PROJINC)
  478. LOC_CHECK_INCLUDES(proj_api.h,External PROJ.4,$PROJINC)
  479. # PROJ version check
  480. if test "$cross_compiling" = yes; then
  481. AC_MSG_WARN([*** Cannot check PROJ.4 version (cross-compiling).])
  482. else
  483. LOC_CHECK_VERSION_INT(proj_api.h,PJ_VERSION,External PROJ.4,proj_ver,$PROJINC,0)
  484. if test `expr "$proj_ver" \< 446` = 1 ; then
  485. AC_MSG_ERROR([*** PROJ.4.4.6 or later is required.])
  486. fi
  487. fi
  488. # With PROJ library directory
  489. LOC_CHECK_LIB_PATH(proj,External PROJ.4,PROJLIB)
  490. LOC_CHECK_LIBS(proj,pj_get_def,External PROJ.4,$PROJLIB,PROJLIB,,,)
  491. # With PROJ share directory
  492. LOC_CHECK_SHARE_PATH(proj,External PROJ.4,PROJSHARE)
  493. if test -z "$PROJSHARE" ; then
  494. AC_MSG_WARN([*** External PROJ.4 directory not specified; default will be used])
  495. PROJSHARE=/usr/local/share/proj
  496. fi
  497. # LOC_CHECK_SHARE does not work when cross compiling
  498. if test "$cross_compiling" = "yes" ; then
  499. AC_MSG_CHECKING([for epsg])
  500. AC_MSG_RESULT([unknown (cross-compiling)])
  501. else
  502. LOC_CHECK_SHARE(epsg,External PROJ.4,$PROJSHARE,[
  503. AC_MSG_WARN([*** Unable to locate PROJ data files.])
  504. ])
  505. fi
  506. AC_SUBST(PROJINC)
  507. AC_SUBST(PROJLIB)
  508. AC_SUBST(PROJSHARE)
  509. # nad2bin needs to be in path for installing datum gridshift files
  510. AC_PATH_PROG(NAD2BIN, nad2bin, no)
  511. if test "$NAD2BIN" = "no"; then
  512. AC_MSG_ERROR([*** Unable to locate nad2bin (needs to be in PATH).])
  513. fi
  514. # Done checking PROJ
  515. # Enable regex option
  516. LOC_CHECK_USE(regex,regex,USE_REGEX)
  517. REGEXINCPATH=
  518. REGEXLIBPATH=
  519. REGEXLIB=
  520. if test -n "$USE_REGEX"; then
  521. # With regex includes directory
  522. LOC_CHECK_INC_PATH(regex,regex,REGEXINCPATH)
  523. LOC_CHECK_INCLUDES(regex.h,regex,$REGEXINCPATH)
  524. # With regex library directory
  525. LOC_CHECK_LIB_PATH(regex,regex,REGEXLIBPATH)
  526. LOC_CHECK_FUNC(regcomp,regex functions,REGEXLIB,,,,,[
  527. LOC_CHECK_LIBS(regex,regcomp,regex,$REGEXLIBPATH,REGEXLIB,,,)
  528. ])
  529. fi # $USE_REGEX
  530. AC_SUBST(REGEXINCPATH)
  531. AC_SUBST(REGEXLIBPATH)
  532. AC_SUBST(REGEXLIB)
  533. AC_SUBST(USE_REGEX)
  534. # Done checking regex
  535. # Enable Readline option
  536. LOC_CHECK_USE(readline,Readline,USE_READLINE)
  537. READLINEINCPATH=
  538. READLINELIBPATH=
  539. READLINELIB=
  540. HISTORYLIB=
  541. if test -n "$USE_READLINE"; then
  542. # With Readline includes directory
  543. LOC_CHECK_INC_PATH(readline,Readline,READLINEINCPATH)
  544. LOC_CHECK_INCLUDES(readline/readline.h,Readline,$READLINEINCPATH)
  545. LOC_CHECK_INCLUDES(readline/history.h,Readline,$READLINEINCPATH)
  546. # With Readline library directory
  547. LOC_CHECK_LIB_PATH(readline,Readline,READLINELIBPATH)
  548. LOC_CHECK_LIBS(readline,readline,Readline,$READLINELIBPATH,READLINELIB,,,)
  549. LOC_CHECK_LIBS(history,add_history,History,$READLINELIBPATH,HISTORYLIB,,,)
  550. fi # $USE_READLINE
  551. AC_SUBST(READLINEINCPATH)
  552. AC_SUBST(READLINELIBPATH)
  553. AC_SUBST(READLINELIB)
  554. AC_SUBST(HISTORYLIB)
  555. # Done checking Readline
  556. # GDAL option
  557. AC_MSG_CHECKING(whether to use GDAL)
  558. GDAL_LIBS=
  559. GDAL_CFLAGS=
  560. USE_GDAL=
  561. USE_OGR=
  562. if test "`basename xx/$with_gdal`" = "gdal-config" ; then
  563. GDAL_CONFIG="$with_gdal"
  564. fi
  565. if test "$with_gdal" = "no" ; then
  566. AC_MSG_RESULT(no)
  567. else
  568. AC_MSG_RESULT(yes)
  569. AC_PATH_PROG(GDAL_CONFIG, gdal-config, no)
  570. if test "$GDAL_CONFIG" = "no" ; then
  571. AC_MSG_ERROR([*** couldn't find gdal-config])
  572. fi
  573. if test "$GDAL_CONFIG" != "" ; then
  574. GDAL_LIBS=`"$GDAL_CONFIG" --libs`
  575. GDAL_DEP_LIBS=`"$GDAL_CONFIG" --dep-libs`
  576. GDAL_CFLAGS=`"$GDAL_CONFIG" --cflags`
  577. USE_GDAL=1
  578. if test `"$GDAL_CONFIG" --ogr-enabled` = "yes" ; then
  579. AC_DEFINE(HAVE_OGR)
  580. USE_OGR=1
  581. fi
  582. fi
  583. GDAL=
  584. ac_save_libs="$LIBS"
  585. ac_save_cflags="$CFLAGS"
  586. LIBS="$LIBS $GDAL_LIBS"
  587. CFLAGS="$CFLAGS $GDAL_CFLAGS"
  588. AC_TRY_LINK([#include <gdal.h>],[GDALOpen("foo", GA_ReadOnly);],,[
  589. LIBS="$LIBS $GDAL_DEP_LIBS"
  590. AC_TRY_LINK([#include <gdal.h>],[GDALOpen("foo", GA_ReadOnly);],GDAL_LIBS="$GDAL_LIBS $GDAL_DEP_LIBS",[
  591. AC_MSG_ERROR([*** Unable to locate GDAL library.])
  592. ])
  593. ])
  594. LIBS=${ac_save_libs}
  595. CFLAGS=${ac_save_cflags}
  596. AC_DEFINE(HAVE_GDAL)
  597. fi
  598. AC_SUBST(GDAL_LIBS)
  599. AC_SUBST(GDAL_CFLAGS)
  600. AC_SUBST(USE_GDAL)
  601. AC_SUBST(USE_OGR)
  602. # libLAS option
  603. AC_MSG_CHECKING(whether to use libLAS)
  604. LIBLAS_LIBS=
  605. LIBLAS_CFLAGS=
  606. USE_LIBLAS=
  607. if test "`basename xx/$with_liblas`" = "liblas-config" ; then
  608. LIBLAS_CONFIG="$with_liblas"
  609. fi
  610. if test "$with_liblas" = "no" ; then
  611. AC_MSG_RESULT(no)
  612. else
  613. AC_MSG_RESULT(yes)
  614. AC_PATH_PROG(LIBLAS_CONFIG, liblas-config, no)
  615. if test "$LIBLAS_CONFIG" = "no" ; then
  616. AC_MSG_ERROR([*** couldn't find liblas-config])
  617. fi
  618. if test "$LIBLAS_CONFIG" != "" ; then
  619. LIBLAS_LIBS=`"$LIBLAS_CONFIG" --libs`
  620. LIBLAS_CFLAGS=`"$LIBLAS_CONFIG" --cflags`
  621. LIBLAS_INC=`"$LIBLAS_CONFIG" --includes`
  622. USE_LIBLAS=1
  623. fi
  624. LIBLAS=
  625. ac_save_libs="$LIBS"
  626. ac_save_cflags="$CFLAGS"
  627. ac_save_cppflags="$CPPFLAGS"
  628. LIBS="$LIBS $LIBLAS_LIBS"
  629. CFLAGS="$CFLAGS $LIBLAS_CFLAGS"
  630. CPPFLAGS="$CPPFLAGS $LIBLAS_INC"
  631. AC_TRY_LINK([#include <liblas/capi/liblas.h>],[LASReader_Create("foo");],,[
  632. AC_TRY_LINK([#include <liblas/capi/liblas.h>],[LASReader_Create("foo");],LAS_LIBS="$LAS_LIBS",[
  633. AC_MSG_ERROR([*** Unable to locate libLAS library.])
  634. ])
  635. ])
  636. LIBS=${ac_save_libs}
  637. CFLAGS=${ac_save_cflags}
  638. CPPFLAGS=${ac_save_cppflags}
  639. AC_DEFINE(HAVE_LIBLAS)
  640. fi
  641. AC_SUBST(LIBLAS_LIBS)
  642. AC_SUBST(LIBLAS_CFLAGS)
  643. AC_SUBST(LIBLAS_INC)
  644. AC_SUBST(USE_LIBLAS)
  645. # NetCDF option
  646. AC_MSG_CHECKING(whether to use NetCDF)
  647. NETCDF_LIBS=
  648. NETCDF_CFLAGS=
  649. USE_NETCDF=
  650. if test "`basename xx/$with_netcdf`" = "nc-config" ; then
  651. NETCDF_CONFIG="$with_netcdf"
  652. fi
  653. if test "$with_netcdf" = "no" ; then
  654. AC_MSG_RESULT(no)
  655. else
  656. AC_MSG_RESULT(yes)
  657. AC_PATH_PROG(NETCDF_CONFIG, nc-config, no)
  658. if test "$NETCDF_CONFIG" = "no" ; then
  659. AC_MSG_ERROR([*** couldn't find nc-config])
  660. fi
  661. if test "$NETCDF_CONFIG" != "" ; then
  662. NETCDF_LIBS=`"$NETCDF_CONFIG" --libs`
  663. NETCDF_CFLAGS=`"$NETCDF_CONFIG" --cflags`
  664. USE_NETCDF=1
  665. fi
  666. NETCDF=
  667. ac_save_libs="$LIBS"
  668. ac_save_cflags="$CFLAGS"
  669. LIBS="$LIBS $NETCDF_LIBS"
  670. CFLAGS="$CFLAGS $NETCDF_CFLAGS"
  671. AC_TRY_LINK([#include <netcdf.h>],[nc_create("foo", NC_CLOBBER, NULL);],,[
  672. AC_TRY_LINK([#include <netcdf.h>],[nc_create("foo", NC_CLOBBER, NULL);],NETCDF_LIBS="$NETCDF_LIBS",[
  673. AC_MSG_ERROR([*** Unable to locate NetCDF library.])
  674. ])
  675. ])
  676. LIBS=${ac_save_libs}
  677. CFLAGS=${ac_save_cflags}
  678. AC_DEFINE(HAVE_NETCDF)
  679. fi
  680. AC_SUBST(NETCDF_LIBS)
  681. AC_SUBST(NETCDF_CFLAGS)
  682. AC_SUBST(USE_NETCDF)
  683. # GEOS option
  684. AC_MSG_CHECKING(whether to use GEOS)
  685. GEOS_LIBS=
  686. GEOS_CFLAGS=
  687. USE_GEOS=
  688. # FIXME: "quote" $with_geos ?
  689. if test "`basename xx/$with_geos`" = "geos-config" ; then
  690. GEOS_CONFIG="$with_geos"
  691. fi
  692. if test "$with_geos" = "no" ; then
  693. AC_MSG_RESULT(no)
  694. else
  695. AC_MSG_RESULT(yes)
  696. AC_PATH_PROG(GEOS_CONFIG, geos-config, no)
  697. if test "$GEOS_CONFIG" = "no" ; then
  698. AC_MSG_ERROR([*** couldn't find geos-config])
  699. fi
  700. if test "$GEOS_CONFIG" != "" ; then
  701. GEOS_LIBS=`"$GEOS_CONFIG" --libs`
  702. GEOS_CFLAGS=`"$GEOS_CONFIG" --cflags`
  703. USE_GEOS=1
  704. fi
  705. LOC_CHECK_INCLUDES(geos_c.h,GEOS,$GEOS_CFLAGS)
  706. ### 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
  707. # if test "$MINGW32" = yes ; then
  708. # LOC_CHECK_LIBS(geos_c_i,initGEOS,GEOS,$GEOS_LIBS,GEOS_LIBS)
  709. # else
  710. LOC_CHECK_LIBS(geos_c,initGEOS,GEOS,$GEOS_LIBS,GEOS_LIBS)
  711. # fi
  712. AC_DEFINE(HAVE_GEOS)
  713. fi
  714. AC_SUBST(GEOS_LIBS)
  715. AC_SUBST(GEOS_CFLAGS)
  716. AC_SUBST(USE_GEOS)
  717. # Enable TIFF option
  718. LOC_CHECK_USE(tiff,TIFF,USE_TIFF)
  719. TIFF_INCLUDE_DIRS=
  720. TIFF_LIBRARY_DIRS=
  721. TIFFLIB=
  722. if test -n "$USE_TIFF"; then
  723. # With TIFF includes directory
  724. LOC_CHECK_INC_PATH(tiff,TIFF,TIFF_INCLUDE_DIRS)
  725. LOC_CHECK_INCLUDES(tiffio.h,TIFF,$TIFF_INCLUDE_DIRS)
  726. # With TIFF library directory
  727. LOC_CHECK_LIB_PATH(tiff,TIFF,TIFF_LIBRARY_DIRS)
  728. LOC_CHECK_LIBS(tiff,TIFFOpen,TIFF,$TIFF_LIBRARY_DIRS,TIFFLIB,,,,-ljpeg,$ZLIB,$MATHLIB)
  729. fi # $USE_TIFF
  730. AC_SUBST(TIFF_INCLUDE_DIRS)
  731. AC_SUBST(TIFF_LIBRARY_DIRS)
  732. AC_SUBST(TIFFLIB)
  733. # Done checking TIFF
  734. # Enable PNG option
  735. LOC_CHECK_USE(png,PNG,USE_PNG)
  736. PNGINC=
  737. PNGLIB=
  738. if test -n "$USE_PNG"; then
  739. # With PNG includes directory
  740. LOC_CHECK_INC_PATH(png,PNG,PNGINC)
  741. LOC_CHECK_INCLUDES(png.h,PNG,$PNGINC)
  742. # With PNG library directory
  743. LOC_CHECK_LIB_PATH(png,PNG,PNGLIB)
  744. LOC_CHECK_LIBS(png,png_read_image,PNG,$PNGLIB,PNGLIB,,$ZLIB $MATHLIB,)
  745. fi # $USE_PNG
  746. AC_SUBST(PNGINC)
  747. AC_SUBST(PNGLIB)
  748. AC_SUBST(USE_PNG)
  749. # Done checking PNG
  750. # Enable PostgreSQL option
  751. LOC_CHECK_USE(postgres,PostgreSQL,USE_POSTGRES)
  752. if test -n "$USE_POSTGRES"; then
  753. AC_DEFINE(HAVE_POSTGRES)
  754. fi # $USE_POSTGRES
  755. PQINCPATH=
  756. PQLIBPATH=
  757. PQLIB=
  758. if test -n "$USE_POSTGRES"; then
  759. # With PostgreSQL includes directory
  760. LOC_CHECK_INC_PATH(postgres,PostgreSQL,PQINCPATH)
  761. LOC_CHECK_INCLUDES(libpq-fe.h,PostgreSQL,$PQINCPATH)
  762. fi # $USE_POSTGRES
  763. if test -n "$USE_POSTGRES"; then
  764. # With PostgreSQL library directory
  765. LOC_CHECK_LIB_PATH(postgres,PostgreSQL,PQLIBPATH)
  766. LOC_CHECK_LIBS(pq,PQsetdbLogin,PostgreSQL,$PQLIBPATH,PQLIB,,,,-lcrypt,-lssl -lcrypto)
  767. ac_save_ldflags="$LDFLAGS"
  768. LDFLAGS="$LDFLAGS $PQLIBPATH"
  769. AC_CHECK_LIB(pq,PQcmdTuples, [AC_DEFINE(HAVE_PQCMDTUPLES)], [
  770. AC_CHECK_LIB(pq,PQcmdTuples, [AC_DEFINE(HAVE_PQCMDTUPLES)], [
  771. ], -lcrypt)
  772. ])
  773. LDFLAGS="${ac_save_ldflags}"
  774. fi # $USE_POSTGRES
  775. AC_SUBST(USE_POSTGRES)
  776. AC_SUBST(PQINCPATH)
  777. AC_SUBST(PQLIBPATH)
  778. AC_SUBST(PQLIB)
  779. # Done checking PostgreSQL
  780. # Enable MySQL option
  781. LOC_CHECK_USE(mysql,MySQL,USE_MYSQL)
  782. MYSQLINCPATH=
  783. MYSQLLIBPATH=
  784. MYSQLLIB=
  785. if test -n "$USE_MYSQL"; then
  786. # With MySQL includes directory
  787. LOC_CHECK_INC_PATH(mysql,MySQL,MYSQLINCPATH)
  788. LOC_CHECK_INCLUDES(mysql.h,MySQL,$MYSQLINCPATH)
  789. fi # $USE_MYSQL
  790. if test -n "$USE_MYSQL"; then
  791. # With MySQL library directory
  792. LOC_CHECK_LIB_PATH(mysql,MySQL,MYSQLLIBPATH)
  793. LOC_CHECK_LIBS(mysqlclient,mysql_query,MySQL,$MYSQLLIBPATH,MYSQLLIB,,,,$ZLIB,$SOCKLIB,$MATHLIB)
  794. # Check for libmysqld (for embeded version of the driver)
  795. AC_PATH_PROG(MYSQLD_CONFIG, mysql_config, no)
  796. if test "$MYSQLD_CONFIG" = "no" ; then
  797. AC_MSG_ERROR([*** couldn't find mysql_config])
  798. fi
  799. if test "$MYSQLD_CONFIG" != "" ; then
  800. AC_LANG_SAVE
  801. AC_LANG_CPLUSPLUS
  802. ac_save_libs="$LIBS"
  803. MYSQLDLIB=`"$MYSQLD_CONFIG" --libmysqld-libs`
  804. LIBS="$MYSQLDLIB $LIBS"
  805. AC_CHECK_FUNC(mysql_server_init,,[MYSQLDLIB="";
  806. AC_MSG_WARN([libmysqld not found])] )
  807. LIBS=$ac_save_libs
  808. AC_LANG_C
  809. AC_LANG_RESTORE
  810. fi
  811. fi # $USE_MYSQL
  812. AC_SUBST(USE_MYSQL)
  813. AC_SUBST(MYSQLINCPATH)
  814. AC_SUBST(MYSQLLIBPATH)
  815. AC_SUBST(MYSQLLIB)
  816. AC_SUBST(MYSQLDLIB)
  817. # Done checking MySQL
  818. # Enable SQLite option
  819. LOC_CHECK_USE(sqlite,SQLite,USE_SQLITE)
  820. SQLITEINCPATH=
  821. SQLITELIBPATH=
  822. SQLITELIB=
  823. if test -n "$USE_SQLITE"; then
  824. # With SQLite includes directory
  825. LOC_CHECK_INC_PATH(sqlite,SQLite,SQLITEINCPATH)
  826. LOC_CHECK_INCLUDES(sqlite3.h,SQLite,$SQLITEINCPATH)
  827. AC_DEFINE(HAVE_SQLITE)
  828. fi # $USE_SQLITE
  829. if test -n "$USE_SQLITE"; then
  830. # With SQLite library directory
  831. LOC_CHECK_LIB_PATH(sqlite,SQLite,SQLITELIBPATH)
  832. LOC_CHECK_LIBS(sqlite3,sqlite3_open,SQLite,$SQLITELIBPATH,SQLITELIB,,,,$MATHLIB,$DLLIB)
  833. fi # $USE_SQLITE
  834. AC_SUBST(USE_SQLITE)
  835. AC_SUBST(SQLITEINCPATH)
  836. AC_SUBST(SQLITELIBPATH)
  837. AC_SUBST(SQLITELIB)
  838. # Done checking SQLite
  839. # Enable FFMPEG option
  840. LOC_CHECK_USE(ffmpeg, FFMPEG, USE_FFMPEG)
  841. FFMPEGINCPATH=
  842. FFMPEGLIBPATH=
  843. FFMPEGLIB=
  844. if test -n "$USE_FFMPEG"; then
  845. # With FFMPEG includes directory
  846. LOC_CHECK_INC_PATH(ffmpeg, FFMPEG, FFMPEGINCPATH)
  847. LOC_CHECK_INCLUDES(avcodec.h,FFMPEG,$FFMPEGINCPATH)
  848. LOC_CHECK_INCLUDES(avformat.h,FFMPEG,$FFMPEGINCPATH)
  849. LOC_CHECK_INCLUDES(swscale.h,FFMPEG,$FFMPEGINCPATH)
  850. AC_DEFINE(HAVE_FFMPEG)
  851. fi # $USE_FFMPEG
  852. if test -n "$USE_FFMPEG"; then
  853. # With FFMPEG library directory
  854. LOC_CHECK_LIB_PATH(ffmpeg, FFMPEG, FFMPEGLIBPATH)
  855. LOC_CHECK_LIBS(avutil, av_free, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB,,,,$MATHLIB)
  856. LOC_CHECK_LIBS(avcodec, avcodec_register, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
  857. LOC_CHECK_LIBS(avformat, avformat_alloc_context, FFMPEG, $FFMPEGLIBPATH, FFMPEGLIB, $FFMPEGLIB,,,$MATHLIB)
  858. fi # $USE_FFMPEG
  859. AC_SUBST(USE_FFMPEG)
  860. AC_SUBST(FFMPEGINCPATH)
  861. AC_SUBST(FFMPEGLIBPATH)
  862. AC_SUBST(FFMPEGLIB)
  863. # Done checking FFMPEG
  864. # Enable OpenGL option
  865. OPENGLINC=
  866. OPENGLLIB=
  867. OPENGLULIB=
  868. USE_OPENGL=
  869. OPENGL_X11=
  870. OPENGL_AQUA=
  871. OPENGL_WINDOWS=
  872. AC_MSG_CHECKING(whether to use OpenGL)
  873. AC_MSG_RESULT("$with_opengl")
  874. case "$with_opengl" in
  875. n|no)
  876. OPENGL_TYPE=none
  877. ;;
  878. y|yes|x|x11|glx)
  879. OPENGL_TYPE=X11
  880. USE_OPENGL=1
  881. OPENGL_X11=1
  882. ;;
  883. aqua|mac|osx|macosx|agl)
  884. OPENGL_TYPE=Aqua
  885. USE_OPENGL=1
  886. OPENGL_AQUA=1
  887. ;;
  888. win|windows|mswin|wgl)
  889. OPENGL_TYPE=Windows
  890. USE_OPENGL=1
  891. OPENGL_WINDOWS=1
  892. ;;
  893. *)
  894. AC_MSG_ERROR([*** Valid arguments for --with-opengl= are yes,no,x11,aqua,windows.])
  895. ;;
  896. esac
  897. if test -n "$USE_OPENGL" ; then
  898. if test "$OPENGL_X11" = 1 ; then
  899. # With OpenGL includes directory
  900. LOC_CHECK_INC_PATH(opengl,OpenGL,OPENGLINC)
  901. LOC_CHECK_INCLUDES(GL/gl.h GL/glu.h,OpenGL,$OPENGLINC $X_CFLAGS)
  902. # With OpenGL library directory
  903. LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH)
  904. LOC_CHECK_LIBS(GL,glBegin,OpenGL,$OPENGL_LIB_PATH,OPENGLLIB,$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lpthread,-lXext)
  905. LOC_CHECK_LIBS(GLU,gluBeginCurve,GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB $X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $MATHLIB,,,-lstdc++)
  906. OPENGLLIB="$OPENGL_LIB_PATH $OPENGLLIB"
  907. OPENGLULIB="$OPENGL_LIB_PATH $OPENGLULIB"
  908. LOC_CHECK_FUNC(glXCreatePbuffer,,,,,$OPENGLLIB,[AC_DEFINE(HAVE_PBUFFERS)])
  909. LOC_CHECK_FUNC(glXCreateGLXPixmap,,,,,$OPENGLLIB,[AC_DEFINE(HAVE_PIXMAPS)])
  910. AC_DEFINE(OPENGL_X11)
  911. fi # $OPENGL_X11
  912. if test "$OPENGL_AQUA" = 1 ; then
  913. LOC_CHECK_FRAMEWORK_PATH(opengl,OpenGL,OPENGLPATH)
  914. LOC_CHECK_INCLUDES(OpenGL/gl.h OpenGL/glu.h,OpenGL,$OPENGLPATH)
  915. LOC_CHECK_FUNC(glBegin,OpenGL library,OPENGLLIB,-framework OpenGL -framework AGL -framework ApplicationServices,$OPENGLPATH)
  916. LOC_CHECK_FUNC(gluBeginCurve,GLU library,OPENGLLIB,,$OPENGLPATH,$OPENGLLIB)
  917. OPENGLINC="$OPENGLPATH"
  918. OPENGLLIBPATH="$OPENGLPATH"
  919. AC_DEFINE(OPENGL_AQUA)
  920. fi # $OPENGL_AQUA
  921. if test "$OPENGL_WINDOWS" = 1 ; then
  922. # With OpenGL includes directory
  923. LOC_CHECK_INC_PATH(opengl,OpenGL,OPENGLINC)
  924. LOC_CHECK_INCLUDES(GL/gl.h GL/glu.h,OpenGL,$OPENGLINC)
  925. # With OpenGL library directory
  926. LOC_CHECK_LIB_PATH(opengl,OpenGL,OPENGL_LIB_PATH)
  927. ac_save_cflags="$CFLAGS"
  928. CFLAGS="$CFLAGS $OPENGLINC"
  929. LOC_CHECK_LINK(opengl32,[#include <GL/gl.h>],[glEnd();],OpenGL,$OPENGL_LIB_PATH,OPENGLLIB)
  930. LOC_CHECK_LINK(glu32,[#include <GL/glu.h>],[gluNewQuadric();],GLU,$OPENGL_LIB_PATH,OPENGLULIB,$OPENGLLIB)
  931. CFLAGS="${ac_save_cflags}"
  932. OPENGLLIB="$OPENGL_LIB_PATH $OPENGLLIB"
  933. OPENGLULIB="$OPENGL_LIB_PATH $OPENGLULIB"
  934. AC_DEFINE(OPENGL_WINDOWS)
  935. fi # $OPENGL_WINDOWS
  936. fi # $USE_OPENGL
  937. AC_SUBST(USE_OPENGL)
  938. AC_SUBST(OPENGL_X11)
  939. AC_SUBST(OPENGL_AQUA)
  940. AC_SUBST(OPENGL_WINDOWS)
  941. AC_SUBST(OPENGLINC)
  942. AC_SUBST(OPENGLLIB)
  943. AC_SUBST(OPENGLULIB)
  944. # Done checking OpenGL
  945. # Enable ODBC option
  946. LOC_CHECK_USE(odbc,ODBC,USE_ODBC)
  947. ODBCINC=
  948. ODBCLIB=
  949. if test -n "$USE_ODBC"; then
  950. # With ODBC includes directory
  951. LOC_CHECK_INC_PATH(odbc,ODBC,ODBCINC)
  952. LOC_CHECK_INCLUDES(sql.h,ODBC,$ODBCINC)
  953. # With ODBC library directory
  954. LOC_CHECK_LIB_PATH(odbc,ODBC,ODBCLIB)
  955. LOC_CHECK_LIBS(odbc,SQLConnect,ODBC,$ODBCLIB,ODBCLIB,$ICONVLIB,,[
  956. LOC_CHECK_LIBS(iodbc,SQLConnect,ODBC,$ODBCLIB,ODBCLIB,,,[
  957. ac_save_cflags="$CFLAGS"
  958. CFLAGS="$CFLAGS $ODBCINC"
  959. LOC_CHECK_LINK(odbc32,[#include <windows.h>
  960. #include <sql.h>],[SQLAllocEnv((SQLHENV *)0);],ODBC,$ODBCLIB,ODBCLIB)
  961. CFLAGS="${ac_save_cflags}"
  962. ])
  963. ])
  964. fi # $USE_ODBC
  965. AC_SUBST(ODBCINC)
  966. AC_SUBST(ODBCLIB)
  967. # Done checking ODBC
  968. # Enable FFTW option
  969. LOC_CHECK_USE(fftw,FFTW,USE_FFTW)
  970. FFTWINC=
  971. FFTWLIB=
  972. if test -n "$USE_FFTW"; then
  973. # With FFTW includes directory
  974. LOC_CHECK_INC_PATH(fftw,FFTW,FFTWINC)
  975. LOC_CHECK_INCLUDES(fftw3.h,FFTW,$FFTWINC,[
  976. LOC_CHECK_INCLUDES(fftw.h,FFTW,,[
  977. LOC_CHECK_INCLUDES(dfftw.h,FFTW,,)
  978. ])
  979. ])
  980. # With FFTW library directory
  981. LOC_CHECK_LIB_PATH(fftw,FFTW,FFTWLIB)
  982. LOC_CHECK_LIBS(fftw3, fftw_execute,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,[
  983. LOC_CHECK_LIBS(fftw, fftwnd_one,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,[
  984. LOC_CHECK_LIBS(dfftw,fftwnd_one,FFTW,$FFTWLIB,FFTWLIB,,$MATHLIB,)
  985. ])
  986. ])
  987. fi # $USE_FFTW
  988. AC_SUBST(FFTWINC)
  989. AC_SUBST(FFTWLIB)
  990. # Done checking FFTW
  991. # Enable BLAS option
  992. LOC_CHECK_USE(blas,BLAS,USE_BLAS)
  993. BLASLIB=
  994. BLASINC=
  995. if test -n "$USE_BLAS"; then
  996. # With BLAS includes directory
  997. # BLAS doesn't have includes (FORTRAN library)
  998. # With BLAS library directory
  999. LOC_CHECK_INC_PATH(blas, BLAS, BLASINC)
  1000. LOC_CHECK_LIB_PATH(blas, BLAS, BLASLIB)
  1001. # See if cblas.h exists (CBLAS,ATLAS,others)
  1002. save_CPPFLAGS="$CPPFLAGS"
  1003. CPPFLAGS="$BLASINC $CPPFLAGS"
  1004. AC_CHECK_HEADERS(cblas.h)
  1005. CPPFLAGS="$save_CPPFLAGS"
  1006. LOC_CHECK_LIBS(blas,dnrm2_,BLAS,$BLASLIB,BLASLIB,$MATHLIB,,,-lg2c)
  1007. blas_ok=no
  1008. # Check for ATLAS
  1009. save_LDFLAGS="$LDFLAGS"
  1010. LDFLAGS="$BLASLIB $LDFLAGS"
  1011. AC_CHECK_LIB(atlas, ATL_xerbla,
  1012. [AC_CHECK_LIB(f77blas, sgemm_,
  1013. [AC_CHECK_LIB(cblas, cblas_dgemm,
  1014. [blas_ok=yes; BLASLIB="-lcblas -lf77blas -latlas"],
  1015. [],[-lf77blas -latlas])],
  1016. [],[-latlas])]
  1017. )
  1018. LDFLAGS="$save_LDFLAGS"
  1019. # Do we have ATLAS?
  1020. if test $blas_ok = yes; then
  1021. AC_DEFINE(HAVE_LIBATLAS)
  1022. fi
  1023. # BLAS in Apple vecLib framework? (Mac OS-X)
  1024. # not dependent on APP build
  1025. #if test -n "$MACOSX_APP"; then
  1026. if test $blas_ok = no; then
  1027. vlib_flags="-framework vecLib"
  1028. save_LIBS="$LIBS"
  1029. LIBS="$vlib_flags $LIBS"
  1030. AC_MSG_CHECKING([for sgemm in $vlib_flags])
  1031. AC_TRY_LINK([], [sgemm], [blas_ok=yes; BLASLIB="$vlib_flags"], [BLASLIB=""])
  1032. AC_MSG_RESULT($blas_ok)
  1033. LIBS="$save_LIBS"
  1034. fi
  1035. #fi # $MACOSX_APP
  1036. # BLAS in PhiPACK libraries? (requires generic BLAS, too)
  1037. if test $blas_ok = no; then
  1038. AC_CHECK_LIB(blas, sgemm_,
  1039. [AC_CHECK_LIB(dgemm, dgemm_,
  1040. [AC_CHECK_LIB(sgemm, sgemm_,
  1041. [blas_ok=yes; BLASLIB="-lsgemm -ldgemm -lblas"],
  1042. [], [-lblas])],
  1043. [], [-lblas])]
  1044. )
  1045. fi
  1046. # BLAS in Sun Performance library?
  1047. if test $blas_ok = no; then
  1048. if test "x$GCC" != xyes; then # only works with Sun CC
  1049. AC_CHECK_LIB(sunmath, acosp,
  1050. [AC_CHECK_LIB(sunperf, sgemm_,
  1051. [blas_ok=yes; BLASLIB="-xlic_lib=sunperf -lsunmath"],
  1052. [], [-lsunmath])]
  1053. )
  1054. fi
  1055. fi
  1056. # Generic BLAS library
  1057. if test $blas_ok = no; then
  1058. AC_CHECK_LIB(blas, sgemm_, [blas_ok=yes; BLASLIB="-lblas"])
  1059. fi
  1060. if test $blas_ok = yes; then
  1061. AC_DEFINE(HAVE_LIBBLAS)
  1062. fi
  1063. fi # $USE_BLAS
  1064. AC_SUBST(BLASLIB)
  1065. AC_SUBST(BLASINC)
  1066. # Done checking BLAS
  1067. # Enable LAPACK option
  1068. LOC_CHECK_USE(lapack,LAPACK,USE_LAPACK)
  1069. LAPACKLIB=
  1070. LAPACKINC=
  1071. # LAPACK is useless without BLAS
  1072. if test -n "$USE_BLAS"; then
  1073. if test -n "$USE_LAPACK"; then
  1074. # With LAPACK includes directory
  1075. # LAPACK doesn't have includes (FORTRAN library)
  1076. # With LAPACK library directory
  1077. lapack_ok=no
  1078. LOC_CHECK_INC_PATH(lapack, LAPACK, LAPACKINC)
  1079. LOC_CHECK_LIB_PATH(lapack, LAPACK, LAPACKLIB)
  1080. # See if clapack.h exists (ATLAS)
  1081. save_CPPFLAGS="$CPPFLAGS"
  1082. CPPFLAGS="$LAPACKINC $CPPFLAGS"
  1083. AC_CHECK_HEADERS(clapack.h)
  1084. CPPFLAGS="$save_CPPFLAGS"
  1085. # LAPACK linked to by default?
  1086. if test lapack_ok=no; then
  1087. save_LIBS="$LIBS"; LIBS="$LIBS $BLASLIB $MATHLIB $FLIBS"
  1088. save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LAPACKLIB $LDFLAGS"
  1089. AC_CHECK_FUNC(dsegv_, [lapack_ok=yes])
  1090. LIBS="$save_LIBS"
  1091. LDFLAGS="$save_LDFLAGS"
  1092. fi
  1093. # Generic LAPACK library?
  1094. if test $lapack_ok = no; then
  1095. save_libs="$LIBS"; LIBS="$BLASLIB $MATHLIB $LIBS"
  1096. save_LDFLAGS="$LDFLAGS"; LDFLAGS="$LAPACKLIB $LDFLAGS"
  1097. AC_CHECK_LIB(lapack, desgv_,
  1098. [lapack_ok=yes; LAPACKLIB="-llapack"], [], [$FLIBS])
  1099. LIBS="$save_LIBS"
  1100. LDFLAGS="$save_LDFLAGS"
  1101. fi
  1102. if test $lapack_ok = no; then
  1103. LOC_CHECK_LIBS(lapack,dgesv_,LAPACK,$LAPACKLIB,LAPACKLIB,$BLASLIB $MATHLIB,,,-lg2c)
  1104. fi
  1105. AC_DEFINE(HAVE_LIBLAPACK)
  1106. fi # $USE_LAPACK
  1107. fi # $USE_BLAS
  1108. AC_SUBST(LAPACKLIB)
  1109. AC_SUBST(LAPACKINC)
  1110. # Done checking LAPACK
  1111. # Enable Cairo display driver option
  1112. LOC_CHECK_USE(cairo,Cairo,USE_CAIRO)
  1113. CAIROINC=
  1114. CAIROLIB=
  1115. if test -n "$USE_CAIRO"; then
  1116. cairo="cairo"
  1117. pkgs="cairo-ft cairo-fc cairo-pdf cairo-ps cairo-svg fontconfig"
  1118. if test -n "$USE_X11"; then
  1119. pkgs="$pkgs cairo-xlib cairo-xlib-xrender"
  1120. fi
  1121. for pkg in $pkgs ; do
  1122. if pkg-config --exists $pkg ; then
  1123. cairo="$cairo $pkg"
  1124. fi
  1125. done
  1126. # With Cairo includes directory
  1127. #FIXME: somehow quote dirs with spaces in $cairo ?
  1128. CAIROINC=`pkg-config --cflags $cairo`
  1129. LOC_CHECK_INC_PATH(cairo,cairo,CAIROINC)
  1130. LOC_CHECK_INCLUDES(cairo.h,Cairo,$CAIROINC)
  1131. # With Cairo library directory
  1132. CAIROLIB=`pkg-config --libs $cairo`
  1133. LOC_CHECK_LIB_PATH(cairo,cairo,CAIROLIB)
  1134. LOC_CHECK_LDFLAGS(cairo,cairo,CAIROLIB)
  1135. LOC_CHECK_FUNC(cairo_create,,,,,$CAIROLIB,[:])
  1136. LOC_CHECK_FUNC(cairo_xlib_surface_create_with_xrender_format,,,,,$CAIROLIB,
  1137. [CAIRO_HAS_XRENDER=1],[CAIRO_HAS_XRENDER=])
  1138. AC_SUBST(CAIRO_HAS_XRENDER)
  1139. LOC_CHECK_FUNC(cairo_xlib_surface_get_xrender_format,,,,,$CAIROLIB,
  1140. [CAIRO_HAS_XRENDER_SURFACE=1],[CAIRO_HAS_XRENDER_SURFACE=])
  1141. AC_SUBST(CAIRO_HAS_XRENDER_SURFACE)
  1142. CAIROLIB="$CAIROLIB $CAIROLDFLAGS"
  1143. fi # $USE_CAIRO
  1144. AC_SUBST(CAIROINC)
  1145. AC_SUBST(CAIROLIB)
  1146. AC_SUBST(USE_CAIRO)
  1147. # Done checking Cairo
  1148. # Enable FreeType option
  1149. LOC_CHECK_USE(freetype,FreeType,USE_FREETYPE)
  1150. FTINC=
  1151. FTLIB=
  1152. if test -n "$USE_FREETYPE"; then
  1153. # With FreeType includes directory
  1154. LOC_CHECK_INC_PATH(freetype,FreeType,FTINC)
  1155. LOC_CHECK_INCLUDES(ft2build.h,FreeType,$FTINC)
  1156. # With FreeType library directory
  1157. LOC_CHECK_LIB_PATH(freetype,FreeType,FTLIB)
  1158. LOC_CHECK_LIBS(freetype,FT_Init_FreeType,FreeType,$FTLIB,FTLIB,,,)
  1159. fi # $USE_FREETYPE
  1160. AC_SUBST(FTINC)
  1161. AC_SUBST(FTLIB)
  1162. # Done checking FreeType
  1163. # Enable NLS option
  1164. LOC_CHECK_USE(nls,NLS,USE_NLS)
  1165. INTLLIB=
  1166. HAVE_NLS=
  1167. if test -n "${USE_NLS}" ; then
  1168. AC_DEFINE(USE_NLS)
  1169. AC_CHECK_FUNC(gettext, INTLLIB=, [
  1170. AC_CHECK_LIB(intl, gettext, INTLLIB=-lintl, [
  1171. AC_MSG_ERROR([*** Unable to locate gettext() function.])
  1172. ])])
  1173. HAVE_NLS=1
  1174. fi
  1175. AC_SUBST(INTLLIB)
  1176. AC_SUBST(HAVE_NLS)
  1177. # Enable C++ option
  1178. LOC_CHECK_USE(cxx,C++,USE_CXX)
  1179. if test -n "$USE_CXX"; then
  1180. AC_PROG_CXX
  1181. else
  1182. CXX=
  1183. CXXFLAGS=
  1184. AC_SUBST(CXX)
  1185. AC_SUBST(CXXFLAGS)
  1186. fi
  1187. # Done checking C++
  1188. # Enable openDWG option
  1189. LOC_CHECK_USE(opendwg,openDWG,USE_OPENDWG)
  1190. OPENDWGINCPATH=
  1191. OPENDWGLIBPATH=
  1192. OPENDWGLIB=
  1193. if test -n "${USE_OPENDWG}"; then
  1194. # With OPENDWG includes directory
  1195. LOC_CHECK_INC_PATH(opendwg,openDGW,OPENDWGINCPATH)
  1196. LOC_CHECK_INCLUDES(ad2.h,openDWG,$OPENDWGINCPATH)
  1197. # With OPENDWG library directory
  1198. LOC_CHECK_LIB_PATH(opendwg,openDWG,OPENDWGLIBPATH)
  1199. #search for ad2.a, ad3.a ... in openDWG toolkit directory:
  1200. #FIX ME how to program this test??
  1201. #LOC_CHECK_LIBS(ad?.a,adSeekLayer,openDWG,$OPENDWGLIBPATH,OPENDWGLIB,,)
  1202. #
  1203. #for now hack (but working):
  1204. TRUEOPENDWGLIBPATH=`echo "$OPENDWGLIBPATH" | cut -b3-`
  1205. adlib=`ls -1 "$TRUEOPENDWGLIBPATH"/ad?.a | tail -1`
  1206. OPENDWGLIB="$adlib"
  1207. fi # $USE_OPENDWG
  1208. AC_SUBST(OPENDWGINCPATH)
  1209. AC_SUBST(OPENDWGLIBPATH)
  1210. AC_SUBST(OPENDWGLIB)
  1211. AC_SUBST(USE_OPENDWG)
  1212. # Done checking OPENDWG
  1213. # Enable pthread option
  1214. LOC_CHECK_USE(pthread,POSIX threads,USE_PTHREAD)
  1215. PTHREADINCPATH=
  1216. PTHREADLIBPATH=
  1217. PTHREADLIB=
  1218. if test -n "$USE_PTHREAD"; then
  1219. # With pthread includes directory
  1220. LOC_CHECK_INC_PATH(pthread,POSIX threads,PTHREADINCPATH)
  1221. LOC_CHECK_INCLUDES(pthread.h,POSIX threads,$PTHREADINCPATH)
  1222. # With pthread library directory
  1223. LOC_CHECK_LIB_PATH(pthread,POSIX threads,PTHREADLIBPATH)
  1224. LOC_CHECK_FUNC(pthread_create,POSIX threads functions,PTHREADLIB,,,,,[
  1225. LOC_CHECK_LIBS(pthread,pthread_create,POSIX threads,$PTHREADLIBPATH,PTHREADLIB,,,)
  1226. ])
  1227. fi # $USE_PTHREAD
  1228. AC_SUBST(PTHREADINCPATH)
  1229. AC_SUBST(PTHREADLIBPATH)
  1230. AC_SUBST(PTHREADLIB)
  1231. AC_SUBST(USE_PTHREAD)
  1232. # Done checking pthread
  1233. # Enable OpenMP option
  1234. LOC_CHECK_USE(openmp,OpenMP,USE_OPENMP)
  1235. OMPINCPATH=
  1236. OMPLIBPATH=
  1237. OMPLIB=
  1238. OMPCFLAGS=
  1239. if test -n "$USE_OPENMP"; then
  1240. # With OpenMP includes directory
  1241. LOC_CHECK_INC_PATH(openmp,OpenMP,OMPINCPATH)
  1242. LOC_CHECK_INCLUDES(omp.h,OpenMP,$OMPINCPATH)
  1243. # With OpenMP library directory
  1244. # GCC et al.: -lgomp
  1245. # Solaris cc: -lmtsk
  1246. # AIX xlc: -lxlsmp
  1247. # SGI IRIX 6.5 MIPSpro C/C++: -lmp
  1248. LOC_CHECK_LIB_PATH(openmp,OpenMP,OMPLIBPATH)
  1249. LOC_CHECK_FUNC(GOMP_parallel_start,OpenMP functions,OMPLIB,,,,,[
  1250. LOC_CHECK_LIBS(gomp,GOMP_parallel_start,OpenMP,$OMPLIBPATH,OMPLIB,,,)
  1251. ])
  1252. # compiler dependent
  1253. #if test ${CC} = "gcc" ; then
  1254. if test x$GCC = xyes ; then
  1255. # GNU C compiler (>= 4.2.1)
  1256. OMPCFLAGS=-fopenmp
  1257. elif test ${CC} = "icc" ; then
  1258. # Intel compiler
  1259. OMPCFLAGS=-openmp
  1260. elif test ${CC} = "opencc" ; then
  1261. # AMD's x86 Open64 compiler
  1262. OMPCFLAGS=-mp
  1263. elif test ${CC} = "pgcc" ; then
  1264. # Portland Group's compiler
  1265. OMPCFLAGS=-mp
  1266. # ... anybody else?
  1267. fi
  1268. # try to build a test program with "$CC $OMPCLFAGS" to confirm it works
  1269. #...how?
  1270. #echo "int main() {return 0;}" > test.c
  1271. #$CC $OMPCLFAGS test.c -o test
  1272. fi # $USE_OPENMP
  1273. AC_SUBST(OMPINCPATH)
  1274. AC_SUBST(OMPLIBPATH)
  1275. AC_SUBST(OMPLIB)
  1276. AC_SUBST(OMPCFLAGS)
  1277. AC_SUBST(USE_OPENMP)
  1278. # Done checking OpenMP
  1279. # Enable OpenCL option
  1280. LOC_CHECK_USE(opencl,OpenCL,USE_OPENCL)
  1281. OCLINCPATH=
  1282. OCLLIBPATH=
  1283. OCLLIB=
  1284. if test -n "$USE_OPENCL"; then
  1285. # With OpenCL includes directory
  1286. LOC_CHECK_INC_PATH(opencl,OpenCL,OCLINCPATH)
  1287. if test -n "$MACOSX_APP" ; then
  1288. LOC_CHECK_INCLUDES(OpenCL/opencl.h,OpenCL,$OCLINCPATH)
  1289. # With OpenCL library directory
  1290. ### FIXME: ###
  1291. #LOC_CHECK_FRAMEWORK_PATH(opencl,OpenCL,OPENCLPATH)
  1292. # last term in following would become ',$OPENCLPATH)' if above is uncommented
  1293. LOC_CHECK_FUNC(clGetPlatformInfo,OpenCL library,OCLLIB,-framework OpenCL,)
  1294. else
  1295. LOC_CHECK_INCLUDES(CL/cl.h,OpenCL,$OCLINCPATH)
  1296. # With OpenCL library directory
  1297. LOC_CHECK_LIB_PATH(opencl,OpenCL,OCLLIBPATH)
  1298. LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCL,$OCLLIBPATH,OCLLIB,,,)
  1299. # expanded symbol check: yes? no?
  1300. #LOC_CHECK_FUNC(clGetPlatformInfo,OpenCL functions,OCLLIB,,,,,[
  1301. #LOC_CHECK_LIBS(OpenCL,clGetPlatformInfo,OpenCL,$OCLLIBPATH,OCLLIB,,,)
  1302. #])
  1303. fi
  1304. fi # $USE_OPENCL
  1305. AC_SUBST(OCLINCPATH)
  1306. AC_SUBST(OCLLIBPATH)
  1307. AC_SUBST(OCLLIB)
  1308. AC_SUBST(USE_OPENCL)
  1309. # Done checking OpenCL
  1310. # Enable LFS (from cdr-tools, tar, and autoconf 2.68)
  1311. dnl Check for large file support
  1312. dnl Do this last to make sure that no large file definition
  1313. dnl in confdefs.h will modify our results
  1314. AC_SYS_LARGEFILE
  1315. ac_save_cflags=${CFLAGS}
  1316. CFLAGS="$LFS_CFLAGS ${ac_save_cflags}"
  1317. dnl Warning do not run this test. it interferes with the test
  1318. dnl AC_CHECK_FUNCS(fseeko ftello) from above.
  1319. dnl The test AC_HAVE_LARGEFILES will check whether ftello/fseeko
  1320. dnl are available in Large File mode
  1321. AC_FUNC_FSEEKO
  1322. AC_HAVE_LARGEFILES
  1323. CFLAGS=${ac_save_cflags}
  1324. # Done large file support
  1325. # Enable wxWidgets support (for wxGUI)
  1326. AC_MSG_CHECKING(whether to use wxWidgets)
  1327. WXVERSION=
  1328. WXWIDGETSCXXFLAGS=
  1329. WXWIDGETSCPPFLAGS=
  1330. WXWIDGETSLIB=
  1331. USE_WXWIDGETS=
  1332. MACOSX_ARCHS_WXPYTHON=
  1333. if test "$with_wxwidgets" = "no" ; then
  1334. AC_MSG_RESULT(no)
  1335. else
  1336. AC_MSG_RESULT(yes)
  1337. USE_WXWIDGETS="1"
  1338. if test "$with_wxwidgets" != "yes" ; then
  1339. WX_CONFIG="$with_wxwidgets"
  1340. fi
  1341. AC_PATH_PROG(WX_CONFIG, wx-config, no)
  1342. if test "$WX_CONFIG" = "no" ; then
  1343. AC_MSG_ERROR([*** couldn't find wx-config
  1344. wxWidgets must be installed on your system.
  1345. Please check that wx-config is in path, the directory
  1346. where wxWidgets libraries are installed (returned by
  1347. 'wx-config --libs' or 'wx-config --static --libs' command)
  1348. is in LD_LIBRARY_PATH or equivalent variable and
  1349. wxWidgets version is 2.8.1 or above.])
  1350. fi
  1351. # Check wxWidgets version
  1352. REQWX="2.8.1"
  1353. AC_MSG_CHECKING([wxWidgets version])
  1354. if WXVERSION=`"$WX_CONFIG" --version`; then
  1355. AC_MSG_RESULT([$WXVERSION])
  1356. else
  1357. AC_MSG_RESULT([not found])
  1358. AC_MSG_ERROR([wxWidgets is required.])
  1359. fi
  1360. if test `expr "$WXVERSION" \< "$REQWX"` = 1 ; then
  1361. AC_MSG_ERROR([*** wxWidgets "$REQWX" or later is required.])
  1362. fi
  1363. # With wxWidgets includes directory
  1364. WXWIDGETSCXXFLAGS=`"$WX_CONFIG" --cxxflags`
  1365. WXWIDGETSCPPFLAGS=`"$WX_CONFIG" --cppflags`
  1366. LOC_CHECK_INCLUDES(wx/wxprec.h,wxWidgets,$WXWIDGETSCPPFLAGS)
  1367. # With wxWidgets library directory
  1368. WXWIDGETSLIB=`"$WX_CONFIG" --libs`
  1369. # shouldn't have arch flags in C/LD flags on OSX
  1370. for a in i386 ppc x86_64 ppc64
  1371. do
  1372. WXWIDGETSCXXFLAGS=`echo "$WXWIDGETSCXXFLAGS" | sed "s/-arch *$a//g"`
  1373. WXWIDGETSCPPFLAGS=`echo "$WXWIDGETSCPPFLAGS" | sed "s/-arch *$a//g"`
  1374. WXWIDGETSLIB=`echo "$WXWIDGETSLIB" | sed "s/-arch *$a//g"`
  1375. done
  1376. # check for available OSX archs in wxPython
  1377. if test -n "$MACOSX_ARCHS" ; then
  1378. wxver=`"$WX_CONFIG" --version`
  1379. wxlib=`"$WX_CONFIG" --prefix`/lib/lib`"$WX_CONFIG" --basename`-`echo "$wxver" | cut -d . -f1,2`.dylib
  1380. wxlibinfo=`file "$wxlib"`
  1381. for a in i386 ppc x86_64 ppc64
  1382. do
  1383. # add only if in MACOSX_ARCHS
  1384. if test -n "`echo \"$wxlibinfo\" | grep \"library $a\"`" ; then
  1385. if test -n "`echo \"$MACOSX_ARCHS\" | grep $a`" ; then
  1386. MACOSX_ARCHS_WXPYTHON="$MACOSX_ARCHS_WXPYTHON -arch $a"
  1387. fi
  1388. fi
  1389. done
  1390. fi
  1391. fi # $USE_WXWIDGETS
  1392. AC_SUBST(WXVERSION)
  1393. AC_SUBST(WXWIDGETSCXXFLAGS)
  1394. AC_SUBST(WXWIDGETSCPPFLAGS)
  1395. AC_SUBST(WXWIDGETSLIB)
  1396. AC_SUBST(USE_WXWIDGETS)
  1397. AC_SUBST(MACOSX_ARCHS_WXPYTHON)
  1398. # Done checking wxWidgets
  1399. USE_TERMIO=
  1400. AC_SUBST(USE_TERMIO)
  1401. STRIPFLAG=
  1402. AC_SUBST(STRIPFLAG)
  1403. GRASS_HOME="${DSTDIR}"
  1404. AC_SUBST(GRASS_HOME)
  1405. AC_OUTPUT(include/Make/Platform.make include/Make/Doxyfile_arch_html include/Make/Doxyfile_arch_latex include/version.h grass.pc)
  1406. LOC_MSG([Copying config.status to config.status.${ARCH}])
  1407. cp -f config.status config.status.${ARCH}
  1408. # Display configuration status
  1409. LOC_MSG()
  1410. LOC_MSG([GRASS is now configured for: ${host}])
  1411. LOC_MSG()
  1412. LOC_MSG([ Source directory: ${SRCDIR}])
  1413. LOC_MSG([ Build directory: ${DSTDIR}])
  1414. LOC_MSG([ Installation directory: ${INSTDIR}])
  1415. LOC_MSG([ Startup script in directory:${bindir}])
  1416. LOC_MSG([ C compiler: ${CC} ${CFLAGS}])
  1417. LOC_MSG([ C++ compiler: ${CXX} ${CXXFLAGS}])
  1418. LOC_MSG([ Building shared libraries: ${shared_ok}])
  1419. LOC_MSG([ OpenGL platform: ${OPENGL_TYPE}])
  1420. LOC_MSG()
  1421. LOC_MSG_USE(MacOSX application,MACOSX_APP)
  1422. LOC_MSG([ MacOSX architectures: ${MACOSX_ARCHS}])
  1423. LOC_MSG([ MacOSX SDK: ${MACOSX_SDK}])
  1424. LOC_MSG()
  1425. LOC_MSG_USE(BLAS support,USE_BLAS)
  1426. LOC_MSG_USE(C++ support,USE_CXX)
  1427. LOC_MSG_USE(Cairo support,USE_CAIRO)
  1428. LOC_MSG_USE(DWG support,USE_OPENDWG)
  1429. LOC_MSG_USE(FFMPEG support,USE_FFMPEG)
  1430. LOC_MSG_USE(FFTW support,USE_FFTW)
  1431. LOC_MSG_USE(FreeType support,USE_FREETYPE)
  1432. LOC_MSG_USE(GDAL support,USE_GDAL)
  1433. LOC_MSG_USE(GEOS support,USE_GEOS)
  1434. LOC_MSG_USE(LAPACK support,USE_LAPACK)
  1435. LOC_MSG_USE(Large File support (LFS), USE_LARGEFILES)
  1436. LOC_MSG_USE(libLAS support,USE_LIBLAS)
  1437. LOC_MSG_USE(MySQL support,USE_MYSQL)
  1438. LOC_MSG_USE(NetCDF support,USE_NETCDF)
  1439. LOC_MSG_USE(NLS support,USE_NLS)
  1440. LOC_MSG_USE(ODBC support,USE_ODBC)
  1441. LOC_MSG_USE(OGR support,USE_OGR)
  1442. LOC_MSG_USE(OpenCL support,USE_OPENCL)
  1443. LOC_MSG_USE(OpenGL support,USE_OPENGL)
  1444. LOC_MSG_USE(OpenMP support,USE_OPENMP)
  1445. LOC_MSG_USE(PNG support,USE_PNG)
  1446. LOC_MSG_USE(POSIX thread support,USE_PTHREAD)
  1447. LOC_MSG_USE(PostgreSQL support,USE_POSTGRES)
  1448. LOC_MSG_USE(Readline support,USE_READLINE)
  1449. LOC_MSG_USE(Regex support,USE_REGEX)
  1450. LOC_MSG_USE(SQLite support,USE_SQLITE)
  1451. LOC_MSG_USE(TIFF support,USE_TIFF)
  1452. LOC_MSG_USE(wxWidgets support,USE_WXWIDGETS)
  1453. LOC_MSG_USE(X11 support,USE_X11)
  1454. LOC_MSG()