add a CVS snapshot, to thoroughly test on the Debian side
[alioth/jupp.git] / configure.ac
1 # $MirOS: contrib/code/jupp/configure.ac,v 1.52 2016/10/30 02:47:28 tg Exp $
2 #-
3 # Process this file with autoconf to produce a configure script.
4
5 # We need AC_PROG_EGREP
6 AC_PREREQ(2.54)
7
8 #### Here's the only place where to change version number ####
9 AC_INIT(joe, 3.1jupp29)
10 #### But see main.c for the Copyright (c) owner and year! ####
11 AC_CONFIG_SRCDIR([b.c])
12
13 AC_CANONICAL_BUILD
14 AC_CANONICAL_HOST
15 AC_CANONICAL_TARGET
16
17 # Init automake
18 AM_INIT_AUTOMAKE
19 AM_MAINTAINER_MODE
20 AM_CONFIG_HEADER(autoconf.h)
21
22 # Checks for programs.
23 AC_PROG_CC
24 AC_PROG_CPP
25 AC_PROG_EGREP
26 AC_PROG_INSTALL
27 AC_PROG_LN_S
28
29 case $host in
30 *-*-minix*)
31         CPPFLAGS="$CPPFLAGS -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX"
32         ;;
33 *-*-solaris*)
34         CPPFLAGS="$CPPFLAGS -I/usr/local/include"
35         LDFLAGS="$LDFLAGS -L/usr/local/lib -R/usr/local/lib"
36         ;;
37 *-gnu*)
38         CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
39         ;;
40 esac
41
42 case $host in
43 *-*-mirbsd* | *-*-openbsd*)
44         AC_DEFINE(HAVE_GCC_ATTRIBUTE_BOUNDED, 1, [Define if GCC has Anil's bounds checker])
45         ;;
46 esac
47
48
49 # Checks for libraries.
50
51 search_libs_selinux="selinux"
52 search_libs_snprintf="snprintf db"
53 search_libs_term=""
54 search_libs_util="util"
55
56 AC_ARG_ENABLE(curses,
57 [  --disable-curses        disable use of curses library],
58         curses=$enableval, curses=yes)
59 test x"$curses" = x"yes" && \
60     search_libs_term="$search_libs_term tinfo ncurses curses"
61
62 AC_ARG_ENABLE(termcap,
63 [  --disable-termcap       disable use of termcap library],
64         termcap=$enableval, termcap=yes)
65 test x"$termcap" = x"yes" && \
66     search_libs_term="$search_libs_term termcap"
67
68 AC_ARG_ENABLE([search_libs],
69 [  --disable-search-libs   do not search in any external libraries],
70         search_libs=$enableval, search_libs=yes)
71
72 if test x"$search_libs" = x"no"; then
73         search_libs_selinux=""
74         search_libs_snprintf=""
75         search_libs_term=""
76         search_libs_util=""
77 fi
78
79 AC_SEARCH_LIBS(openpty, $search_libs_util, AC_DEFINE_UNQUOTED(HAVE_OPENPTY, 1, [If we have BSD function openpty()]))
80 AC_SEARCH_LIBS(login_tty, $search_libs_util, AC_DEFINE_UNQUOTED(HAVE_LOGIN_TTY, 1, [If we have BSD function login_tty()]))
81 AC_SEARCH_LIBS(tgetflag, $search_libs_term, AC_DEFINE_UNQUOTED(TERMINFO, 1, [If we have newer terminfo/termcap capabilities]))
82 AC_SEARCH_LIBS(snprintf, $search_libs_snprintf, AC_DEFINE_UNQUOTED(HAVE_SNPRINTF, 1, [If we have snprintf]))
83 AC_SEARCH_LIBS(is_selinux_enabled, $search_libs_selinux, AC_DEFINE_UNQUOTED(HAVE_SELINUX_FUN, 1, [We have SELinux functions]))
84
85
86 # other conditionals
87
88 AC_ARG_ENABLE([getpwnam],
89 [  --disable-getpwnam      disable use of getpwnam function],
90         getpwnam=$enableval, getpwnam=yes)
91 test x"$getpwnam" = x"no" && CPPFLAGS="$CPPFLAGS -DJOE_NOPWNAM"
92
93 AC_ARG_ENABLE([termidx],
94 [  --disable-termidx       do not build the termidx binary],
95         termidx=$enableval, termidx=yes)
96 AM_CONDITIONAL([WANT_TERMIDX], [test x"$termidx" != x"no"])
97
98 AC_ARG_ENABLE([sysconfjoesubdir],
99 [  --enable-sysconfjoesubdir=/joe  (default value)],
100         [sysconfjoesubdir=$enableval], [sysconfjoesubdir=yes])
101 if test x"$sysconfjoesubdir" = x"yes"; then
102         sysconfjoesubdir=/joe
103 elif test x"$sysconfjoesubdir" = x"no"; then
104         sysconfjoesubdir=
105 fi
106 AC_SUBST(sysconfjoesubdir)
107
108 AC_ARG_ENABLE([win32reloc],
109 [  --enable-win32reloc     enable win32 self-relocation],
110         [win32reloc=$enableval], [win32reloc=no])
111 AM_CONDITIONAL([JUPP_WIN32RELOC], [test x"$win32reloc" = x"yes"])
112 if test x"$win32reloc" = x"yes"; then
113         joeinitfile='\\fBjoerc\\fR in the same directory as the binary resides in'
114         joeinitcopy='which resides in the same directory as the binary'
115         joeresides='C:\\eProgramme\\ejupp32\\ejoe.exe'
116         jrcbefore=''
117         jrcafter=' in the same directory as the binary'
118 elif test x"$win32reloc" = x"old"; then
119         joeinitfile='\\fBc:/windows/system32/joe/joerc\\fR'
120         joeinitcopy='which resides in \\fBc:/windows/system32/joe/joerc\\fR'
121         joeresides='c:/windows/system32/joe.exe'
122         jrcbefore='c:/windows/system32/joe/'
123         jrcafter=''
124 else
125         joeinitfile='usually \\fB'$sysconfdir$sysconfjoesubdir'/joerc\\fR'
126         joeinitcopy='which normally resides in \\fB'$sysconfdir$sysconfjoesubdir'/joerc\\fR'
127         joeresides=$bindir'/joe'
128         jrcbefore=$sysconfdir$sysconfjoesubdir/
129         jrcafter=''
130 fi
131 AC_SUBST(joeinitfile)
132 AC_SUBST(joeinitcopy)
133 AC_SUBST(joeresides)
134 AC_SUBST(jrcbefore)
135 AC_SUBST(jrcafter)
136
137
138 # Checks for header files.
139
140 AC_CHECK_HEADERS([ \
141         sys/dirent.h sys/ioctl.h sys/param.h sys/stat.h sys/termio.h \
142         sys/termios.h sys/time.h sys/types.h sys/wait.h errno.h fcntl.h \
143         langinfo.h limits.h locale.h paths.h pty.h pwd.h sgtty.h signal.h \
144         stdlib.h string.h termio.h termios.h time.h unistd.h util.h utime.h \
145         utmp.h bsd/string.h selinux/context.h selinux/selinux.h \
146 ])
147 AC_HEADER_DIRENT
148 AC_SYS_POSIX_TERMIOS
149 if test "$ac_cv_sys_posix_termios" = "yes"; then
150         AC_DEFINE(HAVE_POSIX_TERMIOS, 1, [We have <termios.h> and maybe <sys/termios.h>])
151 else
152         if test "$ac_cv_header_termio_h" = "yes" -a "$ac_cvs_header_sys_termio_h" = "yes" ]; then
153                 AC_DEFINE(HAVE_SYSV_TERMIO, 1, [We have <termio.h> and <sys/termio.h>])
154         fi
155 fi
156 AC_HEADER_TIOCGWINSZ
157
158 AC_HEADER_TIME
159
160 if test "$ac_cv_header_selinux_selinux_h" = "yes" -a "$ac_cv_header_selinux_context_h" = "yes" ; then
161         echo "Enabling SELinux context copying!"
162         AC_DEFINE(HAVE_SELINUX_HDR, 1, [We have SELinux headers])
163 fi
164
165 # Checks for typedefs, structures, and compiler characteristics.
166
167 AC_C_PROTOTYPES
168 AC_C_CONST
169 AC_SYS_LARGEFILE
170 if test "$cross_compiling" = "yes" ; then
171         AC_MSG_WARN(cross compiling so assuming defaults for most 32 bit machines)
172 fi
173 AC_CHECK_SIZEOF(char, 1)
174 AC_CHECK_SIZEOF(short, 2)
175 AC_CHECK_SIZEOF(int, 4)
176 AC_CHECK_SIZEOF(long, 4)
177 AC_CHECK_SIZEOF(void *, 4)
178 AC_CHECK_SIZEOF(long long, 8)
179 AC_CHECK_SIZEOF(off_t, 8)
180 AC_CHECK_TYPE([sighandler_t],
181         [AC_DEFINE([HAVE_SIGHANDLER_T], 1, [Define if you have the `sighandler_t' type.])],
182         ,
183         [/* if you have signal.h header, include it */
184 #ifdef HAVE_SIGNAL_H
185 #include <signal.h>
186 #endif])
187
188 # Checks for library functions.
189
190 AC_PROG_GCC_TRADITIONAL
191 AC_FUNC_FSEEKO
192 AC_FUNC_LSTAT
193 joe_SETPGRP
194 AC_TYPE_PID_T
195 AC_TYPE_SIZE_T
196 AC_CHECK_TYPE([ssize_t], [], [
197         AC_DEFINE([ssize_t], [int], [Define to `int' if <sys/types.h> does not define.])
198         ], [])
199 AC_TYPE_SIGNAL
200 AC_FUNC_STAT
201 AC_CHECK_FUNCS([getcwd getwd])
202 if test x"$ac_cv_func_getcwd" != xyes; then
203         if test x"$ac_cv_func_getwd" != xyes; then
204                 AC_MSG_ERROR([don't know how to get current working directory])
205         fi
206 fi
207 AC_CHECK_FUNCS([isblank])
208 if test x"$ac_cv_func_isblank" = xyes; then
209         joe_ISBLANK
210 fi
211 AC_CHECK_FUNCS([alarm mkdir mkstemp putenv setlocale strchr strdup utime setpgid])
212 AC_CHECK_FUNCS([setitimer sigaction sigvec siginterrupt sigprocmask])
213 AC_CHECK_FUNCS([strlcpy strlcat nl_langinfo get_current_dir_name ctime popen])
214
215 AC_CHECK_DECLS([strlcpy, strlcat, popen])
216 AC_CHECK_DECLS([ctime], [], [], [AC_INCLUDES_DEFAULT
217 #ifdef TIME_WITH_SYS_TIME
218 # include <sys/time.h>
219 # include <time.h>
220 #else
221 # ifdef HAVE_SYS_TIME_H
222 #  include <sys/time.h>
223 # else
224 #  include <time.h>
225 # endif
226 #endif
227 ])
228
229 joe_REINSTALL_SIGHANDLERS
230
231 AH_VERBATIM([_PARAMS],[/* Check to see if we can use strict prototypes */
232 #ifndef PARAMS
233 #  ifdef PROTOTYPES
234 #    define PARAMS(protos) protos
235 #  else
236 #    define PARAMS(protos) ()
237 #  endif
238 #endif])
239
240 # Check for programs..
241 AC_CHECK_PROG(SPELL,aspell,aspell,ispell)
242
243 AC_CONFIG_FILES([Makefile joerc jmacsrc jstarrc rjoerc jpicorc
244 syntax/c.jsf syntax/perl.jsf syntax/verilog.jsf syntax/sh.jsf syntax/python.jsf
245 syntax/conf.jsf syntax/php.jsf syntax/mail.jsf syntax/pascal.jsf syntax/html.jsf
246 syntax/vhdl.jsf syntax/fortran.jsf syntax/java.jsf syntax/xml.jsf syntax/tcl.jsf
247 charmaps/klingon syntax/lisp.jsf syntax/csh.jsf syntax/mason.jsf syntax/diff.jsf
248 syntax/asm.jsf syntax/tex.jsf])
249 AC_OUTPUT