configure.ac 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694
  1. dnl ############################# INITIALISATION ###############################
  2. AC_PREREQ([2.67])
  3. AC_INIT
  4. AC_CONFIG_SRCDIR([src])
  5. AC_CONFIG_AUX_DIR(builds/make.new/config)
  6. AC_CACHE_VAL(ac_cv_prog_make_set, [AC_PROG_MAKE_SET])
  7. AC_PREFIX_DEFAULT(/usr/local/firebird)
  8. m4_ifdef([AC_CONFIG_MACRO_DIR],
  9. [],
  10. [m4_define([AC_CONFIG_MACRO_DIR], [])])
  11. AC_CONFIG_MACRO_DIR(m4)
  12. AC_CONFIG_HEADER(src/include/gen/autoconfig.auto:builds/make.new/config/config.h.in)
  13. dnl XE_APPEND(value, varname)
  14. define([XE_APPEND],[[$2]="$[$2] [$1]"])
  15. dnl XE_PREPEND(value, varname)
  16. define([XE_PREPEND],[[$2]="[$1] $[$2]"])
  17. CHANGE_PATH_SUPPORT=yes
  18. dnl XE_CONF_DIR(param, help, variable, default)
  19. define([XE_CONF_DIR],[
  20. AC_ARG_WITH([$1],
  21. [AS_HELP_STRING([--with-$1],[$2])],
  22. [
  23. case "$withval" in
  24. /*)
  25. CHANGE_PATH_SUPPORT=no
  26. [$3]="$withval"
  27. ;;
  28. *)
  29. [$3]='${fb_install_prefix}'/"${withval}"
  30. ;;
  31. esac
  32. AC_DEFINE_UNQUOTED([$3], "${withval}", [$2])
  33. ],
  34. [[$3]='${fb_install_prefix}[$4]'
  35. AC_DEFINE_UNQUOTED([$3], [""], [$2])]
  36. )
  37. AC_SUBST([$3])
  38. ])
  39. define([XE_CONF_FILE],[
  40. AC_ARG_WITH([$1],
  41. [AS_HELP_STRING([--with-$1],[$2])],
  42. [[$3]="$withval"
  43. AC_DEFINE_UNQUOTED([$3], "$[$3]", [$2])],
  44. [[$3]="$4"
  45. AC_DEFINE_UNQUOTED([$3], ["$4"], [$2])]
  46. )
  47. AC_SUBST([$3])
  48. ])
  49. define([XE_SAVE_ENV], [
  50. pre_save_restore_cflags=$CFLAGS
  51. pre_save_restore_cxxflags=$CXXFLAGS
  52. pre_save_restore_libs=$LIBS
  53. ])
  54. define([XE_RESTORE_ENV], [
  55. CFLAGS=$pre_save_restore_cflags
  56. CXXFLAGS=$pre_save_restore_cxxflags
  57. LIBS=$pre_save_restore_libs
  58. ])
  59. sinclude(acx_pthread.m4)
  60. sinclude(binreloc.m4)
  61. dnl ############################# ADD TESTS BELOW ##############################
  62. AC_CANONICAL_BUILD
  63. CPU_TYPE=$build_cpu
  64. AC_SUBST(CPU_TYPE)
  65. case "$build" in
  66. aarch64-*-darwin*)
  67. VCPKG_TRIPLET=fb-arm64-osx
  68. ;;
  69. x*64-*-darwin*)
  70. VCPKG_TRIPLET=fb-x64-osx
  71. ;;
  72. esac
  73. if test "x$VCPKG_TRIPLET" != "x" ; then
  74. if ! test -f ./vcpkg/vcpkg; then
  75. ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
  76. fi
  77. ./vcpkg/vcpkg install --triplet=$VCPKG_TRIPLET
  78. VCPKG_INSTALLED=`pwd`/vcpkg_installed/$VCPKG_TRIPLET
  79. AC_SUBST(VCPKG_INSTALLED)
  80. fi
  81. dnl EKU: set appropiate defaults for each platform
  82. dnl EDITLINE_FLG : support fancy command line editing in isql
  83. dnl SHRLIB_EXT : suffix of shared library files
  84. RAW_DEVICES_FLG=Y
  85. EXPORT_SYMBOLS_STYLE=linux
  86. INSTALL_PREFIX=""
  87. dnl Use /usr/lib for library links on most platforms except some 64-bit ones
  88. libdir=/usr/lib
  89. dnl Should system editline be used
  90. STD_EDITLINE=false
  91. dnl Test for special ar options?
  92. AR_OPT_CHECK=false
  93. case "$build" in
  94. aarch64-*-darwin*)
  95. MAKEFILE_PREFIX=darwin_aarch64
  96. MAKEFILE_POSTFIX=darwin
  97. PLATFORM=DARWIN
  98. INSTALL_PREFIX=darwin
  99. AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
  100. XE_APPEND(-framework CoreFoundation,LIBS)
  101. EDITLINE_FLG=Y
  102. SHRLIB_EXT=dylib
  103. CPU_TYPE=arm64
  104. EXPORT_SYMBOLS_STYLE=darwin
  105. RAW_DEVICES_FLG=N
  106. ;;
  107. x*64-*-darwin*)
  108. MAKEFILE_PREFIX=darwin_x86_64
  109. MAKEFILE_POSTFIX=darwin
  110. PLATFORM=DARWIN
  111. INSTALL_PREFIX=darwin
  112. AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
  113. XE_APPEND(-framework CoreFoundation,LIBS)
  114. EDITLINE_FLG=Y
  115. SHRLIB_EXT=dylib
  116. CPU_TYPE=x64
  117. EXPORT_SYMBOLS_STYLE=darwin
  118. RAW_DEVICES_FLG=N
  119. ;;
  120. i*86-*-darwin*)
  121. MAKEFILE_PREFIX=darwin_i386
  122. MAKEFILE_POSTFIX=darwin
  123. PLATFORM=DARWIN
  124. INSTALL_PREFIX=darwin
  125. AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
  126. XE_APPEND(-framework CoreFoundation,LIBS)
  127. EDITLINE_FLG=Y
  128. SHRLIB_EXT=dylib
  129. CPU_TYPE=x86
  130. EXPORT_SYMBOLS_STYLE=darwin
  131. ;;
  132. powerpc-*-darwin*)
  133. MAKEFILE_PREFIX=darwin_powerpc
  134. dnl MAKEFILE_PREFIX=darwin_ppc64
  135. MAKEFILE_POSTFIX=darwin
  136. PLATFORM=DARWIN
  137. INSTALL_PREFIX=darwin
  138. AC_DEFINE(DARWIN, 1, [Define this if OS is DARWIN])
  139. XE_APPEND(-framework CoreFoundation,LIBS)
  140. EDITLINE_FLG=Y
  141. SHRLIB_EXT=dylib
  142. dnl CPU_TYPE=ppc64
  143. EXPORT_SYMBOLS_STYLE=darwin
  144. ;;
  145. powerpc-*-aix*)
  146. dnl ibm xlC has many invocations, like xlC, xlc++, or xlc_r7
  147. comp=`echo "$CXX" | cut -c1-3 | dd conv=lcase 2>/dev/null`
  148. if test "$comp" = "xlc"; then
  149. AR_OPT_CHECK=true
  150. TLS_OPTIONS="-qtls=default"
  151. MAKEFILE_PREFIX=aix_powerpc_xlc
  152. else
  153. MAKEFILE_PREFIX=aix_powerpc
  154. fi
  155. MAKEFILE_POSTFIX=aix
  156. PLATFORM=AIX
  157. INSTALL_PREFIX=aix
  158. AC_DEFINE(AIX, 1, [Define this if OS is AIX])
  159. EDITLINE_FLG=N
  160. SHRLIB_EXT=so
  161. EXPORT_SYMBOLS_STYLE=aix
  162. ;;
  163. amd64-*-freebsd* | x86_64*-*-freebsd* | x86_64*-*-k*bsd*-gnu)
  164. MAKEFILE_PREFIX=freebsd_amd64
  165. case "$build" in
  166. x86_64*-*-k*bsd-gnu) # Debian/kFreeBSD
  167. PLATFORM=GENTOOFREEBSD
  168. INSTALL_PREFIX=linux
  169. ;;
  170. *)
  171. PLATFORM=FREEBSD
  172. INSTALL_PREFIX=freebsd
  173. ;;
  174. esac
  175. AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
  176. AC_DEFINE(AMD64, 1, [Define this if CPU is amd64])
  177. EDITLINE_FLG=Y
  178. SHRLIB_EXT=so
  179. ;;
  180. powerpc64le-*-freebsd*)
  181. MAKEFILE_PREFIX=freebsd_powerpc64el
  182. PLATFORM=FREEBSD
  183. INSTALL_PREFIX=freebsd
  184. AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
  185. AC_DEFINE(PPC64EL, 1, [Define this if CPU is ppc64el])
  186. EDITLINE_FLG=Y
  187. SHRLIB_EXT=so
  188. ;;
  189. powerpc64-*-freebsd*)
  190. MAKEFILE_PREFIX=freebsd_powerpc64
  191. PLATFORM=FREEBSD
  192. INSTALL_PREFIX=freebsd
  193. AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
  194. AC_DEFINE(PPC64, 1, [Define this if CPU is ppc64])
  195. EDITLINE_FLG=Y
  196. SHRLIB_EXT=so
  197. ;;
  198. powerpc-*-freebsd*)
  199. MAKEFILE_PREFIX=freebsd_powerpc
  200. PLATFORM=FREEBSD
  201. INSTALL_PREFIX=freebsd
  202. AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
  203. AC_DEFINE(PPC, 1, [Define this if CPU is ppc])
  204. EDITLINE_FLG=Y
  205. SHRLIB_EXT=so
  206. ;;
  207. *-gentoo-freebsd*)
  208. MAKEFILE_PREFIX=freebsd
  209. PLATFORM=GENTOOFREEBSD
  210. AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
  211. EDITLINE_FLG=Y
  212. SHRLIB_EXT=so
  213. ;;
  214. *-*-freebsd* | *-*-k*bsd*-gnu)
  215. MAKEFILE_PREFIX=freebsd
  216. case "$build" in
  217. *-*-k*bsd-gnu) # Debian/kFreeBSD
  218. PLATFORM=GENTOOFREEBSD
  219. INSTALL_PREFIX=linux
  220. ;;
  221. *)
  222. PLATFORM=FREEBSD
  223. ;;
  224. esac
  225. AC_DEFINE(FREEBSD, 1, [Define this if OS is FreeBSD])
  226. EDITLINE_FLG=Y
  227. SHRLIB_EXT=so
  228. ;;
  229. mips-*-linux*)
  230. MAKEFILE_PREFIX=linux_mips
  231. INSTALL_PREFIX=linux
  232. PLATFORM=LINUX
  233. AC_DEFINE(LINUX)
  234. EDITLINE_FLG=Y
  235. SHRLIB_EXT=so
  236. ;;
  237. mipsel-*-linux*)
  238. MAKEFILE_PREFIX=linux_mipsel
  239. INSTALL_PREFIX=linux
  240. PLATFORM=LINUX
  241. AC_DEFINE(LINUX)
  242. EDITLINE_FLG=Y
  243. SHRLIB_EXT=so
  244. ;;
  245. mips64el-*-linux* | mips*64*el-*-linux*)
  246. MAKEFILE_PREFIX=linux_mips64el
  247. INSTALL_PREFIX=linux
  248. PLATFORM=LINUX
  249. AC_DEFINE(LINUX)
  250. EDITLINE_FLG=Y
  251. SHRLIB_EXT=so
  252. ;;
  253. x86_64*-*-linux* | x86_64*-*-gnu*)
  254. MAKEFILE_PREFIX=linux_amd64
  255. INSTALL_PREFIX=linux
  256. PLATFORM=LINUX
  257. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  258. EDITLINE_FLG=Y
  259. SHRLIB_EXT=so
  260. libdir=/usr/lib64
  261. CPU_TYPE=x64
  262. ;;
  263. ia64*-*-linux*)
  264. MAKEFILE_PREFIX=linux_ia64
  265. INSTALL_PREFIX=linux
  266. PLATFORM=LINUX
  267. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  268. EDITLINE_FLG=Y
  269. SHRLIB_EXT=so
  270. libdir=/usr/lib
  271. CPU_TYPE=ia64
  272. ;;
  273. arm*-*-linux*)
  274. MAKEFILE_PREFIX=linux_arm
  275. INSTALL_PREFIX=linux
  276. PLATFORM=LINUX
  277. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  278. EDITLINE_FLG=Y
  279. SHRLIB_EXT=so
  280. CPU_TYPE=arm32
  281. STD_EDITLINE=true
  282. ;;
  283. aarch64*-*-linux*)
  284. MAKEFILE_PREFIX=linux_arm64
  285. INSTALL_PREFIX=linux
  286. PLATFORM=LINUX
  287. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  288. EDITLINE_FLG=Y
  289. SHRLIB_EXT=so
  290. CPU_TYPE=arm64
  291. STD_EDITLINE=true
  292. STD_ICU=true
  293. libdir=/usr/lib64
  294. ;;
  295. loongarch*-*-linux*)
  296. MAKEFILE_PREFIX=linux_loongarch
  297. INSTALL_PREFIX=linux
  298. PLATFORM=LINUX
  299. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  300. EDITLINE_FLG=Y
  301. SHRLIB_EXT=so
  302. STD_EDITLINE=true
  303. STD_ICU=true
  304. libdir=/usr/lib64
  305. ;;
  306. riscv64*-*-linux*)
  307. MAKEFILE_PREFIX=linux_riscv64
  308. INSTALL_PREFIX=linux
  309. PLATFORM=LINUX
  310. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  311. EDITLINE_FLG=Y
  312. SHRLIB_EXT=so
  313. STD_EDITLINE=true
  314. STD_ICU=true
  315. libdir=/usr/lib64
  316. ;;
  317. powerpc64le-*-linux*)
  318. MAKEFILE_PREFIX=linux_powerpc64el
  319. INSTALL_PREFIX=linux
  320. PLATFORM=LINUX
  321. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  322. EDITLINE_FLG=Y
  323. SHRLIB_EXT=so
  324. STD_EDITLINE=true
  325. STD_ICU=true
  326. libdir=/usr/lib64
  327. ;;
  328. powerpc64-*-linux*)
  329. MAKEFILE_PREFIX=linux_powerpc64
  330. INSTALL_PREFIX=linux
  331. PLATFORM=LINUX
  332. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  333. EDITLINE_FLG=Y
  334. SHRLIB_EXT=so
  335. STD_EDITLINE=true
  336. STD_ICU=true
  337. libdir=/usr/lib64
  338. ;;
  339. sparc*-*-linux* | sparc*-*-gnu* | sparc*-*-k*bsd*-gnu)
  340. MAKEFILE_PREFIX=linux_sparc32
  341. INSTALL_PREFIX=linux
  342. PLATFORM=LINUX
  343. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  344. EDITLINE_FLG=Y
  345. SHRLIB_EXT=so
  346. ;;
  347. powerpc*-*-linux*)
  348. MAKEFILE_PREFIX=linux_powerpc
  349. INSTALL_PREFIX=linux
  350. PLATFORM=LINUX
  351. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  352. EDITLINE_FLG=Y
  353. SHRLIB_EXT=so
  354. ;;
  355. i*86*-*-linux*)
  356. MAKEFILE_PREFIX=linux
  357. PLATFORM=LINUX
  358. AC_DEFINE(LINUX)
  359. EDITLINE_FLG=Y
  360. SHRLIB_EXT=so
  361. CPU_TYPE=x86
  362. ;;
  363. s390x-*-linux*)
  364. MAKEFILE_PREFIX=linux_s390x
  365. INSTALL_PREFIX=linux
  366. PLATFORM=LINUX
  367. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  368. EDITLINE_FLG=Y
  369. SHRLIB_EXT=so
  370. libdir=/usr/lib64
  371. ;;
  372. s390*-*-linux*)
  373. MAKEFILE_PREFIX=linux_s390x
  374. INSTALL_PREFIX=linux
  375. PLATFORM=LINUX
  376. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  377. EDITLINE_FLG=Y
  378. SHRLIB_EXT=so
  379. ;;
  380. sh*eb-*-linux*)
  381. MAKEFILE_PREFIX=linux_generic
  382. INSTALL_PREFIX=linux
  383. PLATFORM=LINUX
  384. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  385. AC_DEFINE(SHEB, 1, [Architecture is big-edian sh4])
  386. LOCK_MANAGER_FLG=Y
  387. EDITLINE_FLG=Y
  388. SHRLIB_EXT=so
  389. ;;
  390. sh*-*-linux*)
  391. MAKEFILE_PREFIX=linux_generic
  392. INSTALL_PREFIX=linux
  393. PLATFORM=LINUX
  394. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  395. AC_DEFINE(SH, 1, [Architecture is little-endian sh4])
  396. LOCK_MANAGER_FLG=Y
  397. EDITLINE_FLG=Y
  398. SHRLIB_EXT=so
  399. ;;
  400. hppa*-*-linux*)
  401. MAKEFILE_PREFIX=linux_generic
  402. INSTALL_PREFIX=linux
  403. PLATFORM=LINUX
  404. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  405. AC_DEFINE(HPPA, 1, [Define this if CPU is HPPA])
  406. LOCK_MANAGER_FLG=Y
  407. EDITLINE_FLG=Y
  408. SHRLIB_EXT=so
  409. ;;
  410. alpha*-*-linux*)
  411. MAKEFILE_PREFIX=linux_generic
  412. INSTALL_PREFIX=linux
  413. PLATFORM=LINUX
  414. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  415. AC_DEFINE(ALPHA, 1, [Define this if CPU is Alpha])
  416. LOCK_MANAGER_FLG=Y
  417. EDITLINE_FLG=Y
  418. SHRLIB_EXT=so
  419. ;;
  420. m68k*-*-linux*)
  421. MAKEFILE_PREFIX=linux_generic
  422. INSTALL_PREFIX=linux
  423. PLATFORM=LINUX
  424. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  425. AC_DEFINE(M68K, 1, [Define this if CPU is M68k])
  426. LOCK_MANAGER_FLG=Y
  427. EDITLINE_FLG=Y
  428. SHRLIB_EXT=so
  429. ;;
  430. *-*-linux* | *-*-gnu*)
  431. MAKEFILE_PREFIX=linux_generic
  432. INSTALL_PREFIX=linux
  433. PLATFORM=LINUX
  434. AC_DEFINE(LINUX, 1, [Define this if OS is Linux])
  435. EDITLINE_FLG=Y
  436. SHRLIB_EXT=so
  437. ;;
  438. *-*-netbsd*)
  439. MAKEFILE_PREFIX=netbsd
  440. PLATFORM=NETBSD
  441. AC_DEFINE(NETBSD, 1, [Define this if OS is NetBSD])
  442. EDITLINE_FLG=Y
  443. SHRLIB_EXT=so
  444. ;;
  445. ia64-*-hpux*)
  446. comp=`echo "$CXX" | cut -c1-3`
  447. case $comp in
  448. aCC) MAKEFILE_PREFIX=hpux_aCC ;
  449. PTHREAD_CFLAGS=-mt
  450. ;;
  451. *) MAKEFILE_PREFIX=hpux_ia64 ;
  452. ;;
  453. esac
  454. INSTALL_PREFIX=hpux
  455. PLATFORM=HPUX
  456. AC_DEFINE(HPUX, 1, [Define this if OS is HP-UX])
  457. EDITLINE_FLG=Y
  458. SHRLIB_EXT=so
  459. libdir=/usr/lib/pa20_64
  460. EXPORT_SYMBOLS_STYLE=hpux
  461. ;;
  462. hppa*-*-hpux*)
  463. comp=`echo "$CXX" | cut -c1-3`
  464. case $comp in
  465. aCC) MAKEFILE_PREFIX=hpux_aCC ;
  466. PTHREAD_CFLAGS=-mt
  467. ;;
  468. *) MAKEFILE_PREFIX=hpux ;
  469. ;;
  470. esac
  471. INSTALL_PREFIX=hpux
  472. PLATFORM=HPUX
  473. AC_DEFINE(HPUX, 1, [Define this if OS is HP-UX])
  474. EDITLINE_FLG=Y
  475. SHRLIB_EXT=sl
  476. libdir=/usr/lib/pa20_64
  477. EXPORT_SYMBOLS_STYLE=hpux
  478. ;;
  479. i386-pc-solaris*)
  480. dnl detect native compiler, Sun Studio Pro
  481. comp=`echo "$CXX" | cut -c1-2`
  482. case $comp in
  483. CC) MAKEFILE_PREFIX=solaris
  484. PTHREAD_CFLAGS=-mt
  485. PTHREAD_LIBS=-lpthread
  486. ;;
  487. *) MAKEFILE_PREFIX=solx86gcc ;
  488. PTHREAD_CFLAGS=-pthreads ;;
  489. esac
  490. dnl if this is amd64 system, we should install our libraries in /usr/lib/amd64
  491. isa=`isainfo -k`
  492. if test "$isa" = "amd64"; then
  493. libdir=/usr/lib/amd64
  494. fi
  495. CAS_OPTIONS=`pwd`"/src/common/classes/fb_cas_sax.il";
  496. INSTALL_PREFIX=solaris
  497. PLATFORM=solx86
  498. AC_DEFINE(solx86, 1, [Define this if OS is Solarix x86])
  499. EDITLINE_FLG=Y
  500. SHRLIB_EXT=so
  501. ;;
  502. sparc-sun-solaris*)
  503. dnl detect native compiler, Sun Studio Pro
  504. comp=`echo "$CXX" | cut -c1-3`
  505. case $comp in
  506. CC)
  507. MAKEFILE_PREFIX=solaris
  508. PTHREAD_CFLAGS=-mt
  509. PTHREAD_LIBS=-lpthread
  510. ;;
  511. *)
  512. MAKEFILE_PREFIX=solaris-64gcc
  513. ;;
  514. esac
  515. CAS_OPTIONS=`pwd`"/src/common/classes/fb_cas.il";
  516. INSTALL_PREFIX=solaris
  517. PLATFORM=SOLARIS
  518. AC_DEFINE(SOLARIS, 1, [Define this if OS is Solaris Sparc])
  519. EDITLINE_FLG=Y
  520. SHRLIB_EXT=so
  521. ;;
  522. *-*-mingw*)
  523. MAKEFILE_PREFIX=mingw
  524. PLATFORM=win32
  525. AC_DEFINE(WIN_NT, 1, [Define this if OS is Windows NT])
  526. AC_DEFINE(HAVE_MULTI_THREAD, 1, [Define this if multi-threading should be supported])
  527. EDITLINE_FLG=N
  528. RAW_DEVICES_FLG=N
  529. SHRLIB_EXT=dll
  530. ;;
  531. *)
  532. AC_MSG_ERROR(unsupported platform ${build})
  533. ;;
  534. esac
  535. if test "$INSTALL_PREFIX" = ""; then
  536. INSTALL_PREFIX=$MAKEFILE_PREFIX
  537. fi
  538. AM_BINRELOC
  539. if test -z "$BINRELOC_CFLAGS"
  540. then
  541. CHANGE_PATH_SUPPORT=no
  542. fi
  543. AC_SUBST(MAKEFILE_PREFIX)
  544. AC_SUBST(AR_OPTIONS)
  545. AC_SUBST(PLATFORM)
  546. AC_SUBST(SHRLIB_EXT)
  547. AC_DEFINE_UNQUOTED(SHRLIB_EXT, "$SHRLIB_EXT", [Extension for shared libraries])
  548. AC_DEFINE(CASE_SENSITIVITY, true, [Define this if paths are case sensitive])
  549. dnl Some controllable options
  550. AC_ARG_ENABLE(developer,
  551. [ --enable-developer use developer mode rules (default=no)],
  552. [case "$enableval" in
  553. yes) DEVEL_FLG=Y;;
  554. no) DEVEL_FLG=N;;
  555. *) AC_MSG_ERROR(bad value '${enableval}' for --enable-developer);;
  556. esac])
  557. AC_SUBST(DEVEL_FLG)
  558. CLIENT_ONLY_FLG=N
  559. AC_ARG_ENABLE(client-only,
  560. [ --enable-client-only use client-only mode rules (default=no)],
  561. [case "$enableval" in
  562. yes) CLIENT_ONLY_FLG=Y;;
  563. no) CLIENT_ONLY_FLG=N;;
  564. *) AC_MSG_ERROR(bad value '${enableval}' for --enable-client-only);;
  565. esac])
  566. AC_SUBST(CLIENT_ONLY_FLG)
  567. CROSS=
  568. IS_CROSS=N
  569. AC_ARG_WITH(cross-build,
  570. [ --with-cross-build build for platform different from current one],
  571. [CROSS=${withval}
  572. IS_CROSS=Y])
  573. AC_SUBST(IS_CROSS)
  574. TOMMATH_BUILD=N
  575. AC_ARG_WITH(builtin-tommath,
  576. [ --with-builtin-tommath build libtommath library from firebird tree],
  577. [TOMMATH_BUILD=Y])
  578. AC_SUBST(TOMMATH_BUILD)
  579. WITH_TOMCRYPT=Y
  580. AC_ARG_WITH(tomcrypt,
  581. [ --without-tomcrypt do not use libtomcrypt (allowed with --enable-client-only)],
  582. [case "$withval" in
  583. yes) WITH_TOMCRYPT=Y;;
  584. no) WITH_TOMCRYPT=N;;
  585. *) AC_MSG_ERROR(bad value '${withval}' for --with-tomcrypt);;
  586. esac])
  587. AC_SUBST(WITH_TOMCRYPT)
  588. TOMCRYPT_BUILD=N
  589. AC_ARG_WITH(builtin-tomcrypt,
  590. [ --with-builtin-tomcrypt build libtomcrypt library from firebird tree],
  591. [TOMCRYPT_BUILD=Y])
  592. AC_SUBST(TOMCRYPT_BUILD)
  593. TERMLIB=
  594. AC_ARG_WITH(termlib,
  595. [ --with-termlib build with explicitly specified termcap support library],
  596. [TERMLIB=${withval}])
  597. RE2_BUILD=Y
  598. AC_ARG_WITH(system-re2,
  599. [ --with-system-re2 use system-wide re2 library instead of embedded copy],
  600. [RE2_BUILD=N])
  601. AC_SUBST(RE2_BUILD)
  602. dnl This is currently used for internal and public (API headers) needs
  603. SYSTEM_BOOST=N
  604. AC_ARG_WITH(system-boost,
  605. [ --with-system-boost use system-wide boost library instead of embedded copy],
  606. [SYSTEM_BOOST=Y])
  607. AC_SUBST(SYSTEM_BOOST)
  608. ATOMICLIB=atomic
  609. AC_ARG_WITH(atomiclib,
  610. [ --with-atomiclib build with explicitly specified atomic support library],
  611. [ATOMICLIB=${withval}])
  612. dnl Avoid dumb '-g -O2' autoconf's default
  613. dnl Debugging information and optimization flags should be set in prefix.$platform file
  614. dnl Should be replaced with AC_PROG_GCC_DEFAULT_FLAGS() when available
  615. if test "$CFLAGS" = "-g -O2" -o "$CFLAGS" = "-g" -o "$CFLAGS" = "-O2"; then
  616. CFLAGS=
  617. fi
  618. dnl Find out how to use threads on this platform
  619. XE_SAVE_ENV()
  620. ACX_PTHREAD([
  621. AC_DEFINE(HAVE_MULTI_THREAD, 1,
  622. [Define this if multi-threading should be supported])])
  623. XE_RESTORE_ENV()
  624. AC_SUBST(PTHREAD_LIBS)
  625. AC_SUBST(PTHREAD_CFLAGS)
  626. dnl Later we always build threaded binaries
  627. CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
  628. CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
  629. LIBS="$LIBS $PTHREAD_LIBS"
  630. case "$build" in
  631. *-*-darwin*)
  632. CFLAGS="$CFLAGS -I${VCPKG_INSTALLED}/include"
  633. CXXFLAGS="$CXXFLAGS -nostdinc++ -isystem ${VCPKG_INSTALLED}/include/c++/v1 -I${VCPKG_INSTALLED}/include"
  634. LDFLAGS="$LDFLAGS -nostdlib++ -stdlib=libc++ -L${VCPKG_INSTALLED}/lib -lc++"
  635. ;;
  636. esac
  637. AC_ARG_ENABLE(raw-devices,
  638. [ --enable-raw-devices enable databases on raw devices (default on POSIX)],
  639. [case "$enableval" in
  640. yes) RAW_DEVICES_FLG=Y;;
  641. no) RAW_DEVICES_FLG=N;;
  642. *) AC_MSG_ERROR(bad value '${enableval}' for --enable-raw-devices);;
  643. esac])
  644. if test "$RAW_DEVICES_FLG" = "Y"; then
  645. AC_DEFINE(SUPPORT_RAW_DEVICES, 1,
  646. [Define this if databases on raw devices should be supported])
  647. fi
  648. AC_ARG_ENABLE(rpath,
  649. [ --enable-rpath enable linking with RPATH (default)],
  650. [],
  651. [enable_rpath=yes])
  652. if test "x$enable_rpath" != "xno" || test "x$enable_rpath" = "x" ; then
  653. AC_SUBST(USE_RPATH, 1)
  654. fi
  655. LSB_FLG=N
  656. AC_ARG_ENABLE(lsb-build,
  657. [ --enable-lsb-build build LSB-compliant binaries (default=no)],
  658. [case "$enableval" in
  659. yes) LSB_FLG=Y;;
  660. no) LSB_FLG=N;;
  661. *) AC_MSG_ERROR(bad value '${enableval}' for --enable-lsb-build);;
  662. esac])
  663. AC_SUBST(LSB_FLG)
  664. if test "$LSB_FLG" = "Y"; then
  665. CFLAGS="$CFLAGS --lsb-besteffort --lsb-shared-libs=fbclient:ib_util:tommath:tomcrypt --lsb-target-version=4.1"
  666. CXXFLAGS="$CXXFLAGS --lsb-besteffort --lsb-shared-libs=fbclient:ib_util:tommath:tomcrypt --lsb-target-version=4.1"
  667. AC_SUBST(TOMMATH_BUILD, Y)
  668. AC_SUBST(TOMCRYPT_BUILD, Y)
  669. AC_SUBST(RE2_BUILD, Y)
  670. AC_SUBST(SYSTEM_BOOST, N)
  671. AC_PATH_PROG(CC, lsbcc, "", [$PATH$PATH_SEPARATOR/opt/lsb/bin$PATH_SEPARATOR])
  672. AC_PATH_PROG(CXX, lsbc++, "", [$PATH$PATH_SEPARATOR/opt/lsb/bin$PATH_SEPARATOR])
  673. if test "x$CC" = "x" || test "x$CXX" = "x" ; then
  674. AC_MSG_ERROR(Can not find LSB compilers in /opt/lsb/bin)
  675. fi
  676. fi
  677. AC_ARG_WITH(editline,
  678. [ --with-editline support fancy command line editing],
  679. [case "$withval" in
  680. yes) EDITLINE_FLG=Y;;
  681. no) EDITLINE_FLG=N;;
  682. *) AC_MSG_ERROR(bad value '${withval}' for --with-editline);;
  683. esac])
  684. AC_ARG_WITH(system-editline,
  685. [ --with-system-editline use OS supplied libeditline],
  686. [case "$withval" in
  687. yes) STD_EDITLINE=true;;
  688. no) STD_EDITLINE=false;;
  689. *) AC_MSG_ERROR(bad value '${withval}' for --with-system-editline);;
  690. esac])
  691. # not need editline in default libs, but need to test for its presence
  692. READLINE=edit # builtin default
  693. XE_SAVE_ENV()
  694. if test "$STD_EDITLINE" = "true"; then
  695. AC_CHECK_LIB(edit, readline, [READLINE=edit EDITLINE_FLG=Y],
  696. AC_CHECK_LIB(editline, readline, [READLINE=editline EDITLINE_FLG=Y],
  697. AC_CHECK_LIB(readline, readline, [READLINE=readline EDITLINE_FLG=Y],
  698. [STD_EDITLINE=false
  699. if test "$EDITLINE_FLG" = "Y"; then
  700. AC_MSG_WARN([[[--with-system-editline specified, not found. Using bundled editline]]])
  701. fi
  702. ])))
  703. fi
  704. XE_RESTORE_ENV()
  705. AC_SUBST(READLINE)
  706. AC_SUBST(STD_EDITLINE)
  707. AC_SUBST(EDITLINE_FLG)
  708. FB_SERVICE_NAME=gds_db
  709. FB_SERVICE_PORT=3050
  710. FB_IPC_NAME=FirebirdIPI
  711. AC_ARG_WITH(service-name,
  712. [ --with-service-name specify inet service name (default=gds_db)],
  713. [FB_SERVICE_NAME=${withval}])
  714. AC_ARG_WITH(service-port,
  715. [ --with-service-port specify inet service port (default=3050)],
  716. [FB_SERVICE_PORT=${withval}])
  717. AC_ARG_WITH(ipc-name,
  718. [ --with-ipc-name specify local IPC name (default=FirebirdIPI)],
  719. [FB_IPC_NAME=${withval}])
  720. AC_DEFINE_UNQUOTED(FB_SERVICE_NAME,"$FB_SERVICE_NAME", [Inet service name])
  721. AC_DEFINE_UNQUOTED(FB_SERVICE_PORT,$FB_SERVICE_PORT, [Inet service port])
  722. AC_DEFINE_UNQUOTED(FB_IPC_NAME,"$FB_IPC_NAME", [Local IPC name])
  723. AC_SUBST(FB_SERVICE_NAME)
  724. AC_SUBST(FB_SERVICE_PORT)
  725. AC_SUBST(FB_IPC_NAME)
  726. dnl Use non-standard directory placement control
  727. dnl Sorry - GNU standard is not Ok for us
  728. XE_CONF_DIR(fbbin, [executables DIR (PREFIX/bin)], FB_BINDIR, /bin)
  729. XE_CONF_DIR(fbsbin, [system admin executables DIR (PREFIX/bin)], FB_SBINDIR, /bin)
  730. XE_CONF_DIR(fbconf, [config files DIR (PREFIX)], FB_CONFDIR)
  731. XE_CONF_DIR(fblib, [object code libraries DIR (PREFIX/lib)], FB_LIBDIR, /lib)
  732. XE_CONF_DIR(fbinclude, [C/C++ header files DIR (PREFIX/include)], FB_INCDIR, /include)
  733. XE_CONF_DIR(fbdoc, [documentation root DIR (PREFIX/doc)], FB_DOCDIR, /doc)
  734. XE_CONF_DIR(fbsample, [examples DIR (PREFIX/examples)], FB_SAMPLEDIR, /examples)
  735. XE_CONF_DIR(fbsample-db, [examples database DIR (PREFIX/examples/empbuild)], FB_SAMPLEDBDIR, /examples/empbuild)
  736. XE_CONF_DIR(fbintl, [international DIR (PREFIX/intl)], FB_INTLDIR, /intl)
  737. XE_CONF_DIR(fbmisc, [misc DIR (PREFIX/misc)], FB_MISCDIR, /misc)
  738. XE_CONF_DIR(fbsecure-db, [security database DIR (PREFIX)], FB_SECDBDIR)
  739. XE_CONF_DIR(fbmsg, [message files DIR (PREFIX)], FB_MSGDIR)
  740. XE_CONF_DIR(fblog, [log files DIR (PREFIX)], FB_LOGDIR)
  741. XE_CONF_FILE(fblogfilename, [log file name within log dir (firebird.log)], FB_LOGFILENAME, firebird.log)
  742. XE_CONF_DIR(fbglock, [guardian lock DIR (PREFIX)], FB_GUARDDIR)
  743. XE_CONF_DIR(fbplugins, [plugins DIR (PREFIX)], FB_PLUGDIR, /plugins)
  744. XE_CONF_DIR(fbtzdata, [tzdata DIR (PREFIX/tzdata)], FB_TZDATADIR, /tzdata)
  745. AC_SUBST(CHANGE_PATH_SUPPORT)
  746. dnl gpre built-in language support (C/C++ are mandatory)
  747. GPRE_LANGUAGE_MODULES=""
  748. AC_ARG_WITH(gpre-ada,
  749. [ --with-gpre-ada support ADA in gpre (default=no)],
  750. [case "$withval" in
  751. yes) XE_APPEND(ada.cpp,GPRE_LANGUAGE_MODULES)
  752. AC_DEFINE(GPRE_ADA, 1, [Define this if GPRE should support ADA]);;
  753. no) ;;
  754. *) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-ada);;
  755. esac])
  756. AC_ARG_WITH(gpre-cobol,
  757. [ --with-gpre-cobol support COBOL in gpre (default=no)],
  758. [case "$withval" in
  759. yes) XE_APPEND(cob.cpp rmc.cpp,GPRE_LANGUAGE_MODULES)
  760. AC_DEFINE(GPRE_COBOL, 1, [Define this if GPRE should support COBOL]);;
  761. no) ;;
  762. *) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-cobol);;
  763. esac])
  764. AC_ARG_WITH(gpre-fortran,
  765. [ --with-gpre-fortran support FORTRAN in gpre (default=no)],
  766. [case "$withval" in
  767. yes) XE_APPEND(ftn.cpp,GPRE_LANGUAGE_MODULES)
  768. AC_DEFINE(GPRE_FORTRAN, 1, [Define this if GPRE should support FORTRAN]);;
  769. no) ;;
  770. *) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-fortran);;
  771. esac])
  772. AC_ARG_WITH(gpre-pascal,
  773. [ --with-gpre-pascal support PASCAL in gpre (default=no)],
  774. [case "$withval" in
  775. yes) XE_APPEND(pas.cpp,GPRE_LANGUAGE_MODULES)
  776. AC_DEFINE(GPRE_PASCAL, 1, [Define this if GPRE should support PASCAL]);;
  777. no) ;;
  778. *) AC_MSG_ERROR(bad value '${withval}' for --with-gpre-pascal);;
  779. esac])
  780. AC_SUBST(GPRE_LANGUAGE_MODULES)
  781. dnl Compression switch
  782. COMPRESSION=Y
  783. AC_ARG_WITH(wire-compress,
  784. [ --with-wire-compress support compression of data, transfered over the wire (default=yes)],
  785. [case "$withval" in
  786. yes) ;;
  787. no) COMPRESSION=N;;
  788. *) AC_MSG_ERROR(bad value '${withval}' for --with-wire-compress);;
  789. esac])
  790. dnl Checks for programs.
  791. AC_PROG_AWK
  792. AC_PROG_CC_STDC
  793. AC_PROG_GCC_TRADITIONAL
  794. AC_PROG_CXX
  795. AC_PROG_CPP
  796. AC_PROG_INSTALL
  797. AC_PROG_LN_S
  798. AC_PROG_MAKE_SET
  799. AC_CHECK_TOOL([OBJCOPY], [objcopy])
  800. AC_CHECK_TOOL([OBJDUMP], [objdump])
  801. AC_CHECK_TOOL([RANLIB], [ranlib])
  802. AC_CHECK_TOOL([READELF], [readelf])
  803. LT_INIT([dlopen win32-dll])
  804. dnl Check for system header files
  805. AC_HEADER_DIRENT
  806. AC_HEADER_STDC
  807. AC_HEADER_SYS_WAIT
  808. AC_CHECK_HEADERS(assert.h)
  809. AC_CHECK_HEADERS(ctype.h)
  810. AC_CHECK_HEADERS(errno.h)
  811. AC_CHECK_HEADERS(fcntl.h)
  812. AC_CHECK_HEADERS(grp.h)
  813. AC_CHECK_HEADERS(pwd.h)
  814. AC_CHECK_HEADERS(locale.h)
  815. AC_CHECK_HEADERS(math.h)
  816. AC_CHECK_HEADERS(pthread.h)
  817. AC_CHECK_HEADERS(sys/types.h)
  818. AC_CHECK_HEADERS(sys/stat.h)
  819. AC_CHECK_HEADERS(sys/uio.h)
  820. AC_HEADER_SYS_WAIT
  821. AC_HEADER_TIME
  822. AC_CHECK_HEADERS(sys/time.h)
  823. AC_CHECK_HEADERS(sys/timeb.h)
  824. AC_CHECK_HEADERS(sys/param.h)
  825. AC_CHECK_HEADERS(sys/mount.h)
  826. AC_CHECK_HEADERS(sys/ioctl.h)
  827. AC_CHECK_HEADERS(sys/select.h)
  828. AC_CHECK_HEADERS(sys/syscall.h)
  829. AC_CHECK_HEADERS(sys/signal.h)
  830. AC_CHECK_HEADERS(limits.h)
  831. AC_CHECK_HEADERS(setjmp.h)
  832. AC_CHECK_HEADERS(stdarg.h)
  833. AC_CHECK_HEADERS(stdlib.h)
  834. AC_CHECK_HEADERS(string.h)
  835. AC_CHECK_HEADERS(signal.h sys/signal.h sys/siginfo.h)
  836. AC_CHECK_HEADERS(termio.h termios.h)
  837. if test "$EDITLINE_FLG" = "Y"; then
  838. AC_HEADER_DIRENT
  839. AC_DEFINE(HAVE_EDITLINE_H, 1, [Define this if editline is in use])
  840. fi
  841. AC_CHECK_HEADERS(unistd.h)
  842. AC_CHECK_HEADERS(varargs.h)
  843. AC_CHECK_HEADERS(crypt.h)
  844. AC_CHECK_HEADERS(netinet/in.h rpc/rpc.h netconfig.h)
  845. AC_CHECK_HEADERS(rpc/xdr.h,,,[#include <rpc/rpc.h>])
  846. AC_CHECK_HEADERS(aio.h)
  847. AC_CHECK_HEADERS(mntent.h mnttab.h sys/mntent.h sys/mnttab.h)
  848. AC_CHECK_HEADERS(sys/ipc.h sys/file.h)
  849. AC_CHECK_HEADERS(sys/resource.h)
  850. AC_CHECK_HEADERS(sys/sem.h)
  851. AC_CHECK_HEADERS(semaphore.h)
  852. AC_CHECK_HEADERS(float.h)
  853. AC_CHECK_HEADERS(poll.h)
  854. AC_CHECK_HEADERS(langinfo.h)
  855. AC_CHECK_HEADERS(iconv.h)
  856. AC_CHECK_HEADERS(linux/falloc.h)
  857. AC_CHECK_HEADERS(utime.h)
  858. AC_CHECK_HEADERS(socket.h sys/socket.h sys/sockio.h winsock2.h)
  859. AC_CHECK_DECLS(SOCK_CLOEXEC,,,[[
  860. #ifdef HAVE_SYS_SOCKET_H
  861. #include <sys/socket.h>
  862. #endif
  863. #ifdef HAVE_SOCKET_H
  864. #include <socket.h>
  865. #endif
  866. #ifdef HAVE_SYS_SOCKIO_H
  867. #include <sys/sockio.h>
  868. #endif
  869. #ifdef HAVE_WINSOCK2_H
  870. #include <winsock2.h>
  871. #endif
  872. ]])
  873. dnl check for compression
  874. if test "$COMPRESSION" = "Y"; then
  875. AC_CHECK_HEADERS(zlib.h,,AC_MSG_ERROR(zlib header not found - please install development zlib package))
  876. fi
  877. dnl check for ICU presence
  878. AC_CHECK_HEADER(unicode/ucnv.h,,AC_MSG_ERROR(ICU support not found - please install development ICU package))
  879. if test "$LSB_FLG" = "N"; then
  880. dnl setting ICU_OK here is done to only avoid default action
  881. AC_CHECK_LIB(icuuc, main, ICU_OK=yes, AC_MSG_ERROR(ICU support not found - please install development ICU package))
  882. fi
  883. dnl check for tommath presence
  884. if test "$TOMMATH_BUILD" = "Y"; then
  885. MATHLIB=-ltommath
  886. else
  887. AC_CHECK_HEADER(tommath.h,,
  888. AC_MSG_ERROR(Include file for tommath not found - please install development tommath package or use --with-builtin-tommath))
  889. XE_SAVE_ENV()
  890. LIBS=
  891. AC_CHECK_LIB(tommath, mp_init, MATHLIB=-ltommath,
  892. AC_MSG_ERROR(Library tommath not found - please install development tommath package or use --with-builtin-tommath))
  893. XE_RESTORE_ENV()
  894. fi
  895. AC_SUBST(MATHLIB)
  896. dnl check for tomcrypt presence
  897. if test "$TOMCRYPT_BUILD" = "Y"; then
  898. CRYPTLIB=-ltomcrypt
  899. else
  900. if test "$WITH_TOMCRYPT" = "Y"; then
  901. XE_SAVE_ENV()
  902. CFLAGS="$CFLAGS -DLTC_NO_ASM"
  903. AC_CHECK_HEADER(tomcrypt.h,,
  904. AC_MSG_ERROR(Include file for tomcrypt not found - please install development tomcrypt package or use --with-builtin-tomcrypt))
  905. XE_RESTORE_ENV()
  906. XE_SAVE_ENV()
  907. LIBS=
  908. AC_CHECK_LIB(tomcrypt, sha1_init, CRYPTLIB=-ltomcrypt,
  909. AC_MSG_ERROR(Library tomcrypt not found - please install development tomcrypt package or use --with-builtin-tomcrypt))
  910. XE_RESTORE_ENV()
  911. fi
  912. fi
  913. AC_SUBST(CRYPTLIB)
  914. dnl Check for termcap support
  915. if test "$EDITLINE_FLG" = "Y"; then
  916. if test -z "$TERMLIB"; then
  917. AC_CHECK_LIB(curses, tgetent, TERMLIB=curses, \
  918. AC_CHECK_LIB(ncurses, tgetent, TERMLIB=ncurses, \
  919. AC_CHECK_LIB(termcap, tgetent, TERMLIB=termcap, \
  920. AC_CHECK_LIB(tinfo, tgetent, TERMLIB=tinfo, \
  921. AC_MSG_ERROR(termcap support not found)))))
  922. fi
  923. AC_SUBST(TERMLIB)
  924. fi
  925. if test "$CLIENT_ONLY_FLG" = "N"; then
  926. dnl check for re2 presence
  927. if test "$RE2_BUILD" != "Y"; then
  928. XE_SAVE_ENV()
  929. AC_LANG_PUSH(C++)
  930. AC_CHECK_HEADER(re2/re2.h, RE2LIB=-lre2,
  931. AC_MSG_ERROR(Include file for re2 not found - please install development re2 package or drop --with-system-re2))
  932. AC_LANG_POP(C++)
  933. XE_RESTORE_ENV()
  934. fi
  935. AC_SUBST(RE2LIB)
  936. fi
  937. dnl Check for libraries
  938. AC_SEARCH_LIBS(dlopen, dl)
  939. AC_CHECK_LIB(m, main)
  940. AC_SEARCH_LIBS(inet_aton, resolv)
  941. AC_CHECK_LIB($ATOMICLIB, main)
  942. dnl Check for libraries for static C++ runtime linking
  943. AC_CHECK_LIB(supc++, main, XE_APPEND(-lsupc++, STATIC_CXXSUPPORT_LIB))
  944. AC_CHECK_LIB(gcc_eh, main, XE_APPEND(-lgcc_eh, STATIC_CXXSUPPORT_LIB))
  945. AC_SUBST(STATIC_CXXSUPPORT_LIB)
  946. AC_LANG_PUSH(C++)
  947. dnl check for INFINITY in math.h
  948. AC_COMPILE_IFELSE(
  949. [AC_LANG_PROGRAM([[#include <math.h>]], [[double x = INFINITY;]])],
  950. AC_DEFINE(HAVE_INFINITY, 1, [Define this if INFINITY is defined in math.h]))
  951. dnl check for va_copy() in stdarg.h
  952. AC_COMPILE_IFELSE(
  953. [AC_LANG_PROGRAM([[#include <stdarg.h>
  954. void vafun(const char* fmt, ...) {va_list par, par2; va_start(par, fmt); va_copy(par2, par); va_end(par2); va_end(par);}]],
  955. [[return 0;]])],
  956. AC_DEFINE(HAVE_VA_COPY, 1, [Define this if va_copy() is defined in stdarg.h]))
  957. if test "$AR_OPT_CHECK" = "true"; then
  958. dnl if 64-bit mode, then archive tool, ar, needs -X64 option
  959. AC_COMPILE_IFELSE(
  960. [AC_LANG_PROGRAM(,[[int lp64 = __64BIT__; ]])],
  961. [AR_OPTIONS=-X64],)
  962. fi
  963. XE_SAVE_ENV()
  964. CXXFLAGS="$CXXFLAGS -std=c++17"
  965. AC_CACHE_CHECK([whether the C++ compiler understands noexcept], [ac_cv_cxx_noexcept], [
  966. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int f(int x) noexcept { return x + 1; }]], [[]])],
  967. [ac_cv_cxx_noexcept=yes], [ac_cv_cxx_noexcept=no])])
  968. XE_RESTORE_ENV()
  969. if test "$ac_cv_cxx_noexcept" = yes; then
  970. AC_DEFINE([HAS_NOEXCEPT], [1], [Define if the C++ compiler understands noexcept.])
  971. fi
  972. AC_LANG_POP(C++)
  973. dnl Check for functions
  974. AC_CHECK_FUNCS(gettimeofday)
  975. if test "$ac_cv_func_gettimeofday" = "yes"; then
  976. AC_MSG_CHECKING(if gettimeofday accepts second (timezone) argument)
  977. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/time.h>]], [[struct timeval tp; gettimeofday(&tp, (struct timezone *)0);]])],[AC_DEFINE(GETTIMEOFDAY_RETURNS_TIMEZONE, 1,
  978. [Define this if gettimeofday accepts second (timezone) argument])
  979. AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
  980. AH_BOTTOM([#ifdef GETTIMEOFDAY_RETURNS_TIMEZONE
  981. #define GETTIMEOFDAY(x) gettimeofday((x), (struct timezone *)0)
  982. #else
  983. #define GETTIMEOFDAY(x) gettimeofday((x))
  984. #endif])
  985. fi
  986. AC_CHECK_FUNCS(time times)
  987. AC_CHECK_FUNCS(nanosleep)
  988. AC_SEARCH_LIBS(gethostname,nsl)
  989. AC_SEARCH_LIBS(gethostbyname,nsl)
  990. AC_SEARCH_LIBS(connect,socket)
  991. AC_CHECK_FUNCS(strcasecmp stricmp)
  992. AC_CHECK_FUNCS(strncasecmp strnicmp)
  993. AC_SEARCH_LIBS(dirname, gen)
  994. AC_CHECK_FUNCS(dirname)
  995. AC_CHECK_FUNCS(sigaction setitimer)
  996. AC_CHECK_FUNCS(snprintf vsnprintf)
  997. AC_CHECK_FUNCS(swab _swab)
  998. AC_FUNC_MMAP
  999. AC_FUNC_FORK
  1000. AC_FUNC_SETPGRP
  1001. AC_CHECK_FUNCS(setpgid)
  1002. AC_FUNC_GETPGRP
  1003. AC_CHECK_FUNCS(flock)
  1004. AC_CHECK_FUNCS(dladdr)
  1005. AC_CHECK_FUNCS(initgroups)
  1006. AC_CHECK_FUNCS(getpagesize)
  1007. AC_CHECK_FUNCS(pread pwrite)
  1008. AC_CHECK_FUNCS(getcwd getwd)
  1009. AC_CHECK_FUNCS(setmntent getmntent)
  1010. if test "$ac_cv_func_getmntent" = "yes"; then
  1011. AC_MSG_CHECKING(if getmntent needs second argument)
  1012. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
  1013. #include <sys/mnttab.h>]], [[FILE *f; struct mntent *m; getmntent(f, m);]])],[AC_DEFINE(GETMNTENT_TAKES_TWO_ARGUMENTS, 1,
  1014. [Define this if getmntent needs second argument])
  1015. AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
  1016. fi
  1017. AC_CHECK_FUNCS(setrlimit getrlimit)
  1018. AC_CHECK_FUNCS(tcgetattr strdup)
  1019. AC_CHECK_FUNCS(mkstemp)
  1020. AC_CHECK_FUNCS(pthread_keycreate pthread_key_create)
  1021. AC_CHECK_FUNCS(llrint)
  1022. AC_CHECK_FUNCS(localtime_r)
  1023. AC_CHECK_FUNCS(gmtime_r)
  1024. AC_CHECK_FUNCS(ctime_r)
  1025. AC_CHECK_FUNCS(fchmod)
  1026. AC_CHECK_FUNCS(semtimedop)
  1027. AC_CHECK_FUNCS(fegetenv)
  1028. AC_CHECK_FUNCS(strerror_r)
  1029. AC_CHECK_FUNCS(qsort_r)
  1030. case $host in
  1031. *-darwin*)
  1032. ac_cv_func_fdatasync=no
  1033. ;;
  1034. *)
  1035. AC_CHECK_FUNCS(fdatasync fsync)
  1036. ;;
  1037. esac
  1038. AC_CHECK_FUNCS(poll)
  1039. AC_CHECK_FUNCS(dlinfo)
  1040. if test "$ac_cv_func_dlinfo" = "yes"; then
  1041. AC_MSG_CHECKING(if dlinfo supports RTLD_DI_LINKMAP)
  1042. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
  1043. #include <link.h>
  1044. #include <dlfcn.h>]], [[struct link_map info; dlinfo(0, RTLD_DI_LINKMAP, &info);]])],[AC_DEFINE(HAVE_RTLD_DI_LINKMAP, [1], [Linkmap info support]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
  1045. AC_MSG_CHECKING(if dlinfo supports RTLD_DI_ORIGIN)
  1046. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
  1047. #include <link.h>
  1048. #include <dlfcn.h>]], [[char info[256]; dlinfo(0, RTLD_DI_ORIGIN, info);]])],[AC_DEFINE(HAVE_RTLD_DI_ORIGIN, [1], [Origin info support]) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
  1049. fi
  1050. dnl Check for time function
  1051. AC_SEARCH_LIBS(clock_gettime, rt)
  1052. AC_CHECK_FUNCS(clock_gettime)
  1053. dnl Checks for pthread functions
  1054. AC_CHECK_FUNCS(pthread_mutexattr_setprotocol)
  1055. AC_CHECK_FUNCS(pthread_mutexattr_setrobust_np)
  1056. AC_CHECK_FUNCS(pthread_mutex_consistent_np)
  1057. AC_CHECK_FUNCS(pthread_rwlockattr_setkind_np)
  1058. AC_CHECK_FUNCS(pthread_cancel)
  1059. AC_CHECK_FUNCS(pthread_atfork)
  1060. AC_CHECK_FUNCS(sigset)
  1061. dnl Check for fallocate() system call
  1062. AC_CHECK_FUNCS(fallocate)
  1063. dnl Check for close_on_exec support
  1064. AC_CHECK_FUNCS(accept4)
  1065. dnl Semaphores
  1066. if test "$ac_cv_header_semaphore_h" = "yes"; then
  1067. AC_SEARCH_LIBS(sem_init, rt pthread)
  1068. AC_CHECK_FUNCS(sem_timedwait)
  1069. AC_CHECK_FUNCS(sem_init)
  1070. if test "$ac_cv_func_sem_init" = "yes"; then
  1071. AC_MSG_CHECKING(for working sem_init())
  1072. AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <semaphore.h>
  1073. int main () {
  1074. sem_t s;
  1075. return sem_init(&s,0,0);
  1076. }
  1077. ]])],[AC_DEFINE(WORKING_SEM_INIT,1,[Define this if sem_init() works on the platform])
  1078. AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
  1079. AC_SEARCH_LIBS(sem_open, rt pthread)],[])
  1080. fi
  1081. fi
  1082. dnl Some OS place iconv() support in separate library
  1083. if test "$ac_cv_header_iconv_h" = "yes"; then
  1084. AC_SEARCH_LIBS(iconv_open, iconv)
  1085. AC_SEARCH_LIBS(libiconv_open, iconv)
  1086. fi
  1087. dnl HPUX has a bug in .h files. To detect it we need C++ here.
  1088. AC_LANG_PUSH(C++)
  1089. AC_LINK_IFELSE(
  1090. [AC_LANG_PROGRAM([[#include <fcntl.h>]], [[posix_fadvise(0, 0, 0, 0);]])],
  1091. AC_DEFINE(HAVE_POSIX_FADVISE, 1, [Define this if posix_fadvise() is present on the platform]))
  1092. AC_LANG_POP(C++)
  1093. dnl Checks for typedefs, structures, and compiler characteristics.
  1094. AC_C_BIGENDIAN(
  1095. [
  1096. AC_DEFINE(WORDS_BIGENDIAN,1,[Words have most significant byte first])
  1097. AC_SUBST(TZDATA_ZIP,be.zip)
  1098. ],
  1099. [
  1100. AC_SUBST(TZDATA_ZIP,le.zip)
  1101. ]
  1102. )
  1103. AC_C_VOLATILE
  1104. AC_TYPE_OFF_T
  1105. AC_TYPE_SIZE_T
  1106. AC_TYPE_UID_T
  1107. AC_SYS_LARGEFILE
  1108. if test "$ac_cv_sys_file_offset_bits" = "no"; then
  1109. AC_MSG_CHECKING(for native large file support)
  1110. AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <unistd.h>
  1111. int main () {
  1112. return !(sizeof(off_t) == 8);
  1113. }]])],[ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
  1114. AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)],[])
  1115. fi
  1116. dnl Use int128 support for big endians
  1117. if test "$ac_cv_c_bigendian" = "yes"; then
  1118. ABSEIL_BUILD_FLG=Y
  1119. AC_DEFINE(FB_USE_ABSEIL_INT128, 1, [Use Abseil's class int128])
  1120. else
  1121. ABSEIL_BUILD_FLG=N
  1122. fi
  1123. AC_SUBST(ABSEIL_BUILD_FLG)
  1124. AC_CHECK_SIZEOF(void *)
  1125. VOID_PTR_SIZE=$ac_cv_sizeof_void_p
  1126. AC_SUBST(VOID_PTR_SIZE)
  1127. AC_CHECK_SIZEOF(long)
  1128. AC_CHECK_SIZEOF(size_t)
  1129. AC_CHECK_TYPES([socklen_t],,,[#include <sys/socket.h>])
  1130. AH_BOTTOM([#ifndef HAVE_SOCKLEN_T
  1131. typedef int socklen_t;
  1132. #endif])
  1133. AC_CHECK_TYPES([semun])
  1134. if test "$ac_cv_type_semun" = "no"; then
  1135. AC_MSG_CHECKING(if sem.h defines semun)
  1136. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
  1137. #include <sys/ipc.h>
  1138. #include <sys/sem.h>]], [[union semun s;]])],[ac_cv_type_semun=yes; AC_DEFINE(HAVE_SEMUN) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
  1139. fi
  1140. AC_CHECK_TYPES([struct XDR::xdr_ops],,,[#include <rpc/rpc.h>
  1141. #include <rpc/xdr.h>])
  1142. AC_CHECK_TYPES([struct xdr_ops],,,[#include <rpc/rpc.h>
  1143. #include <rpc/xdr.h>])
  1144. dnl AC_STRUCT_DIRENT_D_TYPE
  1145. AC_CHECK_MEMBER([struct dirent.d_type],
  1146. AC_DEFINE(HAVE_STRUCT_DIRENT_D_TYPE,1,[Define this if struct dirent has d_type]),,
  1147. [#include <dirent.h>])
  1148. dnl EKU: try to determine the alignment of long and double
  1149. dnl replaces FB_ALIGNMENT and FB_DOUBLE_ALIGN in src/jrd/common.h
  1150. AC_MSG_CHECKING(alignment of long)
  1151. AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <semaphore.h>
  1152. int main () {
  1153. struct s {
  1154. char a;
  1155. union { long long x; sem_t y; } b;
  1156. };
  1157. return (int)&((struct s*)0)->b;
  1158. }]])],[ac_cv_c_alignment=$ac_status],[ac_cv_c_alignment=$ac_status],[])
  1159. AC_MSG_RESULT($ac_cv_c_alignment)
  1160. AC_DEFINE_UNQUOTED(FB_ALIGNMENT, $ac_cv_c_alignment, [Alignment of long])
  1161. AC_MSG_CHECKING(alignment of double)
  1162. AC_RUN_IFELSE([AC_LANG_SOURCE([[int main () {
  1163. struct s {
  1164. char a;
  1165. double b;
  1166. };
  1167. return (int)&((struct s*)0)->b;
  1168. }]])],[ac_cv_c_double_align=$ac_status],[ac_cv_c_double_align=$ac_status],[])
  1169. AC_MSG_RESULT($ac_cv_c_double_align)
  1170. AC_DEFINE_UNQUOTED(FB_DOUBLE_ALIGN, $ac_cv_c_double_align, [Alignment of double])
  1171. AC_MSG_CHECKING(correctness of comparing 64-bit integers)
  1172. ac_cv_compare_failed=1
  1173. ac_cv_compare_result=failed
  1174. savedflags="$CFLAGS"
  1175. CFLAGS="$CFLAGS -O3"
  1176. AC_RUN_IFELSE([AC_LANG_SOURCE([[typedef long long int SINT64;
  1177. static int abs64Compare(SINT64 n1, SINT64 n2) {
  1178. n1 = n1 > 0 ? -n1 : n1;
  1179. n2 = n2 > 0 ? -n2 : n2;
  1180. return n1 == n2 ? 0 : n1 < n2 ? 1 : -1;
  1181. }
  1182. int main() {
  1183. return abs64Compare(-9223372036854775808, 3652058) == 1 ? 0 : 1;
  1184. }]])],[ac_cv_compare_failed=0
  1185. ac_cv_compare_result=success])
  1186. CFLAGS="$savedflags"
  1187. AC_MSG_RESULT($ac_cv_compare_result)
  1188. AC_DEFINE_UNQUOTED(FB_INT64_COMPARE_FAILED, $ac_cv_compare_failed, [Error when comparing 64-bit integers])
  1189. dnl EKU: Add any platform specific tests below
  1190. case "$PLATFORM" in
  1191. LINUX)
  1192. dnl MOD: Check for /proc/self/exe mainly used on linux systems
  1193. dnl this is used to determine path to executable file.
  1194. AC_CHECK_FILES(/proc/self/exe)
  1195. ;;
  1196. FREEBSD|GENTOOFREEBSD)
  1197. dnl the AC_CHECK_TYPES for socklen_t doesn't include sys/socket.h
  1198. dnl so test for socklen_t with sys/socket.h included
  1199. AC_MSG_CHECKING(if sys/socket.h defines socklen_t)
  1200. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
  1201. #include <sys/socket.h>]], [[socklen_t s;]])],[AC_DEFINE(HAVE_SOCKLEN_T) AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
  1202. ;;
  1203. SOLARIS|solx86)
  1204. if test "$EDITLINE_FLG" = "Y"; then
  1205. AC_CHECK_LIB(termcap, main, XE_APPEND(-ltermcap,EDITLINE_A))
  1206. fi
  1207. AC_CHECK_TYPES([caddr_t])
  1208. AC_ARG_WITH(sfio,
  1209. AS_HELP_STRING([--with-sfio=PATH],[use sfio (replacement stdio on Solaris) (default=no)]),
  1210. [ac_cv_use_sfio=$withval],[ac_cv_use_sfio=no])
  1211. if test "$ac_cv_use_sfio" = "no"; then
  1212. SFIO_DIR=""
  1213. SFIO_FLAGS=""
  1214. SFIO_LDFLAGS=""
  1215. else
  1216. AC_CHECK_LIB(sfio, main)
  1217. dnl Kkuznetsov: using sfio-mt looks like double protecting of FILE*
  1218. dnl and I avoid to use vthread based on posix threading
  1219. #AC_CHECK_LIB(sfio-mt, main,,
  1220. #AC_MSG_ERROR([sfio library not found]),-lvthread)
  1221. #XE_PREPEND(-lvthread,LIBS)
  1222. SFIO_DIR="$ac_cv_use_sfio"
  1223. SFIO_FLAGS="-DSFIO -I$ac_cv_use_sfio/include"
  1224. SFIO_LDFLAGS="-L$ac_cv_use_sfio/lib"
  1225. SFIO_EXAMPLES="Y"
  1226. fi
  1227. ;;
  1228. win32)
  1229. XE_PREPEND( -mthreads -lmpr -lversion -lws2_32 -lole32,LIBS)
  1230. ;;
  1231. *)
  1232. ;;
  1233. esac
  1234. dnl Detect support for ISO syntax for thread-locals
  1235. XE_SAVE_ENV()
  1236. CXXFLAGS=$TLS_OPTIONS
  1237. AC_COMPILE_IFELSE(
  1238. [AC_LANG_PROGRAM([[__thread int a = 42;]],[[a = a + 1;]])],
  1239. AC_DEFINE(HAVE___THREAD, 1, [Define it if compiler supports ISO syntax for thread-local storage]),)
  1240. XE_RESTORE_ENV()
  1241. AC_SUBST(TLS_OPTIONS)
  1242. AC_SUBST(ATOMIC_OPTIONS)
  1243. AC_SUBST(CAS_OPTIONS)
  1244. dnl ##################### DO NOT ADD ANY TESTS BELOW ###########################
  1245. AC_SUBST(SFIO_DIR)
  1246. AC_SUBST(SFIO_FLAGS)
  1247. AC_SUBST(SFIO_LDFLAGS)
  1248. AC_SUBST(SFIO_EXAMPLES)
  1249. dnl The following file defines the version number strings. Specially for install/uninstall routines
  1250. CXX="$CXX" . ./src/misc/writeBuildNum.sh
  1251. AC_SUBST(FIREBIRD_VERSION)
  1252. AC_SUBST(FIREBIRD_PACKAGE_VERSION)
  1253. AC_SUBST(FB_BUILD_NUM, $BuildNum)
  1254. BUILD_ROOT_DIR=`pwd`
  1255. SRC_ROOT=$BUILD_ROOT_DIR/src
  1256. GEN_ROOT=$BUILD_ROOT_DIR/gen
  1257. NEW_FIREBIRD_DIR=$GEN_ROOT/firebird
  1258. AC_SUBST(BUILD_ROOT_DIR)
  1259. AC_SUBST(NEW_FIREBIRD_DIR)
  1260. AC_SUBST(EXPORT_SYMBOLS_STYLE)
  1261. AC_DEFINE_UNQUOTED(FB_PREFIX, $(if test "x$prefix" = "xNONE" ; then echo \"$ac_default_prefix\"; else echo \"$prefix\"; fi), [Installation path prefix])
  1262. FB_TARGETS="Debug Release"
  1263. test "x$CROSS" = "x" || FB_TARGETS="$FB_TARGETS Native"
  1264. AC_CONFIG_COMMANDS(,,[
  1265. FB_TARGETS="$FB_TARGETS"
  1266. for fb_tgt in \$FB_TARGETS; do
  1267. echo "Creating \$fb_tgt directories"
  1268. dnl # output
  1269. if test "x\$fb_tgt" = "xNative" || [[[ x$CROSS != xandroid* ]]]; then
  1270. mkdir -p gen/\$fb_tgt/firebird/bin
  1271. mkdir -p gen/\$fb_tgt/firebird/lib
  1272. mkdir -p gen/\$fb_tgt/firebird/tests
  1273. mkdir -p gen/\$fb_tgt/firebird/tzdata
  1274. mkdir -p gen/\$fb_tgt/firebird/include/firebird/impl
  1275. if test "$CLIENT_ONLY_FLG" = "N" || test "$WITH_TOMCRYPT" = "Y"; then
  1276. mkdir -p gen/\$fb_tgt/firebird/plugins
  1277. fi
  1278. if test "$CLIENT_ONLY_FLG" = "N"; then
  1279. mkdir -p gen/\$fb_tgt/firebird/plugins/udr
  1280. mkdir -p gen/\$fb_tgt/firebird/examples/api
  1281. mkdir -p gen/\$fb_tgt/firebird/examples/dbcrypt
  1282. mkdir -p gen/\$fb_tgt/firebird/examples/empbuild
  1283. mkdir -p gen/\$fb_tgt/firebird/examples/extauth
  1284. mkdir -p gen/\$fb_tgt/firebird/examples/include
  1285. mkdir -p gen/\$fb_tgt/firebird/examples/interfaces
  1286. mkdir -p gen/\$fb_tgt/firebird/examples/object_pascal
  1287. mkdir -p gen/\$fb_tgt/firebird/examples/object_pascal/common
  1288. mkdir -p gen/\$fb_tgt/firebird/examples/package
  1289. mkdir -p gen/\$fb_tgt/firebird/examples/stat
  1290. mkdir -p gen/\$fb_tgt/firebird/examples/udf
  1291. mkdir -p gen/\$fb_tgt/firebird/examples/udr
  1292. mkdir -p gen/\$fb_tgt/firebird/examples/prebuilt/bin
  1293. mkdir -p gen/\$fb_tgt/firebird/examples/prebuilt/plugins
  1294. mkdir -p gen/\$fb_tgt/firebird/misc
  1295. fi
  1296. fi
  1297. case "$build" in
  1298. *-*-darwin*)
  1299. cp -a $VCPKG_INSTALLED/lib/libicu* gen/\$fb_tgt/firebird/lib/
  1300. install_name_tool -id @rpath/lib/libicuuc.dylib gen/\$fb_tgt/firebird/lib/libicuuc.dylib
  1301. install_name_tool -id @rpath/lib/libicui18n.dylib gen/\$fb_tgt/firebird/lib/libicui18n.dylib
  1302. install_name_tool -id @rpath/lib/libicudata.dylib gen/\$fb_tgt/firebird/lib/libicudata.dylib
  1303. install_name_tool -change @rpath/libicudata.71.dylib @loader_path/libicudata.71.dylib gen/\$fb_tgt/firebird/lib/libicuuc.71.dylib
  1304. install_name_tool -change @rpath/libicudata.71.dylib @loader_path/libicudata.71.dylib gen/\$fb_tgt/firebird/lib/libicui18n.71.dylib
  1305. install_name_tool -change @rpath/libicuuc.71.dylib @loader_path/libicuuc.71.dylib gen/\$fb_tgt/firebird/lib/libicui18n.71.dylib
  1306. ;;
  1307. esac
  1308. dnl ### TEMP ### directories for generated .cpp, .o and .d by module name
  1309. for src_dir in `cd src; ls -R -1 * | grep : | tr -d : | tr "\n" " "; cd ..`; do
  1310. mkdir -p temp/\$fb_tgt/\$src_dir
  1311. done
  1312. for src_dir in `ls -R -1 examples | grep : | tr -d : | tr "\n" " "`; do
  1313. mkdir -p temp/\$fb_tgt/\$src_dir
  1314. done
  1315. src/misc/writeBuildNum.sh createMakeVersion gen/Make.Version
  1316. done
  1317. dnl # rebuild version header if needed
  1318. ./src/misc/writeBuildNum.sh rebuildHeader
  1319. ])
  1320. MAKE_SRC_DIR=builds/posix
  1321. dnl common files for all posix hosts
  1322. dnl TODO: fix "arch-specific/linux/" paths for common posix scripts with SVN
  1323. for fb_tgt in $FB_TARGETS; do
  1324. AC_CONFIG_FILES([
  1325. gen/$fb_tgt/firebird/firebird.conf:builds/install/misc/firebird.conf
  1326. gen/$fb_tgt/firebird/plugins.conf:builds/install/misc/plugins.conf
  1327. ])
  1328. if test "$CLIENT_ONLY_FLG" = "N"; then
  1329. AC_CONFIG_FILES([
  1330. gen/$fb_tgt/firebird/databases.conf:builds/install/misc/databases.conf
  1331. gen/$fb_tgt/firebird/fbtrace.conf:src/utilities/ntrace/fbtrace.conf
  1332. gen/$fb_tgt/firebird/replication.conf:builds/install/misc/replication.conf
  1333. ])
  1334. if test "x$fb_tgt" != "xNative" && [[[ x$CROSS = xandroid* ]]]; then
  1335. AC_CONFIG_FILES([
  1336. gen/$fb_tgt/firebird/fbintl.conf:builds/install/misc/fbintl.conf
  1337. ])
  1338. else
  1339. AC_CONFIG_FILES([
  1340. gen/$fb_tgt/firebird/intl/fbintl.conf:builds/install/misc/fbintl.conf
  1341. ])
  1342. fi
  1343. fi
  1344. done
  1345. if test "x$CROSS" != "x"; then
  1346. AC_CONFIG_FILES([gen/make.crossPlatform:builds/posix/make.$CROSS])
  1347. fi
  1348. if [[[ x$CROSS != xandroid* ]]]; then
  1349. AC_CONFIG_FILES([
  1350. gen/Release/firebird/bin/fb_config:builds/install/posix-common/fb_config.in
  1351. gen/Release/firebird/bin/posixLibrary.sh:builds/install/posix-common/posixLibrary.sh.in
  1352. gen/Release/firebird/bin/install.sh:builds/install/posix-common/install.sh.in
  1353. gen/Release/firebird/bin/FirebirdUninstall.sh:builds/install/posix-common/FirebirdUninstall.sh.in
  1354. gen/Release/firebird/bin/changeServerMode.sh:builds/install/posix-common/changeServerMode.sh.in
  1355. gen/Release/firebird/bin/registerDatabase.sh:builds/install/posix-common/registerDatabase.sh.in
  1356. ])
  1357. fi
  1358. AC_CONFIG_FILES([
  1359. gen/vers.sh:builds/posix/vers.sh.in
  1360. ])
  1361. dnl: Platform Specific Files
  1362. case "$PLATFORM" in
  1363. LINUX|GENTOOFREEBSD)
  1364. AC_CONFIG_COMMANDS(,,[
  1365. mkdir -p gen/install/misc])
  1366. INSTALL_SRC_DIR=builds/install/arch-specific/linux
  1367. AC_CONFIG_FILES([
  1368. gen/install/makeInstallImage.sh:builds/install/arch-specific/linux/makeInstallImage.sh.in
  1369. gen/install/misc/firebird.init.d.generic:builds/install/arch-specific/linux/firebird.init.d.generic.in
  1370. gen/install/misc/firebird.init.d.mandrake:builds/install/arch-specific/linux/firebird.init.d.mandrake.in
  1371. gen/install/misc/firebird.init.d.suse:builds/install/arch-specific/linux/firebird.init.d.suse.in
  1372. gen/install/misc/firebird.init.d.debian:builds/install/arch-specific/linux/firebird.init.d.debian.in
  1373. gen/install/misc/firebird.init.d.gentoo:builds/install/arch-specific/linux/firebird.init.d.gentoo.in
  1374. gen/install/misc/firebird.init.d.slackware:builds/install/arch-specific/linux/firebird.init.d.slackware.in
  1375. gen/install/misc/rc.config.firebird:builds/install/arch-specific/linux/rc.config.firebird.in
  1376. gen/install/misc/firebird.service:builds/install/arch-specific/linux/firebird.service.in
  1377. ],
  1378. [chmod a+x gen/install/*sh 2>/dev/null])
  1379. if [[[ x$CROSS != xandroid* ]]]; then
  1380. AC_CONFIG_FILES([
  1381. gen/Release/firebird/bin/linuxLibrary.sh:builds/install/arch-specific/linux/linuxLibrary.sh.in
  1382. ],
  1383. [chmod a+x gen/install/*sh 2>/dev/null])
  1384. fi
  1385. ;;
  1386. HPUX)
  1387. HP_INSTALL_SRC_DIR=builds/install/arch-specific/hpux
  1388. AC_CONFIG_FILES([gen/install/makeinstallImage.sh:${HP_INSTALL_SRC_DIR}/makeinstallImage.sh.in
  1389. gen/firebirdCS.psf:${HP_INSTALL_SRC_DIR}/firebirdCS.psf.in
  1390. gen/firebird/bin/preInstall.sh:${HP_INSTALL_SRC_DIR}/preInstall.sh.in
  1391. gen/firebird/bin/tarInstall.sh:${HP_INSTALL_SRC_DIR}/tarInstall.sh.in
  1392. gen/firebird/bin/tarmainInstall.sh:${HP_INSTALL_SRC_DIR}/tarmainInstall.sh.in
  1393. gen/firebird/bin/tarUninstall.sh:${HP_INSTALL_SRC_DIR}/tarUninstall.sh.in
  1394. gen/firebird/bin/tarmainUninstall.sh:${HP_INSTALL_SRC_DIR}/tarmainUninstall.sh.in
  1395. gen/firebird/bin/postInstall.sh:${HP_INSTALL_SRC_DIR}/postInstall.sh.in
  1396. gen/firebird/bin/preUninstall.sh:${HP_INSTALL_SRC_DIR}/preUninstall.sh.in
  1397. gen/firebird/bin/postUninstall.sh:${HP_INSTALL_SRC_DIR}/postUninstall.sh.in
  1398. gen/install/misc/firebird.init.d.hpux:builds/install/arch-specific/hpux/misc/firebird.init.d.hpux.in
  1399. gen/install/misc/rc.config.firebird.hpux:builds/install/arch-specific/hpux/misc/rc.config.firebird.hpux.in
  1400. gen/Release/firebird/bin/hpuxLibrary.sh:builds/install/arch-specific/hpux/misc/hpuxLibrary.sh.in],
  1401. [chmod a+x gen/install/*.sh 2>/dev/null])
  1402. ;;
  1403. AIX)
  1404. AIX_INSTALL_SRC_DIR=builds/install/arch-specific/aix
  1405. AC_CONFIG_FILES([gen/install/makeInstallImage.aix.sh:${AIX_INSTALL_SRC_DIR}/makeInstallImage.sh.in
  1406. gen/firebird/bin/preinstall.aix.sh:builds/install/arch-specific/aix/misc/preinstall.sh.in
  1407. gen/firebird/bin/tarinstall.aix.sh:builds/install/arch-specific/aix/misc/tarinstall.sh.in
  1408. gen/firebird/bin/tarmaininstall.aix.sh:builds/install/arch-specific/aix/misc/tarmaininstall.sh.in
  1409. gen/firebird/bin/taruninstall.aix.sh:builds/install/arch-specific/aix/misc/taruninstall.sh.in
  1410. gen/firebird/bin/tarmainuninstall.aix.sh:builds/install/arch-specific/aix/misc/tarmainuninstall.sh.in
  1411. gen/firebird/bin/postinstall.aix.sh:builds/install/arch-specific/aix/misc/postinstall.sh.in
  1412. gen/firebird/bin/preuninstall.aix.sh:builds/install/arch-specific/aix/misc/preuninstall.sh.in
  1413. gen/firebird/bin/postuninstall.aix.sh:builds/install/arch-specific/aix/misc/postuninstall.sh.in
  1414. gen/install/misc/firebird.init.d.aix:builds/install/arch-specific/aix/misc/firebird.init.d.aix.in
  1415. gen/install/misc/rc.config.firebird.aix:builds/install/arch-specific/aix/misc/rc.config.firebird.aix.in
  1416. gen/firebird/bin/changedbapassword.aix.sh:builds/install/misc/changeDBAPassword.sh.in
  1417. gen/firebird/bin/changemulticonnectmode.aix.sh:builds/install/misc/changeServerMode.sh.in
  1418. gen/firebird/bin/changegdslibrarycompatiblelink.aix.sh:builds/install/misc/changeGdsLibraryCompatibleLink.sh.in
  1419. gen/firebird/bin/createaliasdb.aix.sh:builds/install/misc/createAliasDB.sh.in
  1420. gen/firebird/bin/aixLibrary.sh:builds/install/arch-specific/aix/misc/aixLibrary.sh.in],
  1421. [chmod a+x gen/install/*.sh 2>/dev/null])
  1422. ;;
  1423. FREEBSD)
  1424. AC_CONFIG_FILES([gen/install/install.sh:builds/install/arch-specific/freebsd/install.sh.in
  1425. gen/firebird/bin/freebsdLibrary.sh:builds/install/arch-specific/freebsd/freebsdLibrary.sh.in]
  1426. ,[chmod a+x gen/install/*.sh gen/firebird/bin/*sh 2>/dev/null])
  1427. ;;
  1428. NETBSD)
  1429. AC_CONFIG_FILES([gen/install/install.netbsd.sh:builds/install/arch-specific/netbsd/install.sh.in]
  1430. ,[chmod a+x gen/install/install.netbsd.sh 2>/dev/null])
  1431. ;;
  1432. solx86|SOLARIS)
  1433. AC_CONFIG_FILES([gen/install/Pkginfo:builds/install/arch-specific/solaris/pkginfo.in
  1434. gen/install/prototype.main:builds/install/arch-specific/solaris/prototype.in
  1435. gen/install/Preinstall:builds/install/arch-specific/solaris/preinstall.in
  1436. gen/install/Postinstall:builds/install/arch-specific/solaris/postinstall.in
  1437. gen/install/Postremove:builds/install/arch-specific/solaris/postremove.in
  1438. gen/install/prototypelg:builds/install/arch-specific/solaris/libgcc/prototypelg.in
  1439. gen/install/pkginfolg:builds/install/arch-specific/solaris/libgcc/pkginfolg.in
  1440. ],[chmod a+x gen/install/Pre* gen/install/Post* 2>/dev/null])
  1441. ;;
  1442. DARWIN)
  1443. ;;
  1444. esac
  1445. if test -f ${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX};then
  1446. POSTFIX_FILE=gen/make.platform.postfix:${MAKE_SRC_DIR}/postfix.${MAKEFILE_POSTFIX}
  1447. POSTFIX_INCLUDE='include $(ROOT)/gen/make.platform.postfix'
  1448. else
  1449. POSTFIX_FILE=
  1450. POSTFIX_INCLUDE=
  1451. fi
  1452. AC_SUBST(POSTFIX_INCLUDE)
  1453. AC_CONFIG_FILES(
  1454. gen/make.rules:${MAKE_SRC_DIR}/make.rules
  1455. gen/make.defaults:${MAKE_SRC_DIR}/make.defaults
  1456. gen/make.platform:${MAKE_SRC_DIR}/prefix.${MAKEFILE_PREFIX}
  1457. gen/darwin.defaults:${MAKE_SRC_DIR}/darwin.defaults
  1458. ${POSTFIX_FILE}
  1459. gen/make.shared.variables:${MAKE_SRC_DIR}/make.shared.variables
  1460. gen/make.shared.targets:${MAKE_SRC_DIR}/make.shared.targets
  1461. gen/Makefile:${MAKE_SRC_DIR}/Makefile.in
  1462. gen/examples/Makefile.examples:${MAKE_SRC_DIR}/Makefile.in.examples
  1463. gen/Makefile.plugins_examples:${MAKE_SRC_DIR}/Makefile.in.plugins_examples
  1464. gen/Makefile.install:builds/install/arch-specific/${INSTALL_PREFIX}/Makefile.in
  1465. Makefile:Makefile.in
  1466. )
  1467. if test "$STD_EDITLINE" = "false"; then
  1468. AC_CONFIG_FILES(gen/Makefile.extern.editline:${MAKE_SRC_DIR}/Makefile.in.extern.editline)
  1469. fi
  1470. case "$PLATFORM" in
  1471. SOLARIS | solx86 )
  1472. AC_CONFIG_FILES(
  1473. gen/make.platform.solaris.examples:${MAKE_SRC_DIR}/make.platform.solaris.examples
  1474. )
  1475. ;;
  1476. esac
  1477. # Fix problem with autoconf 2.72 inserting -std in CXX.
  1478. CXX=`echo "$CXX" | sed -e 's/\(-std=c++11\)//g' -e 's/\(-std=gnu++11\)//g'`
  1479. AC_OUTPUT
  1480. dnl Print out the build configuration (the most interesting thing)
  1481. echo
  1482. echo
  1483. echo The Firebird5 package has been configured with the following options:
  1484. echo
  1485. case $DEVEL_FLG in
  1486. Y) echo " Developer mode : enabled";;
  1487. N) echo " Developer mode : disabled";;
  1488. esac
  1489. if test $ac_cv_sizeof_void_p -lt 8; then
  1490. case $ac_cv_sys_file_offset_bits in
  1491. no) echo "64 bit I/O for 32-bit platforms : disabled";;
  1492. 64) echo "64 bit I/O for 32-bit platforms : enabled";;
  1493. esac
  1494. fi
  1495. case $RAW_DEVICES_FLG in
  1496. Y) echo " Raw devices : enabled";;
  1497. N) echo " Raw devices : disabled";;
  1498. esac
  1499. echo " Service name : $FB_SERVICE_NAME"
  1500. echo " Service port : $FB_SERVICE_PORT"
  1501. echo " GPRE modules : c_cxx.cpp$GPRE_LANGUAGE_MODULES"
  1502. echo
  1503. echo " Install Dir : $prefix"
  1504. echo
  1505. dnl EOF