dnl configure.in dnl dnl Process this file with autoconf to produce a configure script. dnl dnl Copyright (C) 1998, 1999, 2000 R Core Team ### ### This file is part of R. ### ### R is free software; you can redistribute it and/or modify it under ### the terms of the GNU General Public License as published by the Free ### Software Foundation; either version 2 of the License, or (at your ### option) any later version. ### ### R is distributed in the hope that it will be useful, but WITHOUT ANY ### WARRANTY; without even the implied warranty of MERCHANTABILITY or ### FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ### License for more details. ### ### You should have received a copy of the GNU General Public License ### along with R; if not, you can obtain it via the World Wide Web at ### `http://www.gnu.org/copyleft/gpl.html', or by writing to the Free ### Software Foundation, 59 Temple Place -- Suite 330, Boston, MA ### 02111-3307, USA. AC_PREREQ(2.13) AC_INIT(src/include/Defn.h) AC_CONFIG_HEADER(src/include/config.h) AC_CONFIG_AUX_DIR(tools) ### Platform & Version AC_CANONICAL_HOST AC_DEFINE_UNQUOTED(R_PLATFORM, "${host}") AC_DEFINE_UNQUOTED(R_CPU, "${host_cpu}") AC_DEFINE_UNQUOTED(R_VENDOR, "${host_vendor}") AC_DEFINE_UNQUOTED(R_OS, "${host_os}") R_PLATFORM="${host}" AC_SUBST(R_PLATFORM) PACKAGE="R" VERSION=`cat ${srcdir}/VERSION | cut -d" " -f1` AC_SUBST(PACKAGE) AC_SUBST(VERSION) ### Defaults f="${srcdir}/config.site" if test -r ${f}; then echo "loading site script ${f}"; . ${f}; fi f="${HOME}/.Rconf" if test -r ${f}; then echo "loading user script ${f}"; . ${f} ; fi f="./config.site" if test -r ${f}; then echo "loading build specific script ${f}"; . ${f} ; fi ### Handle arguments to configure config_opts=${ac_configure_args} AC_SUBST(config_opts) ## Allow the user to specify support for R-profiling. AC_ARG_ENABLE(R-profiling, [ --enable-R-profiling attempt to compile support for Rprof()], [ if test "${enableval}" = no; then want_Rprof=no elif test "${enableval}" = yes; then want_Rprof=yes else want_Rprof=yes fi], want_Rprof=no) ## Enable maintainer-specific portions of Makefiles. AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and maybe confusing) to the casual installer], use_maintainer_mode=${enableval}, use_maintainer_mode=no) ## Allow the user to force us to use f2c. AC_ARG_WITH(f2c, [ --with-f2c use f2c even if FORTRAN compiler is available], R_ARG_USE(f2c), use_f2c=false) ## Allow the user to force us to use g77. AC_ARG_WITH(g77, [ --with-g77 use g77 to compile FORTRAN subroutines], R_ARG_USE(g77), use_g77=false) ## Allow the user to force us to use f77. AC_ARG_WITH(f77, [ --with-f77 use f77 to compile FORTRAN subroutines], R_ARG_USE(f77), use_f77=false) ## Make sure only one of the above options for Fortran compilers was ## specified. R_ARG_WITH_EXCLUSIVE(f77, g77, [warn_f77_and_g77="--with-f77 and --with-g77 both given! Using f77 ..." AC_MSG_WARN(${warn_f77_and_g77}) use_g77=false]) R_ARG_WITH_EXCLUSIVE(f77, f2c, [warn_f77_and_f2c="--with-f77 and --with-f2c both given! Using f77 ..." AC_MSG_WARN(${warn_f77_and_f2c}) use_f2c=false]) R_ARG_WITH_EXCLUSIVE(g77, f2c, [warn_g77_and_f2c="--with-g77 and --with-f2c both given! Using g77 ..." AC_MSG_WARN(${warn_g77_and_f2c}) use_f2c=false]) AC_ARG_WITH(blas, [ --with-blas use specified BLAS library], R_ARG_USE(blas), use_blas=true) AC_ARG_WITH(readline, [ --with-readline use readline library (if available)], R_ARG_USE(readline), use_readline=true) AC_ARG_WITH(gnome, [ --with-gnome use GNOME, or specify its library dir], [ if test "${withval}" = no; then want_gnome=no elif test "${withval}" = yes; then want_gnome=yes else want_gnome=yes LIBS="${LIBS} -L${withval}/lib" CPPFLAGS="${CPPFLAGS} -I${withval}/include" gnome_prefix=${withval}/lib fi], want_gnome=no) AC_ARG_WITH(tcltk, [ --with-tcltk use Tcl/Tk, or specify its library dir], [ if test "${withval}" = no; then want_tcltk=no elif test "${withval}" = yes; then want_tcltk=yes else want_tcltk=yes LIBS="${LIBS} -L${withval}" tcltk_prefix=${withval} fi], want_tcltk=yes) AC_ARG_WITH(tcl-config, [ --with-tcl-config=TCL_CONFIG specify location of tclConfig.sh], TCL_CONFIG=${withval}, TCL_CONFIG="") AC_ARG_WITH(tk-config, [ --with-tk-config=TK_CONFIG specify location of tkConfig.sh], TK_CONFIG=${withval}, TK_CONFIG="") ### Programs. AC_PROG_AWK AC_PROG_LN_S AC_PROG_RANLIB AC_PROG_YACC R_PROG_AR R_PROG_ECHO_N R_PROG_INSTALL ## Make : ${MAKE=make} AC_SUBST(MAKE) ## Perl R_PROG_PERL ## Tar : ${TAR=tar} AC_SUBST(TAR) ## TeXMF stuff R_PROG_TEXMF ## Unzip && zip AC_PATH_PROGS(R_UNZIPCMD, [${UNZIP} unzip], "") AC_PATH_PROGS(R_ZIPCMD, [${ZIP} zip], "") ## C compiler. AC_PROG_CC AC_PROG_CPP AC_PROG_GCC_TRADITIONAL : ${CPPFLAGS="-I/usr/local/include"} : ${LIBS="-L/usr/local/lib"} dnl Yes, we already need this at configure time ... case "${host}" in *aix*) AC_AIX LIBS="${LIBS} -lc" ;; *hpux*) case "${CC}" in cc) if test `echo ${CFLAGS} | grep -c -e "-A[ae] "` = 0; then CFLAGS="${CFLAGS} -Aa" fi AC_DEFINE(_HPUX_SOURCE) ;; c89) AC_DEFINE(_HPUX_SOURCE) ;; esac ;; esac R_PROG_CC_M ## FORTRAN compiler ## If we have not been forced to use a particular FORTRAN compiler, try ## to find one using one of the several common names. ## ## The configure options `--with-g77', `--with-f77', or `--with-f2c' ## force g77, f77, or f2c to be used. It is also possible to use these ## options to specify the full path name of the compiler. if test -n "${FC}"; then F77=${FC} AC_MSG_RESULT([defining F77 to be ${F77}]) elif ${use_f77}; then if test "${with_f77}" = yes; then F77=f77 else F77="${with_f77}" fi AC_MSG_RESULT([defining F77 to be ${F77}]) elif ${use_g77}; then if test "${with_g77}" = yes; then F77=g77 else F77="${with_g77}" fi AC_MSG_RESULT([defining F77 to be ${F77}]) elif ${use_f2c}; then F77= if test "${with_f2c}" = yes; then F2C=f2c else F2C="${with_f2c}" fi AC_MSG_RESULT([defining F2C to be ${F2C}]) else F77= for name in g77 fort77 f77 f90 xlf cf77 fc; do AC_PATH_PROG(F77, ${name}) if test -n "${F77}"; then if test -n "`file ${F77} | grep script`"; then dnl If F77 found above is a shell or perl script, do not use it. F77= else F77=`basename ${F77}` break fi fi done if test -z "${F77}"; then AC_CHECK_PROG(F2C, f2c, f2c, []) fi fi if test -n "${F77}"; then FC=${F77} AC_PROG_F77 AC_F77_LIBRARY_LDFLAGS R_PROG_F77_APPEND_UNDERSCORE R_PROG_F77_CC_COMPAT f77_rules_frag=Makefrag.f77 cat << \EOF > ${f77_rules_frag} .f.c: .f.o: $(FC) $(ALL_FFLAGS) -c $< -o $@ EOF elif test -n "${F2C}"; then R_PROG_F2C_FLIBS f77_rules_frag=Makefrag.f77 cat << \EOF > ${f77_rules_frag} .f.o: $(F2C) $(F2CFLAGS) < $< > $*.c $(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $*.c -o $@ @rm -f $*.c EOF else AC_MSG_ERROR([Neither an F77 compiler nor f2c found]) fi AC_SUBST(FC) AC_SUBST(F2C) AC_SUBST_FILE(f77_rules_frag) ### Libraries. ## Make sure that non-standard directories specified via `-L' are really ## searched in the tests for arg in ${LIBS}; do case ${arg} in -L*) lib=`echo ${arg} | sed "s/^-L//"` if test -z "${R_LD_LIBRARY_PATH}"; then R_LD_LIBRARY_PATH="${lib}" else R_LD_LIBRARY_PATH="${R_LD_LIBRARY_PATH}:${lib}" fi ;; esac done if test -z "${LD_LIBRARY_PATH}"; then LD_LIBRARY_PATH="${R_LD_LIBRARY_PATH}" else LD_LIBRARY_PATH="${R_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH}" fi export LD_LIBRARY_PATH ## C++ compiler. ## Needs to follow Libraries as -lstdc++ might well be in /usr/local/lib ## and so not found at run time. AC_PROG_CXX AC_PROG_CXXCPP AC_CHECK_LIB(m, sin) if ${use_libmoto}; then AC_CHECK_LIB(moto, sin) fi AC_CHECK_LIB(ncurses, main,, AC_CHECK_LIB(termcap, main,, AC_CHECK_LIB(termlib, main) )) AC_CHECK_LIB(dl, dlopen) AC_CHECK_LIB(z, main) ## Special checks for odd OS specific things AC_CHECK_FUNC(gethostbyname) if test "${ac_cv_func_gethostbyname}" = no; then AC_CHECK_LIB(nsl, gethostbyname) fi AC_CHECK_FUNC(connect) if test "${ac_cv_func_connect}" = no; then AC_CHECK_LIB(socket, connect) fi ## BLAS if ${use_blas}; then R_BLAS_LIBS fi if test -n "${BLAS_LIBS}"; then BLAS= else BLAS="blas.o" fi AC_SUBST(BLAS) if ${use_readline}; then AC_CHECK_LIB(readline, rl_callback_read_char) fi ### Library functions. AC_FUNC_ALLOCA AC_FUNC_VFORK AC_FUNC_VPRINTF AC_CHECK_FUNCS(access acosh asinh atanh bcopy finite getcwd getgrgid \ getpwuid getuid hypot isnan matherr memcpy memmove popen putenv rint \ strcoll stat system times vsnprintf) AC_REPLACE_FUNCS(strdup) R_FUNC___SETFPUCW R_FUNC_CALLOC R_FUNC_FINITE R_FUNC_LOG ### Header files. AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_DIRENT AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(dl.h dlfcn.h elf.h floatingpoint.h fpu_control.h \ grp.h ieee754.h ieeefp.h locale.h pwd.h readline/history.h \ readline/readline.h rpc/rpc.h rpc/xdr.h string.h sys/param.h \ sys/stat.h sys/time.h sys/times.h sys/utsname.h unistd.h) AC_CHECK_HEADERS(netdb.h netinet/in.h netinet/tcp.h sys/socket.h ) case "${host}" in *sunos4*) AC_DEFINE(SunOS4) ;; esac R_HEADER_SETJMP AC_MSG_CHECKING([for BSD networking]) if test "${ac_cv_header_netdb_h}" = yes \ -a "${ac_cv_header_netinet_in_h}" = yes \ -a "${ac_cv_header_netinet_tcp_h}" = yes \ -a "${ac_cv_header_sys_socket_h}" = yes \ -a \( "${ac_cv_func_connect}" = yes \ -o "${ac_cv_lib_socket_connect}" = yes \) \ -a \( "${ac_cv_func_gethostbyname}" = yes \ -o "${ac_cv_lib_nsl_gethostbyname}" = yes \) ; then AC_DEFINE(HAVE_BSD_NETWORKING) AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi R_BITMAPS ### Typedefs. AC_TYPE_SIGNAL AC_TYPE_PID_T AC_TYPE_SIZE_T AC_CHECK_TYPE(blkcnt_t, long) ### C Compiler characteristics. AC_C_BIGENDIAN AC_C_CONST if test "${cross_compiling}" = yes; then AC_MSG_WARN([assuming C longs are 4 byte on ${host}]) fi AC_CHECK_SIZEOF(long, 4) case "${host}" in i[[3456789]]86-*-*) R_PROG_CC_FLAG(-mieee-fp, R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -mieee-fp") R_PROG_CXX_FLAG(-mieee-fp, R_XTRA_CXXFLAGS="${R_XTRA_CXXFLAGS} -mieee-fp") ## In current glibc, inline version [x86] of exp is broken AC_EGREP_CPP(yes, [ #include #if defined(__GLIBC__) yes #endif ], R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -D__NO_MATH_INLINES") ;; *aix4.[[2-9]]*) AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE) if test "${GCC}" = yes; then R_PROG_CC_FLAG(-mno-fp-in-toc, R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -mno-fp-in-toc") fi R_XTRA_LIBS="${R_XTRA_LIBS} /lib/crt0.o" ;; alpha*osf*) AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE) ## if test "${GCC}" = yes; then R_PROG_CC_FLAG(-mieee, R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -mieee") else R_PROG_CC_FLAG(-ieee_with_inexact, R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -ieee_with_inexact") R_PROG_CC_FLAG(-std1, R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -std1") fi if test "${G77}" = yes; then R_XTRA_FFLAGS="${R_XTRA_FFLAGS} -mieee" else R_XTRA_FFLAGS="${R_XTRA_FFLAGS} -fpe3" fi ## ;; alpha*linux*) R_PROG_CC_FLAG(-mieee, R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -mieee" R_XTRA_FFLAGS="${R_XTRA_FFLAGS} -mieee") ;; *hpux*) AC_DEFINE(HAVE_NO_SYMBOL_UNDERSCORE) AC_DEFINE(USE_BUILTIN_RINT) case "${CC}" in cc|c89) R_XTRA_CFLAGS="${R_XTRA_CFLAGS} -D_HPUX_SOURCE" ;; esac AC_CHECK_LIB(dld, shl_load, R_XTRA_LIBS="${R_XTRA_LIBS} -ldld") ;; *irix*) R_C_OPTIEEE ;; esac AC_SUBST(CFLAGS) AC_SUBST(MAIN_CFLAGS) AC_SUBST(SHLIB_CFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(SHLIB_CXXFLAGS) AC_SUBST(FFLAGS) AC_SUBST(MAIN_FFLAGS) AC_SUBST(SHLIB_FFLAGS) AC_SUBST(F2CFLAGS) AC_SUBST(R_XTRA_CFLAGS) AC_SUBST(R_XTRA_CXXFLAGS) AC_SUBST(R_XTRA_FFLAGS) AC_SUBST(R_XTRA_LIBS) ## DLL stuff ## We need to determine the following: ## ## MAIN_LD, MAINLD_FLAGS ## command and flags for loading the main binary so that it will load ## shared libraries (DLLs) at runtime, also for profiling. ## CPICFLAGS, CXXPICFLAGS, FPICFLAGS ## flags for compiling C, C++, and Fortran library code ## SHLIB_LD, SHLIB_LDFLAGS ## command and flags for creating DLLs (which contain object files ## from a C or Fortran compiler). ## SHLIB_CXXLD, SHLIB_CXXLDFLAGS ## command and flags for creating DLLs which contain object files from ## a C++ compiler. According to autoconf, the C++ compiler/linker ## must be used for linking in this case (since special C++-ish things ## need to happen at link time like calling global constructors, ## instantiating templates, enabling exception support, etc.). ## ## The procedure is as follows. ## ## * We use applicable values from imake in case its CC is ours. ## * Irrespective of that, we think we know what to do with GNU tools ## (GNU C, Fortran, and C++ compilers). ## * Then, use platform specific overrides. ## * As a final safeguard, values from the environment (as specified in ## one of the configuration files or at the configure command line) ## override anything we figure out in the case of compiler flags; for ## linker flags (*LDFLAGS), environment settings override our results ## if the corresponding *LD variable was set, and add otherwise. ## ## NOTE: We do not provide defaults for the *LDFLAGS, taking a defensive ## approach. In case we cannot figure out {MAIN,SHLIB}_LDFLAGS and the ## user did not provide defaults, an error results. A warning is given ## if nothing was obtained for SHLIB_CXXLDFLAGS. main_ld=${CC} shlib_ld=${CC} shlib_cxxld=${CXX} SHLIB_EXT="so" ## Step 1. Ask imake. AC_PATH_PROG(XMKMF, xmkmf, [], ${PATH}:/usr/bin/X11:/usr/X11R6/bin:/usr/openwin/bin) if test -n "${XMKMF}"; then echo > Imakefile ${XMKMF} > /dev/null cc=`${srcdir}/tools/GETMAKEVAL CC` cc=`echo ${cc} | sed "s/ .*//"` if test "`which ${cc}`" = "`which ${CC}`"; then shlib_ldflags=`${srcdir}/tools/GETMAKEVAL SHLIBLDFLAGS` cpicflags=`${srcdir}/tools/GETMAKEVAL PICFLAGS` fpicflags=${cpicflags} fi cxx=`${srcdir}/tools/GETMAKEVAL CXX` cxx=`echo ${cxx} | sed "s/ .*//"` if test "`which ${cxx}`" = "`which ${CXX}`"; then cxxpicflags=`${srcdir}/tools/GETMAKEVAL CXXPICFLAGS` fi rm -f Imakefile Makefile fi ## Step 2. GNU compilers. if test "${GCC}" = yes; then cpicflags="-fPIC" shlib_ldflags="-shared" fi if test "${GXX}" = yes; then cxxpicflags="-fPIC" shlib_cxxldflags="-shared" fi if test "${G77}" = yes; then fpicflags="-fPIC" fi ## Step 3. Individual platform overrides. case "${host}" in *aix4.[[2-9]]*) EXPORTFILE="\$(top_builddir)/etc/R.exp" cpicflags= cxxpicflags= fpicflags= if test "${GCC}" = yes; then wl="-Xlinker " else wl= fi main_ldflags="${wl}-bdynamic ${wl}-bE:${EXPORTFILE} ${wl}-bM:SRE" # FIXME: is this really necessary? # if test "${GCC}" = yes; then # main_ldflags="${main_ldflags} `${CC} -print-libgcc-file-name`" # fi shlib_ldflags="${wl}-bM:SRE ${wl}-H512 ${wl}-T512 ${wl}-bnoentry \ ${wl}-bexpall ${wl}-bI:\$(R_HOME)/etc/R.exp" ;; alpha*osf*) cpicflags= cxxpicflags= fpicflags= shlib_ldflags="-shared" ;; *freebsd[[3-4]].*) main_ldflags="-export-dynamic" shlib_ldflags="-shared" ;; *hpux*) SHLIB_EXT=sl case "${CC}" in cc|c89) cpicflags="+Z" ;; esac case "${FC}" in f77|fort77|f90) fpicflags="+Z" ;; esac main_ldflags="-Wl,-E" if test "${GCC}" = yes; then shlib_ldflags="-shared -fPIC" else shlib_ldflags="-b" fi if test "${GXX}" = yes; then shlib_cxxldflags="-shared -fPIC" fi ;; *linux*aout) sed '/HAVE_ELF_H/d' confdefs.h > tmp.h ; mv tmp.h confdefs.h ;; *linux*) main_ldflags="-export-dynamic" ;; *netbsd*) if ${CPP} - -dM < /dev/null | grep -q __ELF__; then main_ldflags="-export-dynamic" shlib_ldflags="-shared" else shlib_ldflags="-Bshareable" fi ;; *sgi*) if test "${GCC}" != yes; then cpicflags="-KPIC" fi if test "${G77}" != yes; then fpicflags="-KPIC" fi shlib_ldflags="-shared" ;; *solaris*) shlib_ldflags="-G" if test "${GCC}" = yes; then ld=`${CC} -print-prog-name=ld` ldoutput=`${ld} -v 2>&1 | grep GNU` if test -n "${ldoutput}"; then main_ldflags="-Wl,-export-dynamic" shlib_ldflags="-shared" fi else cpicflags="-KPIC" fi if test "${G77}" != yes; then fpicflags="-PIC" fi ;; esac ## Step 4. Overrides from the environment and error checking. if test -z "${MAIN_LD-${MAINLD}}"; then ## FIXME: get rid of MAINLD/MAINLDFLAGS eventually. MAIN_LD=${main_ld} if test -z "${MAIN_LDFLAGS-${MAINLDFLAGS}}"; then MAIN_LDFLAGS=${main_ldflags} else MAIN_LDFLAGS="${MAIN_LDFLAGS-${MAINLDFLAGS}} ${main_ldflags}" fi fi : ${CPICFLAGS=${cpicflags}} if test -z "${CPICFLAGS}"; then case "${host}" in *aix4.[[2-9]]*) ;; alpha*osf*) ;; *) AC_MSG_WARN([Could not determine CPICFLAGS.]) AC_MSG_ERROR([See the file INSTALL for more information.]) ;; esac fi : ${FPICFLAGS=${fpicflags}} : ${CXXPICFLAGS=${cxxpicflags}} if test -z "${CXXPICFLAGS}"; then case "${host}" in *aix4.[[2-9]]*) ;; alpha*osf*) ;; *) warn_cxxpicflags="I could not determine CXXPICFLAGS" AC_MSG_WARN(${cxxpicflags}) ;; esac fi if test -z "${SHLIB_LD-${SHLIBLD}}"; then ## FIXME: get rid of SHLIBLD/SHLIBLDFLAGS eventually. SHLIB_LD=${shlib_ld} if test -z "${SHLIB_LDFLAGS-${SHLIBLDFLAGS}}"; then SHLIB_LDFLAGS=${shlib_ldflags} else SHLIB_LDFLAGS="${SHLIB_LDFLAGS-${SHLIBLDFLAGS}} ${shlib_ldflags}" fi fi if test -z "${SHLIB_LDFLAGS}"; then AC_MSG_WARN([Could not determine SHLIB_LDFLAGS.]) AC_MSG_ERROR([See the file INSTALL for more information.]) fi if test -z "${SHLIB_CXXLD}"; then SHLIB_CXXLD=${shlib_cxxld} if test -z "${SHLIB_CXXLDFLAGS}"; then SHLIB_CXXLDFLAGS=${shlib_cxxldflags} else SHLIB_CXXLDFLAGS="${SHLIB_CXXLDFLAGS} ${shlib_cxxldflags}" fi fi if test -z "${SHLIB_CXXLDFLAGS}"; then warn_shlib_cxxldflags="I could not determine SHLIB_CXXLDFLAGS" AC_MSG_WARN(${warn_shlib_cxxldflags}) fi AC_SUBST(MAIN_LD) AC_SUBST(MAIN_LDFLAGS) AC_SUBST(CPICFLAGS) AC_SUBST(FPICFLAGS) AC_SUBST(CXXPICFLAGS) AC_SUBST(SHLIB_LD) AC_SUBST(SHLIB_LDFLAGS) AC_SUBST(SHLIB_CXXLD) AC_SUBST(SHLIB_CXXLDFLAGS) AC_SUBST(SHLIB_EXT) AC_DEFINE_UNQUOTED(SHLIB_EXT, "${SHLIB_EXT}") AC_SUBST(EXPORTFILE) ### System services. ## X11 locations ## ## Here we use the standard X11 search macro. ## We force the use of -lX11 (perhaps this is not necessary). AC_PATH_XTRA if test -z "${no_x}"; then X_LIBS="${X_LIBS} -lX11" use_X11="yes" R_GUIS=X11 AC_DEFINE(HAVE_X11, 1) else use_X11="no" R_GUIS= fi ## GNOME R_GNOME if test "${use_gnome}" = yes; then R_GUIS="${R_GUIS} gnome"; fi AC_SUBST(R_GUIS) ## Tcl/Tk R_TCLTK ## R-profiling if test "${want_Rprof}" = yes; then AC_CHECK_FUNCS(setitimer, [AC_DEFINE(R_PROFILING)], [want_Rprof="no"]) fi AC_SUBST(R_PROFILING) ### Miscellaneous. ## Printing ## ## We look to see whether we have "lpr" or "lp". Some platforms ## provide both (SunOS and HPUX), and in those cases we choose lpr. if test -z "${R_PRINTCMD}"; then AC_CHECK_PROGS(R_PRINTCMD, lpr lp) fi AC_DEFINE_UNQUOTED(R_PRINTCMD, "${R_PRINTCMD}") AC_PATH_PROG(PAPERCONF, paperconf, false) papersize=`${PAPERCONF}` : ${R_PAPERSIZE=${papersize:-a4}} AC_SUBST(R_PAPERSIZE) ## Saving. AC_SUBST(R_BATCHSAVE) ## Final cleanups/rewrites. AM_CONDITIONAL(MAINTAINER_MODE, test "${use_maintainer_mode}" = yes) ## Make sure -L terms come first in LIBS, separate out as LIBPATHS LIBS1="" LIBS2="" for arg in ${LIBS}; do case ${arg} in -L*) LIBS1="${LIBS1} ${arg}" ;; *) LIBS2="${LIBS2} ${arg}" ;; esac done LIBS="${LIBS1} ${LIBS2}" if test -n "${LIBS1}"; then LIBPATHS="${LIBS1}" fi AC_SUBST(LIBPATHS) for arg in ${X_LIBS} ${TCLTK_LIBS} ${GNOME_LIBS} ${BLAS_LIBS}; do case ${arg} in -L*) lib=`echo ${arg} | sed "s/^-L//"` if test -z "${R_LD_LIBRARY_PATH}"; then R_LD_LIBRARY_PATH="${lib}" else R_LD_LIBRARY_PATH="${R_LD_LIBRARY_PATH}:${lib}" fi ;; esac done AC_SUBST(R_LD_LIBRARY_PATH) if test "${PERL}" = false; then PERL="/bin/sh false" fi ### Output. AC_OUTPUT(Makeconf Makefile afm/Makefile demos/Makefile demos/dynload/Makefile doc/Makefile doc/manual/Makefile etc/Makefile etc/Makeconf etc/Makeconf-tests share/Makefile src/Makefile src/appl/Makefile src/include/Makefile src/library/Makefile src/library/base/DESCRIPTION src/library/base/Makefile src/library/profile/Makefile src/library/ctest/DESCRIPTION src/library/ctest/Makefile src/library/ctest/src/Makefile src/library/eda/DESCRIPTION src/library/eda/Makefile src/library/eda/src/Makefile src/library/lqs/DESCRIPTION src/library/lqs/Makefile src/library/lqs/src/Makefile src/library/modreg/DESCRIPTION src/library/modreg/Makefile src/library/modreg/src/Makefile src/library/mva/DESCRIPTION src/library/mva/Makefile src/library/mva/src/Makefile src/library/nls/DESCRIPTION src/library/nls/Makefile src/library/nls/src/Makefile src/library/stepfun/DESCRIPTION src/library/stepfun/Makefile src/library/splines/DESCRIPTION src/library/splines/Makefile src/library/splines/src/Makefile src/library/tcltk/DESCRIPTION src/library/tcltk/Makefile src/library/tcltk/src/Makefile src/library/ts/DESCRIPTION src/library/ts/Makefile src/library/ts/src/Makefile src/main/Makefile src/nmath/Makefile src/nmath/standalone/Makefile src/scripts/Makefile src/scripts/COMPILE src/scripts/INSTALL src/scripts/REMOVE src/scripts/R.sh src/scripts/Rd2contents src/scripts/Rdconv src/scripts/Rdindex src/scripts/Rprof src/scripts/SHLIB src/scripts/Sd2Rd src/scripts/build src/scripts/build-help src/scripts/check src/unix/Makefile src/unix/X11/Makefile src/unix/gnome/Makefile tests/Makefile tests/Examples/Makefile tools/Makefile tools/Rdnewer tools/help2man tools/keyword-test tools/install-info tools/pkg2tex ) AC_OUTPUT_COMMANDS( chmod +x \ tools/Rdnewer \ tools/help2man \ tools/install-info \ tools/keyword-test \ tools/pkg2tex test -f src/include/stamp-h || echo timestamp > src/include/stamp-h ) if test -z "${F77}"; then FORT="${F2C} ${F2CFLAGS}" else FORT="${F77} ${R_XTRA_FFLAGS} ${FFLAGS}" fi AC_MSG_RESULT([ R is now configured for ${host} Source directory: ${srcdir} Installation directory: ${prefix} C compiler: ${CC} ${R_XTRA_CFLAGS} ${CFLAGS} C++ compiler: ${CXX} ${R_XTRA_CXXFLAGS} ${CXXFLAGS} FORTRAN compiler: ${FORT} X11 support: ${use_X11} Gnome support: ${use_gnome} Tcl/Tk support: ${use_tcltk} R profiling support: ${want_Rprof} ]) if test -n "${warn_f77_and_g77}"; then AC_MSG_WARN(${warn_f77_and_g77}) fi if test -n "${warn_f77_and_f2c}"; then AC_MSG_WARN(${warn_f77_and_f2c}) fi if test -n "${warn_g77_and_f2c}"; then AC_MSG_WARN(${warn_g77_and_f2c}) fi if test -n "${warn_f2c_flibs}"; then AC_MSG_WARN(${warn_f2c_flibs}) fi if test -n "${warn_cxxpicflags}"; then AC_MSG_WARN(${warn_cxxpicflags}) fi if test -n "${warn_shlib_cxxldflags}"; then AC_MSG_WARN(${warn_shlib_cxxldflags}) fi if test -n "${warn_libglade}"; then AC_MSG_WARN(${warn_libglade}) fi if test -n "${warn_tcltk_version}"; then AC_MSG_WARN(${warn_tcltk_version}) fi if test -n "${warn_perl5}"; then AC_MSG_WARN(${warn_perl5}) fi if test -n "${warn_dvi}"; then AC_MSG_WARN(${warn_dvi}) fi if test -n "${warn_info}"; then AC_MSG_WARN(${warn_info}) fi if test -n "${warn_pdf}"; then AC_MSG_WARN(${warn_pdf}) fi dnl Local Variables: *** dnl mode: sh *** dnl sh-indentation: 2 *** dnl End: ***