]> code.citadel.org Git - citadel.git/blob - citadel/configure.in
* configure.in, Makefile.in: only pass -fPIC to gcc
[citadel.git] / citadel / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_PREREQ(2.12)
3 AC_INIT(citserver.c)
4 AC_PREFIX_DEFAULT(/usr/local/citadel)
5 if test "$prefix" = NONE; then
6         AC_DEFINE_UNQUOTED(BBSDIR, "$ac_default_prefix")
7 else
8         AC_DEFINE_UNQUOTED(BBSDIR, "$prefix")
9 fi
10
11 AC_ARG_ENABLE(autologin, [  --disable-autologin     disable autologin (default is enabled if possible)])
12
13 AC_ARG_ENABLE(ansi-color, [  --enable-ansi-color     enable ANSI color (default is disabled)],[if test "$enableval" = yes; then
14         AC_DEFINE(ANSI_COLOR)
15 fi])
16
17 dnl By default, we only build the client (citadel and whobbs) unless we can
18 dnl figure out how to build with POSIX threads.
19 TARGETS=client
20
21 dnl Check for Digital Unix: it has a different way of building for pthreads,
22 dnl and we can't build pthreads programs with gcc due to header problems.
23 AC_CANONICAL_HOST
24 case "$host" in
25         alpha*-dec-osf*)
26                 if test -z "$CC"; then
27                         CC=cc
28                 fi
29                 SERVER_LDFLAGS=-pthread
30                 TARGETS="client server utils serv_modules"
31         ;;
32 esac
33
34 dnl Checks for programs.
35 AC_PROG_CC
36 if test "$GCC" = yes; then
37         CFLAGS="$CFLAGS -Wall -Wstrict-prototypes"
38         dnl pass -rdynamic to the linker to enable dlopen() modules to
39         dnl refer to symbols in the main executable (applies to citserver)
40         SERVER_LDFLAGS=-rdynamic
41         PICFLAGS=-fPIC
42 fi
43 AC_PROG_RANLIB
44 AC_PROG_INSTALL
45 missing_dir=`cd $ac_aux_dir && pwd`
46 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
47
48 dnl Checks for libraries.
49
50 dnl libdl, libgdbm, and libcrypt are only used in the server, so the
51 dnl Makefile only passes $(LIBS) to that target. If other programs start
52 dnl requiring additional libraries, we'll have to use other variables, as is
53 dnl done with curses.
54
55 dnl We only need crypt() if we're using autologin. FIXME: implement shadow
56 dnl passwords and/or PAM...
57 if test "$enable_autologin" != no; then
58         AC_CHECK_LIB(crypt, crypt)
59 fi
60
61 AC_CHECK_LIB(dl, dlopen)
62 AC_CHECK_LIB(gdbm, gdbm_open)
63 AC_CHECK_LIB(curses, initscr, CURSES=-lcurses)
64
65 dnl Check for libpthread(s) if we're not using Digital UNIX. (On which the
66 dnl -pthread flag takes care of this.) If we find one of the libraries, then
67 dnl set up the TARGETS variable to build the server as well as the client.
68 if test "$SERVER_LDFLAGS" != -pthread; then
69         AC_CHECK_LIB(pthread, pthread_create, [LIBS="$LIBS -lpthread"
70                 TARGETS="client server utils serv_modules"])
71         AC_CHECK_LIB(pthreads, pthread_create, [LIBS="$LIBS -lpthreads"
72                 TARGETS="client server utils serv_modules"])
73 fi
74
75 dnl Checks for header files.
76 AC_HEADER_DIRENT
77 AC_HEADER_STDC
78 AC_HEADER_SYS_WAIT
79 AC_CHECK_HEADERS(curses.h fcntl.h limits.h termios.h strings.h sys/ioctl.h sys/select.h sys/time.h syslog.h unistd.h)
80
81 dnl Checks for typedefs, structures, and compiler characteristics.
82 AC_C_CONST
83 AC_TYPE_PID_T
84 AC_TYPE_SIZE_T
85 AC_HEADER_TIME
86 AC_STRUCT_TM
87
88 dnl Checks for library functions.
89 AC_FUNC_GETPGRP
90 AC_PROG_GCC_TRADITIONAL
91 AC_TYPE_SIGNAL
92 AC_FUNC_VPRINTF
93 AC_CHECK_FUNCS(snprintf mkdir mktime rmdir select socket strerror)
94
95 dnl Enable autologin if the feature is requested (which is the default) and
96 dnl a crypt() function is available.
97 if test "$enable_autologin" != no; then
98         AC_CHECK_FUNC(crypt, AC_DEFINE(ENABLE_AUTOLOGIN))
99 fi
100
101 dnl Tell the Makefile whether we need to use our snprintf() replacement.
102 if test "$ac_cv_func_snprintf" = no; then
103         SNPRINTF=snprintf.o
104 fi
105
106 dnl Done! Now write the Makefile and sysdep.h
107 AC_SUBST(CURSES)
108 AC_SUBST(TARGETS)
109 AC_SUBST(SERVER_LDFLAGS)
110 AC_SUBST(SNPRINTF)
111 AC_SUBST(PICFLAGS)
112 AC_CONFIG_HEADER(sysdep.h)
113 AC_OUTPUT(Makefile)