configure.in 45 KB

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