dnl dnl Process this file with autoconf to produce a configure script. dnl AC_INIT(Makefile.in) dnl If CFLAGS isn't defined and using gcc, set CFLAGS to something reasonable. dnl Otherwise, just prevent autoconf from molesting CFLAGS. CFLAGS=$CFLAGS AC_PROG_CC if test "x$CFLAGS" = "x" ; then no_CFLAGS="yes" fi if test "x$no_CFLAGS" = "xyes" -a "x$GCC" = "xyes" ; then CFLAGS="-Wall -pipe -g3" fi A_CFLAGS="" AC_SUBST(A_CFLAGS) S_CFLAGS="-fPIC -DPIC" AC_SUBST(S_CFLAGS) AC_PROG_CPP dnl Platform-specific settings. The ABI can probably be determined dnl programmatically, but doing so is error-prone, which makes it generally dnl not worth the trouble. AC_CANONICAL_HOST case "${host}" in *-*-darwin*) CFLAGS="$CFLAGS -fno-common -no-cpp-precomp" ABI="macho" ;; *-*-freebsd*) ABI="elf" ;; *-*-linux*) ABI="elf" ;; *-*-netbsd*) AC_MSG_CHECKING(ABI) AC_EGREP_CPP(yes, [#ifdef __ELF__ yes #endif ], ABI="elf", ABI="aout") AC_MSG_RESULT($ABI) ;; *-*-solaris2*) ABI="elf" AC_DEFINE(SUNOS) ;; *) AC_MSG_RESULT(Unsupported operating system: ${host}) ABI="elf" ;; esac AC_PROG_INSTALL AC_PROG_RANLIB AC_PATH_PROG(AR, ar, , $PATH) dnl Search for termcap access routines in termcap, tinfo, curses, and ncurses. AC_CHECK_LIB(termcap, tgetent, , \ AC_CHECK_LIB(tinfo, tgetent, , \ AC_CHECK_LIB(curses, tgetent, , \ AC_CHECK_LIB(ncurses, tgetent, , \ AC_MSG_ERROR(termcap support not found))))) dnl Use termcap.h if it exists; otherwise we need both term.h and [n]curses.h. AC_CHECK_HEADERS(termcap.h, , \ AC_CHECK_HEADERS(term.h, , \ AC_MSG_RESULT(Need term.h since termcap.h is missing)) AC_CHECK_HEADERS(curses.h, , \ AC_CHECK_HEADERS(ncurses.h, , \ AC_MSG_RESULT(Need curses.h or ncurses.h)))) AC_CHECK_HEADERS(sys/cdefs.h vis.h) AC_CHECK_FUNCS(issetugid) AC_CHECK_FUNCS(strlcat, , CCSRCS="$CCSRCS np/strlcat.c") AC_CHECK_FUNCS(strlcpy, , CCSRCS="$CCSRCS np/strlcpy.c") AC_CHECK_FUNCS(fgetln, , CCSRCS="$CCSRCS np/fgetln.c") AC_CHECK_FUNCS(strvis, , CCSRCS="$CCSRCS np/vis.c") AC_CHECK_FUNCS(strunvis, , CCSRCS="$CCSRCS np/unvis.c") AC_EGREP_CPP(yes, [#include #ifdef __RCSID yes #endif ], , [CPPFLAGS="$CPPFLAGS '-D__RCSID(x)='"]) AC_EGREP_CPP(yes, [#include #ifdef __COPYRIGHT yes #endif ], , [CPPFLAGS="$CPPFLAGS '-D__COPYRIGHT(x)='"]) AC_EGREP_CPP(yes, [#include #ifdef __RENAME yes #endif ], , [CPPFLAGS="$CPPFLAGS '-D__RENAME(x)='"]) AC_EGREP_CPP(yes, [#include #ifdef _DIAGASSERT yes #endif ], , [CPPFLAGS="$CPPFLAGS '-D_DIAGASSERT(x)='"]) dnl Enable readline compatibility by default. AC_ARG_ENABLE(readline, [ --disable-readline Disable readline compatibility], if test "x$enable_readline" != "xyes" ; then enable_readline="no" fi , enable_readline="yes" ) dnl Optionally enable debugging. AC_ARG_ENABLE(debug, [ --enable-debug Enable debugging code], if test "x$enable_debug" != "xyes" ; then enable_debug="no" fi , enable_debug="no" ) if test "x$enable_debug" = "xyes" ; then CPPFLAGS="$CPPFLAGS -DDEBUG_TTY -DDEBUG_KEY -DDEBUG_READ -DDEBUG" CPPFLAGS="$CPPFLAGS -DDEBUG_REFRESH -DDEBUG_PASTE" else CFLAGS="$CFLAGS -O" fi dnl dnl File lists. This is done here instead of in the Makefile in order to avoid dnl the need for conditionals. dnl dnl .c files. ACSRCS="common.c emacs.c vi.c" BCSRCS="chared.c el.c hist.c key.c map.c parse.c prompt.c read.c refresh.c search.c sig.c term.c tty.c" CCSRCS="$CCSRCS history.c tokenizer.c" dnl Generated .c files. AGCSRCS="fcns.c help.c" BGCSRCS="editline.c" dnl .h files. HDRS="chared.h el.h hist.h key.h map.h parse.h prompt.h refresh.h search.h sig.h sys.h term.h tokenizer.h tty.h" dnl Installed .h files. IHDRS="histedit.h" dnl Installed headers for readline compatibility. IHDR_LINKS= dnl Generated .h files. AGHDRS="common.h emacs.h vi.h" BGHDRS="fcns.h help.h" dnl Header installation directories. HDR_DIRS="include" dnl Man pages. MAN3="editline.3" MAN5="editrc.5" MAN3_LINKS= for i in el_init.3 el_end.3 el_reset.3 el_gets.3 el_getc.3 el_push.3 \ el_parse.3 el_set.3 el_get.3 el_source.3 el_resize.3 el_line.3 \ el_insertstr.3 el_deletestr.3 history_init.3 history_end.3 \ history.3 ; do MAN3_LINKS="$MAN3_LINKS editline.3 $i" done dnl Man page installation directories. MAN_DIRS="man/man3 man/man5" dnl Library settings. LIB_DIRS="lib" LIB_MAJOR="2" LIB_MINOR="6" LIB_A="libedit.a" LIB_A_LINKS= if test "x$ABI" = "xelf" ; then LIB_S="libedit.so.$LIB_MAJOR" LIB_S_LINK="libedit.so" LIB_S_LINKS="$LIB_S $LIB_S_LINK" S_LDFLAGS="-shared" elif test "x$ABI" = "xaout" ; then LIB_S="libedit.so.$LIB_MAJOR.$LIB_MINOR" LIB_S_LINKS= S_LDFLAGS="-shared" elif test "x$ABI" = "xmacho" ; then S_LDFLAGS="-shared" LIB_S="libedit.$LIB_MAJOR.dylib" LIB_S_LINK="libedit.dylib" LIB_S_LINKS="$LIB_S $LIB_S_LINK" if test "x$prefix" = "xNONE" ; then S_LDFLAGS="-undefined suppress -flat_namespace -dynamiclib -compatibility_version $LIB_MAJOR -current_version $LIB_MAJOR -install_name /usr/local/lib/$LIB_S" else S_LDFLAGS="-undefined suppress -flat_namespace -dynamiclib -compatibility_version $LIB_MAJOR -current_version $LIB_MAJOR -install_name $prefix/lib/$LIB_S" fi fi dnl Test program. TEST="TEST/test" TCSRCS="TEST/test.c" dnl Add files to the lists if readline compatibility is enabled. if test "x$enable_readline" = "xyes" ; then CCSRCS="$CCSRCS readline.c" IHDRS="$IHDRS readline/readline.h" IHDR_LINKS="readline.h readline/history.h" HDR_DIRS="$HDR_DIRS include/readline" LIB_A_LINKS="$LIB_A_LINKS libedit.a libreadline.a" if test "x$ABI" = "xelf" ; then LIB_S_LINKS="$LIB_S_LINKS $LIB_S_LINK libreadline.so" elif test "x$ABI" = "xaout" ; then LIB_S_LINKS="$LIB_S_LINKS $LIB_S libreadline.so.$LIB_MAJOR.$LIB_MINOR" elif test "x$ABI" = "xmacho" ; then LIB_S_LINKS="$LIB_S_LINKS $LIB_S_LINK libreadline.dylib" fi fi AC_SUBST(ACSRCS) AC_SUBST(BCSRCS) AC_SUBST(CCSRCS) AC_SUBST(AGCSRCS) AC_SUBST(BGCSRCS) AC_SUBST(HDRS) AC_SUBST(IHDRS) AC_SUBST(IHDR_LINKS) AC_SUBST(AGHDRS) AC_SUBST(BGHDRS) AC_SUBST(HDR_DIRS) AC_SUBST(MAN3) AC_SUBST(MAN5) AC_SUBST(MAN3_LINKS) AC_SUBST(MAN_DIRS) AC_SUBST(LIB_DIRS) AC_SUBST(LIB_VER) AC_SUBST(LIB_A) AC_SUBST(LIB_A_LINKS) AC_SUBST(LIB_S) AC_SUBST(LIB_S_LINKS) AC_SUBST(S_LDFLAGS) AC_SUBST(TEST) AC_SUBST(TCSRCS) AC_CONFIG_HEADER(config.h) AC_OUTPUT(Makefile)