configure.in 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. dnl Process this file with autoconf to produce a configure script.
  2. AC_PREREQ([2.12])
  3. AC_INIT(include/dpkg.h.in)
  4. AM_CONFIG_HEADER(config.h)
  5. AC_CHECK_TOOL_PREFIX
  6. AC_CHECK_TOOL(CC, gcc)
  7. AC_PROG_CC
  8. AC_CANONICAL_SYSTEM
  9. AC_CHECK_TOOL_PREFIX
  10. dnl tl_PROG_CXX
  11. AC_PROG_CXX
  12. AM_CONDITIONAL(HAVE_CPLUSPLUS, [test "$CXX" != ""])
  13. AC_CHECK_TOOL(LD, ld, ld)
  14. AM_INIT_AUTOMAKE(dpkg,[`sed -n '1s/dpkg (\([0-9.]\+\)).*/\1/p' ${srcdir}/debian/changelog`])
  15. ACLOCAL="$ACLOCAL -I automake"
  16. AC_MSG_CHECKING(dpkg version)
  17. AC_MSG_RESULT($VERSION)
  18. AC_PREFIX_DEFAULT(/usr)
  19. dpkg_archset=''
  20. AC_ARG_WITH(arch,
  21. [ --with-arch=value set/override (Debian) architecture value (deprecated)],
  22. [
  23. if test "x$with_arch" = x; then
  24. AC_MSG_ERROR(--with-arch requires an architecture name)
  25. fi
  26. dpkg_archset="${with_arch}"
  27. dpkg_tmp="`awk '$1 == "'$target_cpu'" { print $2 }' $srcdir/archtable`"
  28. if test "x$dpkg_tmp" = "x"; then
  29. AC_MSG_WARN([unable to find specified architecture $dpkg_archset in archtable])
  30. elif test "x$dpkg_tmp" != "x$dpkg_archset"; then
  31. AC_MSG_WARN([canonical architecture is $dpkg_tmp (from archtable)])
  32. fi
  33. ],[
  34. AC_MSG_CHECKING(system architecture)
  35. dpkg_archset="`awk '$1 == "'$target_cpu'" { print $2 }' $srcdir/archtable`"
  36. # Finish off
  37. if test "x$dpkg_archset" = "x"; then
  38. AC_MSG_ERROR(failed: use --with-arch= or --target=)
  39. fi
  40. AC_MSG_RESULT($dpkg_archset)
  41. ])
  42. if test "x$dpkg_archset" != x
  43. then
  44. AC_DEFINE_UNQUOTED(ARCHITECTURE, "${dpkg_archset}")
  45. fi
  46. if test "x${dpkg_archset}" = xi386; then
  47. AC_MSG_CHECKING(target i386 system/binary format)
  48. case "${target_os}" in
  49. linuxaout|linux-gnuaout)
  50. AC_MSG_RESULT(Linux a.out)
  51. dpkg_cc_binfmt=a.out
  52. ;;
  53. linuxcoff|linux-gnucoff)
  54. AC_MSG_RESULT(Linux COFF)
  55. dpkg_cc_binfmt=coff
  56. ;;
  57. linux|linuxelf|linux-gnu*)
  58. AC_MSG_RESULT(Linux ELF)
  59. dpkg_cc_binfmt=elf
  60. ;;
  61. *)
  62. AC_MSG_RESULT([other (${target_os})])
  63. dpkg_cc_binfmt=""
  64. ;;
  65. esac
  66. if test "x$dpkg_cc_binfmt" != "x"; then
  67. AC_DEFINE_UNQUOTED(ARCHBINFMT," $dpkg_cc_binfmt")
  68. fi
  69. fi
  70. AC_ARG_WITH(newdeb,
  71. [ --with-newdeb make dpkg-deb default to new archives],
  72. [AC_DEFINE(BUILDOLDPKGFORMAT, 0)])
  73. AC_ARG_WITH(olddeb,
  74. [ --with-olddeb make dpkg-deb default to old archives],
  75. [AC_DEFINE(BUILDOLDPKGFORMAT, 1)])
  76. dnl gettext
  77. ALL_LINGUAS="cs en fr es ja_JP.ujis"
  78. AM_GNU_GETTEXT
  79. dnl Other stuff
  80. AC_MSG_CHECKING(for /usr/bin/perl)
  81. if test -f /usr/bin/perl
  82. then
  83. AC_MSG_RESULT(yes)
  84. perlpath=/usr/bin/perl
  85. AC_SUBST(perlpath)
  86. else
  87. AC_MSG_RESULT(no)
  88. AC_PATH_PROG(perlpath,perl)
  89. fi
  90. AC_STDC_HEADERS
  91. AC_PROG_INSTALL
  92. AM_PROG_LIBTOOL
  93. dnl Default in case EMACS == no
  94. lispdir="\$(datadir)/emacs/site-lisp"
  95. AM_PATH_LISPDIR
  96. AC_MODE_T
  97. AC_PID_T
  98. AC_SIZE_T
  99. AC_VPRINTF
  100. AC_C_CONST
  101. AC_C_BIGENDIAN
  102. AC_CHECK_SIZEOF(unsigned long)
  103. AC_CHECK_SIZEOF(unsigned int)
  104. AC_CHECK_FUNCS(unsetenv alphasort scandir strerror strsignal strtoul vsnprintf lchown)
  105. AC_CHECK_HEADERS(sys/cdefs.h sys/sysinfo.h)
  106. AC_CHECK_FUNC(sysinfo,
  107. AC_DEFINE(HAVE_SYSINFO),
  108. AC_MSG_CHECKING(__NR_sysinfo)
  109. AC_EGREP_CPP(yes, [
  110. #include <linux/sys.h>
  111. #include <linux/kernel.h>
  112. #include <linux/unistd.h>
  113. #ifdef __NR_sysinfo
  114. yes
  115. #endif
  116. ],
  117. AC_MSG_RESULT([yes; tsk tsk - get your libc fixed.])
  118. AC_DEFINE(HAVE_NRSYSINFO),
  119. AC_MSG_RESULT(no)
  120. AC_MSG_WARN([sysinfo missing; compilation of dpkg proper may fail.])))
  121. AC_SUBST(OPTCFLAGS)
  122. if test "${GCC-no}" = yes; then
  123. CFLAGS="-D_REENTRANT -D_GNU_SOURCE -O2"
  124. CXXFLAGS="-D_REENTRANT -D_GNU_SOURCE -O2"
  125. OPTCFLAGS="-O3"
  126. else
  127. CFLAGS="-D_REENTRANT -D_GNU_SOURCE -O"
  128. CXXFLAGS="-D_REENTRANT -D_GNU_SOURCE -O"
  129. fi
  130. DPKG_CACHED_TRY_COMPILE(your C compiler,dpkg_cv_c_works,
  131. [#include <string.h>], [strcmp("a","b")],
  132. AC_MSG_RESULT(works),
  133. AC_MSG_RESULT(broken)
  134. AC_MSG_ERROR(C compiler is broken))
  135. DPKG_CACHED_TRY_COMPILE(alphasort declaration,dpkg_cv_header_alphasort,[
  136. #include <sys/types.h>
  137. #include <sys/dir.h>
  138. ], alphasort,
  139. AC_MSG_RESULT(yes)
  140. AC_DEFINE(HAVE_ALPHASORT_DECLARATION),
  141. AC_MSG_RESULT(no))
  142. DPKG_CACHED_TRY_COMPILE(inlines,dpkg_cv_c_inline,,
  143. [} inline int foo (int x) {],
  144. AC_MSG_RESULT(yes)
  145. AC_DEFINE(HAVE_INLINE),
  146. AC_MSG_RESULT(no))
  147. DPKG_CACHED_TRY_COMPILE(__attribute__((,,)),dpkg_cv_c_attribute_supported,,
  148. [extern int testfunction(int x) __attribute__((,,))],
  149. AC_MSG_RESULT(yes)
  150. AC_DEFINE(HAVE_GNUC25_ATTRIB)
  151. DPKG_CACHED_TRY_COMPILE(__attribute__((noreturn)),dpkg_cv_c_attribute_noreturn,,
  152. [extern int testfunction(int x) __attribute__((noreturn))],
  153. AC_MSG_RESULT(yes)
  154. AC_DEFINE(HAVE_GNUC25_NORETURN),
  155. AC_MSG_RESULT(no))
  156. DPKG_CACHED_TRY_COMPILE(__attribute__((const)),dpkg_cv_c_attribute_const,,
  157. [extern int testfunction(int x) __attribute__((const))],
  158. AC_MSG_RESULT(yes)
  159. AC_DEFINE(HAVE_GNUC25_CONST),
  160. AC_MSG_RESULT(no))
  161. DPKG_CACHED_TRY_COMPILE(__attribute__((format...)),dpkg_cv_attribute_format,,
  162. [extern int testfunction(char *y, ...) __attribute__((format(printf,1,2)))],
  163. AC_MSG_RESULT(yes)
  164. AC_DEFINE(HAVE_GNUC25_PRINTFFORMAT),
  165. AC_MSG_RESULT(no)),
  166. AC_MSG_RESULT(no))
  167. AC_SUBST(CWARNS)
  168. CWARNS=""
  169. DPKG_C_GCC_TRY_WARNS(-Wall -Wno-implicit, dpkg_cv_c_gcc_warn_all)
  170. DPKG_C_GCC_TRY_WARNS(-Wwrite-strings, dpkg_cv_c_gcc_warn_writestrings)
  171. DPKG_C_GCC_TRY_WARNS(-Wpointer-arith, dpkg_cv_c_gcc_warn_pointerarith)
  172. DPKG_C_GCC_TRY_WARNS(-Wimplicit -Wnested-externs, dpkg_cv_c_gcc_warn_implicit)
  173. if test "${GCC-no}" = yes; then
  174. CWARNS="${CWARNS} -Wmissing-prototypes -Wstrict-prototypes"
  175. fi
  176. echo "#define DPKG_VERSION \"$VERSION\" /* This line modified by configure */" > version.h.new
  177. cmp -s version.h.new version.h || mv version.h.new version.h
  178. AC_CONFIG_SUBDIRS(utils)
  179. AC_OUTPUT([Makefile intl/Makefile dpkg-deb/Makefile lib/Makefile
  180. include/Makefile dselect/Makefile split/Makefile methods/Makefile
  181. md5sum/Makefile main/Makefile doc/Makefile doc/ja/Makefile scripts/Makefile
  182. utils/Makefile po/Makefile.in])