configure.in 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. dnl Process this file with autoconf to produce a configure script.
  2. AC_PREREQ([2.13])
  3. AC_INIT(include/dpkg.h.in)
  4. AC_CONFIG_HEADER(config.h)
  5. ALSO_STATIC=
  6. AC_ARG_WITH(static-progs,
  7. [ --with-static-progs compile static versions of certain binaries as well],
  8. [case "$withval" in
  9. "true" | "yes" )
  10. ALSO_STATIC=1
  11. ;;
  12. esac])
  13. AC_SUBST(ALSO_STATIC)
  14. DSELECTDIR="dselect"
  15. AC_ARG_WITH(dselect,
  16. [ --with-dselect the dselect package-management frontend],
  17. [case "$withval" in
  18. "false" | "no" )
  19. DSELECTDIR=""
  20. ;;
  21. esac])
  22. AC_SUBST(DSELECTDIR)
  23. USE_START_STOP_DAEMON="true"
  24. AC_ARG_WITH(start-stop-daemon,
  25. [ --with-start-stop-daemon
  26. start and stop system daemons],
  27. [case "$withval" in
  28. "false" | "no" )
  29. USE_START_STOP_DAEMON=""
  30. ;;
  31. esac])
  32. AC_SUBST(USE_START_STOP_DAEMON)
  33. if test "$USE_START_STOP_DAEMON" != ""; then
  34. AC_DEFINE(USE_START_STOP_DAEMON)
  35. fi
  36. USE_SGML_DOC="true"
  37. AC_ARG_WITH(sgml-doc,
  38. [ --with-sgml-doc SGML documentation converted to HTML],
  39. [case "$withval" in
  40. "false" | "no" )
  41. USE_SGML_DOC=""
  42. ;;
  43. esac])
  44. AC_SUBST(USE_SGML_DOC)
  45. admindir="$libdir/db"
  46. AC_ARG_WITH(admindir,
  47. [ --with-admindir=DIR store dpkg database in DIR [LIBDIR/db]],
  48. [case "$withval" in
  49. "" )
  50. AC_MSG_ERROR(invalid admindir specified)
  51. ;;
  52. * )
  53. admindir="$withval"
  54. ;;
  55. esac])
  56. AC_SUBST(admindir)
  57. AC_CHECK_TOOL_PREFIX
  58. AC_CANONICAL_SYSTEM
  59. AC_CHECK_TOOL(CC, gcc)
  60. AC_PROG_CC
  61. AC_PROG_CXX
  62. AM_CONDITIONAL(HAVE_CPLUSPLUS, [test "$CXX" != ""])
  63. AC_CHECK_TOOL(LD, ld, ld)
  64. PACKAGE=dpkg
  65. AC_SUBST(PACKAGE)
  66. VERSION=`cat $srcdir/version-nr`
  67. AC_SUBST(VERSION)
  68. dnl test to see if srcdir already configured
  69. if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
  70. AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
  71. fi
  72. AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
  73. AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])
  74. AC_ARG_PROGRAM
  75. AC_PROG_MAKE_SET
  76. AC_MSG_CHECKING(dpkg version)
  77. AC_MSG_RESULT($VERSION)
  78. AC_PREFIX_DEFAULT(/usr)
  79. dpkg_archset=''
  80. AC_MSG_CHECKING(Debian architecture)
  81. dpkg_archset="`awk '$1 == "'$target_cpu-$target_os'" { print $2 }' $srcdir/archtable`"
  82. # Finish off
  83. if test "x$dpkg_archset" = "x"; then
  84. AC_MSG_RESULT([$target_cpu-$target_os, but not found in archtable])
  85. dpkg_archset=$target_cpu-$target_os
  86. else
  87. AC_MSG_RESULT($dpkg_archset)
  88. fi
  89. AC_DEFINE_UNQUOTED(ARCHITECTURE, "${dpkg_archset}")
  90. dnl gettext
  91. ALL_LINGUAS="cs da de en es fr gl it nl ja pl pt_BR ru sv"
  92. AM_GNU_GETTEXT
  93. dnl Other stuff
  94. AC_STDC_HEADERS
  95. AC_PROG_RANLIB
  96. AC_PROG_LN_S
  97. AC_CHECK_PROG(RM,rm,rm -f)
  98. AC_CHECK_PROG(SED,sed,sed)
  99. AC_PROG_INSTALL
  100. AC_PATH_PROG(PERL,perl,/usr/bin/perl)
  101. AC_MODE_T
  102. AC_PID_T
  103. AC_SIZE_T
  104. AC_VPRINTF
  105. AC_C_CONST
  106. AC_C_BIGENDIAN
  107. AC_C_INLINE
  108. AC_CHECK_SIZEOF(unsigned long)
  109. AC_CHECK_SIZEOF(unsigned int)
  110. AC_CHECK_TYPE(ptrdiff_t,int)
  111. AC_CHECK_FUNCS(unsetenv alphasort scandir strerror strsignal strtoul)
  112. AC_CHECK_FUNCS(vsnprintf lchown snprintf)
  113. AC_CHECK_HEADERS(sys/cdefs.h syslog.h stddef.h)
  114. AC_CHECK_HEADERS(error.h)
  115. AC_SYS_SIGLIST_DECLARED
  116. AC_CHECK_LIB(ihash, ihash_create, SSD_LIBS="-lihash $SSD_LIBS")
  117. AC_CHECK_LIB(ps, proc_stat_list_create, SSD_LIBS="-lps $SSD_LIBS")
  118. AC_CHECK_LIB(shouldbeinlibc, fmt_past_time, SSD_LIBS="-lshouldbeinlibc $SSD_LIBS")
  119. AC_CHECK_LIB(kvm, kvm_openfiles, SSD_LIBS="-lkvm $SSD_LIBS")
  120. AC_SUBST(SSD_LIBS)
  121. ZLIB_CFLAGS=
  122. ZLIB_LIBS=
  123. ZLIB_LIBS_ALSO_STATIC=
  124. AC_ARG_WITH(zlib,
  125. [ --with-zlib use zlib for decompression of some gzip files],
  126. [use_zlib=$withval],
  127. [uze_zlib=no])
  128. if test "$use_zlib" != "no" ; then
  129. ZLIB_CFLAGS=-DUSE_ZLIB
  130. if test "$use_zlib" = "static" ; then
  131. ZLIB_LIBS="-Wl,-Bstatic -lz -Wl,-Bdynamic"
  132. if test "$ALSO_STATIC"; then
  133. ZLIB_LIBS_ALSO_STATIC="-lz"
  134. fi
  135. else
  136. ZLIB_LIBS=-lz
  137. ZLIB_LIBS_ALSO_STATIC="-lz"
  138. fi
  139. fi
  140. AC_SUBST(ZLIB_CFLAGS)
  141. AC_SUBST(ZLIB_LIBS)
  142. AC_SUBST(ZLIB_LIBS_ALSO_STATIC)
  143. AC_TRY_COMPILE([
  144. #include <sys/types.h>
  145. #include <dirent.h>
  146. ], alphasort, AC_DEFINE(HAVE_ALPHASORT_DECLARATION))
  147. AC_TRY_COMPILE(,[
  148. } inline int foo (int x) {], AC_DEFINE(HAVE_INLINE))
  149. AC_MSG_CHECKING([for __va_copy])
  150. AC_TRY_COMPILE([
  151. #include <stdarg.h>
  152. ],[
  153. va_list v1,v2;
  154. __va_copy(v1, v2);
  155. ], [AC_MSG_RESULT(yes)
  156. AC_DEFINE(HAVE_VA_COPY)],[AC_MSG_RESULT(no)
  157. AC_MSG_CHECKING([for va_list assignment copy])
  158. AC_TRY_COMPILE([
  159. #include <stdarg.h>
  160. ],[
  161. va_list v1,v2;
  162. v1 = v2;
  163. ], AC_MSG_RESULT(yes),AC_MSG_ERROR(no))])
  164. DPKG_CACHED_TRY_COMPILE(__attribute__((,,)),dpkg_cv_c_attribute_supported,,
  165. [extern int testfunction(int x) __attribute__((,,))],
  166. AC_MSG_RESULT(yes)
  167. AC_DEFINE(HAVE_GNUC25_ATTRIB)
  168. DPKG_CACHED_TRY_COMPILE(__attribute__((noreturn)),dpkg_cv_c_attribute_noreturn,,
  169. [extern int testfunction(int x) __attribute__((noreturn))],
  170. AC_MSG_RESULT(yes)
  171. AC_DEFINE(HAVE_GNUC25_NORETURN),
  172. AC_MSG_RESULT(no))
  173. DPKG_CACHED_TRY_COMPILE(__attribute__((const)),dpkg_cv_c_attribute_const,,
  174. [extern int testfunction(int x) __attribute__((const))],
  175. AC_MSG_RESULT(yes)
  176. AC_DEFINE(HAVE_GNUC25_CONST),
  177. AC_MSG_RESULT(no))
  178. DPKG_CACHED_TRY_COMPILE(__attribute__((format...)),dpkg_cv_attribute_format,,
  179. [extern int testfunction(char *y, ...) __attribute__((format(printf,1,2)))],
  180. AC_MSG_RESULT(yes)
  181. AC_DEFINE(HAVE_GNUC25_PRINTFFORMAT),
  182. AC_MSG_RESULT(no)),
  183. AC_MSG_RESULT(no))
  184. AC_MSG_CHECKING(whether to use -Werror)
  185. AC_ARG_WITH(Werror,
  186. [ --with-Werror use -Werror when compiling],
  187. [warn=-Werror]
  188. AC_MSG_RESULT(yes)
  189. DPKG_C_GCC_TRY_WARNS(-Werror, dpkg_cv_c_gcc_warn_error),
  190. [warn=all]
  191. AC_MSG_RESULT(no))
  192. DPKG_C_GCC_TRY_WARNS(-Wall , dpkg_cv_c_gcc_warn_all)
  193. DPKG_C_GCC_TRY_WARNS(-Wwrite-strings, dpkg_cv_c_gcc_warn_writestrings)
  194. DPKG_C_GCC_TRY_WARNS(-Wpointer-arith, dpkg_cv_c_gcc_warn_pointerarith)
  195. DPKG_C_GCC_TRY_WARNS(-Wimplicit -Wnested-externs, dpkg_cv_c_gcc_warn_implicit)
  196. DPKG_C_GCC_TRY_WARNS(-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations, dpkg_cv_c_gcc_prototypes)
  197. DPKG_C_GCC_TRY_WARNS(-Wbad-function-cast, dpkg_cv_c_gcc_func_cast)
  198. DPKG_C_GCC_TRY_WARNS(-Wcast-qual -Wcast-align, dpkg_cv_c_gcc_cast_qual)
  199. DPKG_C_GCC_TRY_WARNS(-Winline, dpkg_cv_c_gcc_inline)
  200. DPKG_C_GCC_TRY_WARNS(-Wmissing-noreturn, dpkg_cv_c_gcc_noreturn)
  201. DPKG_C_GCC_TRY_WARNS(-Wsign-compare, dpkg_cv_c_gcc_comp_conv)
  202. DPKG_C_GCC_TRY_WARNS(-ffunction-sections -fdata-sections, dpkg_cv_func_data_sections)
  203. AC_SUBST(CWARNS)
  204. dnl Force this here so we can do the next step
  205. test "x$prefix" = xNONE && prefix="$ac_default_prefix"
  206. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
  207. LLIBDIR=`eval echo $libdir`
  208. LLIBDIR=`eval echo $LLIBDIR`
  209. LOCALSTATEDIR=`eval echo $localstatedir`
  210. AC_DEFINE_UNQUOTED(LLIBDIR, "$LLIBDIR")
  211. AC_DEFINE_UNQUOTED(LOCALSTATEDIR, "$LOCALSTATEDIR")
  212. AC_OUTPUT(
  213. Makefile.conf
  214. Makefile
  215. intl/Makefile
  216. include/Makefile
  217. dpkg-deb/Makefile
  218. split/Makefile
  219. lib/Makefile
  220. optlib/Makefile
  221. doc/Makefile
  222. doc/de/Makefile
  223. doc/fr/Makefile
  224. doc/ja/Makefile
  225. doc/ru/Makefile
  226. doc/sv/Makefile
  227. scripts/Makefile
  228. main/Makefile
  229. dselect/Makefile
  230. methods/Makefile
  231. utils/Makefile
  232. po/Makefile:po/Makefile.in.in)