You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

179 lines
5.3 KiB

25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
25 years ago
  1. dnl AUTOCONF configuration for CLN
  2. dnl
  3. dnl configure.ac ---<autoconf>--->> configure
  4. dnl
  5. dnl configure ---<sh>--->> config.status
  6. dnl --->> include/cln/config.h
  7. dnl cln-config.in --->> cln-config
  8. dnl Makefile.in --->> Makefile
  9. dnl src/Makefile.in --->> src/Makefile
  10. dnl
  11. dnl Makefile ---<make>--->> libcln.a
  12. dnl
  13. dnl
  14. AC_INIT(src/integer/gcd/cl_I_gcd.cc)
  15. AC_CONFIG_AUX_DIR(autoconf)
  16. AC_CONFIG_HEADER(include/cln/config.h include/cln/version.h src/base/cl_base_config.h src/base/cl_gmpconfig.h src/timing/cl_t_config.h)
  17. AC_PROG_MAKE_SET
  18. dnl This piece of sed script replaces every line containing '@subdir@'
  19. dnl by several consecutive lines, each referencing one subdir.
  20. extrasub="$extrasub"'
  21. /@subdir@/{
  22. h
  23. g
  24. s/@subdir@/src/
  25. p
  26. g
  27. s/@subdir@/tests/
  28. p
  29. g
  30. s/@subdir@/benchmarks/
  31. p
  32. g
  33. s/@subdir@/examples/
  34. p
  35. g
  36. s/@subdir@/doc/
  37. p
  38. d
  39. }
  40. '
  41. dnl
  42. dnl checks for programs
  43. dnl
  44. CL_PROG_CC
  45. dnl sets variable CC
  46. AC_PROG_CPP
  47. dnl sets variable CPP
  48. CL_PROG_CXX
  49. dnl sets variable CXX
  50. AC_PROG_CXXCPP
  51. dnl sets variable CXXCPP
  52. CL_AS_UNDERSCORE
  53. dnl sets variable AS_UNDERSCORE, DEFS ASM_UNDERSCORE
  54. CL_AS_NOEXECSTACK
  55. dnl sets variable ASMFLAGS
  56. AC_PROG_RANLIB
  57. dnl sets variable RANLIB
  58. AC_PROG_INSTALL
  59. dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
  60. dnl
  61. dnl check for host type
  62. dnl
  63. CL_CANONICAL_HOST(autoconf)
  64. dnl sets variables host, host_cpu, host_vendor, host_os
  65. CL_CANONICAL_HOST_CPU
  66. dnl DEFS __${host_cpu}__
  67. dnl
  68. dnl check for build configuration
  69. dnl
  70. PACKAGE=cln
  71. dnl libtool wants PACKAGE
  72. case $host_os in
  73. *mingw*)
  74. AC_DISABLE_SHARED
  75. dnl Shared libraries are not supported on some platforms [yet]
  76. ;;
  77. *)
  78. AC_ENABLE_SHARED
  79. ;;
  80. esac
  81. AC_PROG_LIBTOOL
  82. dnl sets variable LIBTOOL
  83. dnl Libtool's library version information for CLN.
  84. dnl (Not to be confused with CLN's release version.)
  85. dnl Making new releases:
  86. dnl * increment CL_REVISION,
  87. dnl * if any functions/classes have been added, removed or changed, increment
  88. dnl CL_CURRENT and set CL_REVISION to 0,
  89. dnl * if any functions/classes have been added, increment CL_AGE,
  90. dnl * if backwards compatibility has been broken, set CL_AGE to 0.
  91. dnl $(CL_CURRENT):$(CL_REVISION):$(CL_AGE) results in
  92. dnl libcln.so.$(CL_CURRENT)-$(CL_AGE)
  93. CL_CURRENT=5
  94. CL_REVISION=2
  95. CL_AGE=0
  96. dnl make substitutions
  97. AC_SUBST(CL_CURRENT)
  98. AC_SUBST(CL_REVISION)
  99. AC_SUBST(CL_AGE)
  100. dnl release version
  101. CL_VERSION_MAJOR=1
  102. CL_VERSION_MINOR=2
  103. CL_VERSION_PATCHLEVEL=2
  104. dnl release version for cln/config.h, so it can be tested by the preprocessor
  105. AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR)
  106. AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR)
  107. AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL)
  108. dnl concatenated release version
  109. CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL
  110. AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION)
  111. AC_SUBST(CL_VERSION)
  112. dnl
  113. dnl checks for compiler characteristics
  114. dnl
  115. AC_LANG_CPLUSPLUS
  116. dnl
  117. CL_LONGLONG
  118. dnl DEFS HAVE_LONGLONG
  119. CL_LONGDOUBLE
  120. dnl DEFS HAVE_LONGDOUBLE
  121. dnl
  122. dnl checks for header files
  123. dnl
  124. AC_CHECK_HEADERS([unistd.h])
  125. dnl DEFS HAVE_UNISTD_H if exist unistd.h
  126. dnl
  127. dnl checks for typedefs
  128. dnl
  129. dnl
  130. dnl checks for functions and declarations
  131. dnl
  132. CL_ALLOCA
  133. dnl set variable ALLOCA, DEFS NO_ALLOCA
  134. CL_GETTIMEOFDAY
  135. dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
  136. ac_cv_func_ftime=no
  137. dnl don't use ftime(3) even if it's available
  138. CL_TIMES_CLOCK
  139. dnl DEFS HAVE_TIMES_CLOCK
  140. CL_RUSAGE
  141. dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
  142. CL_PERROR
  143. dnl DEFS HAVE_PERROR_DECL
  144. CL_ATTRIBUTE_FLATTEN
  145. dnl DEFS CL_HAVE_ATTRIBUTE_FLATTEN
  146. dnl
  147. dnl checks for compiler characteristics
  148. dnl
  149. AC_C_CHAR_UNSIGNED
  150. dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
  151. dnl Create a subdirectory in the ${top_builddir} to hold auto-generated
  152. dnl headers. This subdirectory does not exist when ${top_builddir} != ${top_srcdir}
  153. dnl (a.k.a. "VPATH build").
  154. if test ! -d include/cln; then
  155. AS_MKDIR_P([include/cln])
  156. fi
  157. CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,[CL_INTPARAM_CROSS],include/cln/intparam.h,cl_cv_file_intparam_h)
  158. dnl builds include/cln/intparam.h
  159. CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,[CL_FLOATPARAM_CROSS],include/cln/floatparam.h,cl_cv_file_floatparam_h)
  160. dnl builds include/cln/floatparam.h
  161. CL_LIBGMP
  162. dnl DEFS CL_USE_GMP, GMP_DEMANDS_UINTD_*
  163. dnl
  164. dnl That's it.
  165. dnl
  166. for f in 'tests/.gdbinit'; do
  167. if test '!' -f "$f"; then
  168. echo "creating $f"
  169. changequote(,)dnl
  170. g=`echo "$f" | sed -e 's,/[^/]*$,,'`
  171. changequote([,])dnl
  172. test "$g" = "$f" || test -d "$g" || mkdir "$g"
  173. cp "$srcdir/$f" "$f"
  174. fi
  175. done
  176. AC_OUTPUT([Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile cln.spec cln.pc])