configure.in 46 KB

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