diff options
Diffstat (limited to 'graphics/asymptote/configure.ac')
-rw-r--r-- | graphics/asymptote/configure.ac | 455 |
1 files changed, 455 insertions, 0 deletions
diff --git a/graphics/asymptote/configure.ac b/graphics/asymptote/configure.ac new file mode 100644 index 0000000000..92dd1ded2b --- /dev/null +++ b/graphics/asymptote/configure.ac @@ -0,0 +1,455 @@ +# -*- Autoconf -*- +# Run autoheader and autoconf to produce a header and configure script from +# this file. + +AC_PREREQ(2) +AC_INIT([Asymptote],[2.53],[http://sourceforge.net/projects/asymptote]) +VERSION=$PACKAGE_VERSION +AC_SUBST(VERSION) +m4_include([ax_pthread.m4]) + +test "$CXXFLAGS" || CXXFLAGS="-std=c++11" + +test "$CFLAGS" || CFLAGS="-g -O3" + +AC_C_BIGENDIAN +AC_CANONICAL_HOST + +test "$prefix" = NONE && prefix=/usr/local +Datadir=$datadir +test "$Datadir" = '${datarootdir}' && Datadir=$datarootdir +test "$Datadir" = '${prefix}/share' && Datadir=$prefix/share +AC_SUBST(Datadir) + +AC_ARG_WITH(latex, + [AS_HELP_STRING(--with-latex=PATH, + specify path to LaTeX installation)], + [if test "x$withval" != "x" ; then + latexdir=$withval + fi + ],[ +AC_CHECK_PROG(kpsewhich,kpsewhich,true) +if test "x$kpsewhich" = "xtrue"; then + latexdir=`kpsewhich -expand-var='$TEXMFLOCAL'/tex/latex` +else + latexdir=$prefix/share/texmf/tex/latex + AC_CHECK_FILE($latexdir/base/latex.ltx,, + [latexdir=/usr/share/texmf/tex/latex + AC_CHECK_FILE($latexdir/base/latex.ltx,,)]) +fi +]) + +AC_ARG_WITH(context, + [AS_HELP_STRING(--with-context=PATH, + specify path to ConTeXt installation)], + [if test "x$withval" != "x" ; then + contextdir=$withval + fi + ],[ +AC_CHECK_PROG(kpsewhich,kpsewhich,true) +if test "x$kpsewhich" = "xtrue"; then + contextdir=`kpsewhich -expand-var='$TEXMFLOCAL'/tex/context/third` +else + contextdir=$prefix/share/texmf/tex/context/third +fi +]) + +AC_CHECK_PROGS(TEXI2DVI,[texi2dvi], +[@echo \*\*\*\*\*\*\*\*\*\* Please install texi2dvi or put http://asymptote.sourceforge.net/asymptote.pdf in the doc directory: cannot execute texi2dvi]) + +AC_SUBST(TEXI2DVI) + +latexdir=$latexdir/asymptote +contextdir=$contextdir/asymptote + +AC_MSG_NOTICE([Using $latexdir for LaTeX style file]) +AC_MSG_NOTICE([Using $contextdir for ConTeXT style file]) + +AC_SUBST(latexdir) +AC_SUBST(contextdir) + +docdir=$Datadir/doc/asymptote + +AC_ARG_WITH(docdir, + [AS_HELP_STRING(--with-docdir=PATH, +alternate documentation installation directory)], + [if test "x$withval" != "x" ; then + docdir=$withval + fi + ]) +AC_SUBST(docdir) + +sysdir=$Datadir/asymptote + +AC_ARG_ENABLE(texlive-build, +[AS_HELP_STRING(--enable-texlive-build, +automatically determine sysdir from kpsewhich)], +[ if test "x$enableval" = "xyes" ; then + sysdir="" + fi +]) + +AC_DEFINE_UNQUOTED(ASYMPTOTE_SYSDIR,"$sysdir", + [System directory for global .asy files]) +AC_DEFINE_UNQUOTED(ASYMPTOTE_DOCDIR,"$docdir", + [Directory for documentation]) + +AC_CONFIG_SRCDIR([absyn.cc]) + +AC_LANG([C++]) + +# Checks for programs. +AC_PROG_LEX +AC_PROG_CXX +AC_PROG_INSTALL +AC_PROG_CC +AC_PROG_MAKE_SET +AC_PROG_YACC + +if test "$GXX" = yes ; then + ac_gcc_version=`echo __GNUC__ | $CC -E - | grep -v ^\#` + ac_clang=`echo __clang__ | $CC -E - | grep -v ^\#` + if test "$ac_gcc_version" -lt 4; then + CFLAGS=$CFLAGS" -finline-limit=400" + else + if test "$ac_clang" != 1; then + CFLAGS=$CFLAGS" -fno-var-tracking" + fi + fi +fi + +AC_DEFUN([DEFINE],[ +Define to 1 if you have $1. +]) + +AC_DEFUN([DEFINE_LIB],[ +Define to 1 if you have the `$1' library (-l$1). +]) + +AC_CHECK_HEADER(tr1/unordered_map,AC_DEFINE(HAVE_TR1_UNORDERED_MAP,1, + DEFINE([<tr1/unordered_map>])), + [AC_CHECK_HEADER(unordered_map,AC_DEFINE(HAVE_UNORDERED_MAP,1, + DEFINE([<unordered_map>])), + [AC_CHECK_HEADER(ext/hash_map,,OPTIONS=$OPTIONS"-DNOHASH ")])]) + +GCVERSION=8.0.4 +ATOMICVERSION=7.6.10 + +GCFILE=gc-$GCVERSION +ac_cv_use_gc="system" + +AC_CHECK_FILE($GCFILE.tar.gz, +ac_cv_use_gc=$GCVERSION) +AC_ARG_ENABLE(gc, + [AS_HELP_STRING(--enable-gc[[[=system]]], +enable system Boehm garbage collector)] + [ [[=VERSION]] enable local VERSION of Boehm garbage collector] + [ [[=PREFIX]] use Boehm garbage collector installed in PREFIX], + [ + if test "x$enableval" != "xyes" ; then + ac_cv_use_gc=$enableval + fi + ]) + +OPTIONS="-D_FILE_OFFSET_BITS=64 " +GCLIB= +GCPPLIB= +INCL="-I." +GCNAME="Boehm Garbage Collector" +GCOPTIONS="--disable-shared" +if test "x$ac_cv_use_gc" != "xno" ; then + OPTIONS=$OPTIONS"-DUSEGC " + case _$ac_cv_use_gc in + _|_system|_*[[\\/]]*) + if test "x$ac_cv_use_gc" = "xsystem" ; then + INCL="-I. -I$prefix/include/gc -I/usr/include/gc" + LIBS=$LIBS"-L$prefix/lib " + else + INCL="-I$ac_cv_use_gc/include/gc" + LIBS=$LIBS"-L$ac_cv_use_gc/lib " + fi + CPPFLAGS_SAVE=$CPPFLAGS + CPPFLAGS=$CPPFLAGS" $INCL" + AC_CHECK_HEADER(gc.h, + AC_CHECK_LIB([gc],[GC_malloc],[ + LIBS=$LIBS"-lgc " + AC_MSG_NOTICE([enabling system $GCNAME])],[ + GCDIR=$GCFILE + INCL="-I. -I\$(GC)/include" + GCLIB="\$(GC)/.libs/libgc.a" + AC_MSG_NOTICE($GCNAME library not found)]), + GCDIR=$GCFILE + GCLIB="\$(GC)/.libs/libgc.a" + INCL="-I. -I\$(GC)/include" + AC_MSG_NOTICE($GCNAME header file not found)) + CPPFLAGS=$CPPFLAGS_SAVE + ;; + *) + GCVERSION=$ac_cv_use_gc + GCFILE=gc-$GCVERSION + GCDIR=$GCFILE + AC_MSG_NOTICE([enabling local $GCNAME $GCDIR]) + GCLIB="\$(GC)/.libs/libgc.a" + INCL="-I. -I\$(GC)/include" + ;; + esac +else + AC_MSG_NOTICE([disabling the $GCNAME]) +fi + +AC_ARG_ENABLE(gc-debug, +[AS_HELP_STRING(--enable-gc-debug,enable (slow) garbage collector debugging)], +[ if test "x$ac_cv_use_gc" != "xno" ; then + if test "x$enableval" = "xyes" ; then + OPTIONS=$OPTIONS"-DGC_DEBUG " + AC_MSG_NOTICE([*** Enabling GC debugging: remember to make clean ***]) + AC_MSG_NOTICE([*** Set the environment variable GC_FIND_LEAK at runtime ***]) + fi + fi +]) + +AC_ARG_ENABLE(gc-full-debug, +[AS_HELP_STRING(--enable-gc-full-debug,enable (very slow) garbage collector backtrace)], +[ if test "x$ac_cv_use_gc" != "xno" ; then + if test "x$enableval" = "xyes" ; then + OPTIONS=$OPTIONS"-DGC_DEBUG -DGC_BACKTRACE " + GCOPTIONS=$GCOPTIONS"--enable-gc-debug " + AC_MSG_NOTICE([*** Enabling GC backtrace debugging; remember to make gc-clean ***]) + fi + fi +]) + +INCL=$INCL" -I/usr/include/tirpc" + +if test "$OSTYPE" = "cygwin"; then +CPPFLAGS=$CPPFLAGS" -D__MSDOS__ -I/usr/include/w32api -I/usr/include -DCALLBACK=__stdcall $INCL" +else +CPPFLAGS=$CPPFLAGS" $INCL" +fi + +AC_CHECK_FUNC(getopt_long_only, AC_DEFINE(HAVE_GNU_GETOPT_H, 1, + DEFINE([GNU <getopt.h>])), + getopt="getopt getopt1",) + +AC_SUBST(getopt) +AC_SUBST(GCVERSION) +AC_SUBST(ATOMICVERSION) +AC_SUBST(GCOPTIONS) +AC_SUBST(GCLIB) +AC_SUBST(GCPPLIB) +AC_SUBST(INCL) +AC_SUBST(OPTIONS) + +# Checks for libraries. +AC_SEARCH_LIBS([lgamma],[m c],, +AC_MSG_ERROR([*** Please install libm on your system ***])) +AC_CHECK_LIB([z], [deflate],, +AC_MSG_ERROR([*** Please install libz or zlib-devel on your system ***])) +AX_PTHREAD + +AC_ARG_ENABLE(sigsegv, +[AS_HELP_STRING(--enable-sigsegv[[[=yes]]],enable GNU Stack Overflow Handler)]) + +if test "x$enable_sigsegv" != "xno"; then + AC_CHECK_LIB([sigsegv], [stackoverflow_install_handler]) +fi + +AC_CHECK_LIB([rt], [sched_yield]) + +AC_ARG_ENABLE(readline, +[AS_HELP_STRING(--enable-readline[[[=yes]]],enable GNU Readline Library)]) + +AC_ARG_ENABLE(static, +[AS_HELP_STRING(--enable-static[[[=no]]],link against static libraries)]) + +LDSTATIC="" +STATIC="" +DYNAMIC="" +if test "x$enable_static" = "xyes"; then + LDSTATIC="-static " + STATIC="-Wl,-Bstatic " + DYNAMIC="-Wl,-Bdynamic " +fi + +AC_DEFUN([READLINE],[ +AC_MSG_NOTICE([*** Could not find GNU readline 4.3 or later: will compile without readline support ***]) +]) + +AC_DEFUN([CHECK_FOUND_STATIC],[ +AC_DEFINE($1,1,DEFINE_LIB($2)) +LIBS=$LIBS$STATIC"-l$2 "$DYNAMIC +]) + +AC_DEFUN([AC_CHECK_LIB_STATIC],[ +LDFLAGS0=$LDFLAGS +LDFLAGS=$LDFLAGS$LDSTATIC +AC_CHECK_LIB($1,$2,CHECK_FOUND_STATIC($3,$1), +if test "x$enable_static" = "xyes"; then +[ +AS_UNSET([ac_cv_lib_$1_$2]) +LDFLAGS=$LDFLAGS0 +AC_CHECK_LIB($1,$2,,$4) +] +else +$4 +fi +) +LDFLAGS=$LDFLAGS0 +]) + +if test "x$enable_readline" != "xno"; then +AC_COMPILE_IFELSE([ +AC_LANG_PROGRAM([ +#include <stdio.h> +#include <unistd.h> +#include <readline/readline.h> +],[ +#ifndef RL_READLINE_VERSION +abort +#endif +])], +AC_CHECK_LIB_STATIC(readline,history_list,HAVE_LIBREADLINE,READLINE), +READLINE) + +AC_CHECK_LIB_STATIC(tinfo,tgetent,HAVE_LIBTINFO,AC_MSG_NOTICE([perhaps tgetent is in -lncurses])) + +AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],[break]) +AC_CHECK_LIB_STATIC([ncurses],[setupterm],HAVE_LIBCURSES, + AC_CHECK_LIB([curses],[setupterm])) +fi + +AC_ARG_ENABLE(fftw, +[AS_HELP_STRING(--enable-fftw[[[=yes]]],enable FFTW Library)]) + +if test "x$enable_fftw" != "xno"; then + +AC_CHECK_HEADER(fftw3.h, +AC_CHECK_LIB_STATIC([fftw3],[fftw_execute],HAVE_LIBFFTW3, + AC_MSG_NOTICE([*** Could not find libfftw3: will compile without optional fast Fourier transforms. ***])), + AC_MSG_NOTICE([*** Header file fftw3.h not found: will compile without optional fast Fourier transforms. ***])) +fi + +# Checks for header files. +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS([fenv.h stddef.h libintl.h]) +AC_CHECK_HEADERS(fpu_control.h) +AC_CHECK_FUNCS([feenableexcept]) + + +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "xstream.h"])], + [AC_SEARCH_LIBS([xdrstdio_create],[nsl tirpc]) + AC_DEFINE(HAVE_RPC_RPC_H,1, + DEFINE([a working <tirpc/rpc/rpc.h> header]))], + AC_MSG_WARN([*** Broken rpc headers; XDR support disabled ***])) + +AC_ARG_ENABLE(gsl, +[AS_HELP_STRING(--enable-gsl[[[=yes]]],enable GNU Scientific Library)]) + +if test "x$enable_gsl" != "xno"; then + AC_CHECK_HEADER(gsl/gsl_sf.h, + AC_CHECK_LIB([gsl], gsl_sf_debye_6, [AC_DEFINE(HAVE_LIBGSL,1, + DEFINE_LIB[gsl]) LIBS=$LIBS"-lgsl -lgslcblas "], + AC_MSG_NOTICE([*** Could not find libgsl: will compile without optional special functions. ***]),[-lgslcblas]), + AC_MSG_NOTICE([*** Header file gsl_sf.h not found: will compile without optional special functions. ***])) +fi + +AC_ARG_ENABLE(gl, +[AS_HELP_STRING(--enable-gl[[[=yes]]],enable OpenGL Library)]) + +AC_ARG_ENABLE(offscreen, +[AS_HELP_STRING(--enable-offscreen[[[=no]]],enable experimental offscreen rendering using OSMesa library)]) + +AC_ARG_ENABLE(OpenImageIO, +[AS_HELP_STRING(--enable-openimageio[[[=no]]],enable experimental OpenImageIO Library)]) + +if test "x$enable_gl" != "xno"; then + AC_CHECK_HEADER(glm/glm.hpp, + [AC_DEFINE(HAVE_LIBGLM,1, + DEFINE([the <glm/glm.hpp> header]))],AC_MSG_NOTICE([*** Could not find glm header files: will compile without OpenGL support ***])) + AC_CHECK_HEADERS([ncurses/curses.h ncurses.h curses.h],[break]) +if test "x$enable_openimageio" = "xyes"; then + AC_CHECK_HEADER([OpenEXR/ImathVec.h], + AC_CHECK_HEADER([OpenImageIO/imageio.h], + AC_CHECK_LIB([OpenImageIO],[open]))) +fi + +case "$OSTYPE" in + cygwin) + AC_CHECK_LIB([gccpp],[GC_throw_bad_alloc]) + AC_CHECK_HEADER(GL/glut.h, + [AC_DEFINE(HAVE_LIBGLUT,1, + DEFINE_LIB[freeglut]) + LIBS=$LIBS"-lfreeglut "], + AC_MSG_NOTICE([*** Could not find libfreeglut: will compile without OpenGL support ***])) + AC_CHECK_HEADER(GL/gl.h, + [AC_DEFINE(HAVE_LIBGL,1, + DEFINE_LIB[opengl32]) + LIBS=$LIBS"-lopengl32 glew.o"], + AC_MSG_NOTICE([*** Could not find libopengl32: will compile without OpenGL support ***])) + ;; + darwin*) + AC_CHECK_LIB([gccpp],[GC_throw_bad_alloc]) + AC_CHECK_HEADER(OpenGL/gl.h, + [AC_DEFINE(HAVE_LIBGL,1, + DEFINE([<gl.h> header]))]) + AC_CHECK_HEADER(GLUT/glut.h, [AC_DEFINE(HAVE_LIBGLUT,1, + DEFINE_LIB[GLUT]) + LIBS=$LIBS"-framework GLUT -framework OpenGL -framework Cocoa glew.o "], + AC_MSG_NOTICE([*** Could not find GLUT: will compile without OpenGLLUT support ***])) + ;; + *) + AC_CHECK_LIB([gccpp],[GC_throw_bad_alloc]) + AC_CHECK_LIB([glut], [glutMainLoop],, + AC_MSG_NOTICE([*** Could not find libglut: will compile without GLUT support ***])) + AC_CHECK_LIB([GL], [glDepthMask], + [AC_DEFINE(HAVE_LIBGL,1, + DEFINE_LIB([GL])) + LIBS=$LIBS"-lGL glew.o "], + AC_MSG_NOTICE([*** Could not find libGL: will compile without OpenGL support ***])) +esac + if test "x$enable_offscreen" = "xyes"; then + AC_CHECK_LIB([OSMesa],OSMesaCreateContext,, + AC_MSG_NOTICE([*** Could not find libOSMesa: will compile without offscreen rendering support ***])) + fi +fi + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_CHECK_TYPES([ptrdiff_t]) +AC_CHECK_TYPES([long long]) +AC_CHECK_TYPES([long]) +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIGNAL + +AC_DEFUN([ac_FUNC_STRPTIME], [ + AC_CHECK_FUNCS(strptime) +]) + +# Checks for library functions. +AC_FUNC_FORK +AC_CHECK_FUNCS([dup2 floor memset pow sqrt strchr tgamma memrchr]) +AC_FUNC_STRFTIME +ac_FUNC_STRPTIME +AC_FUNC_ERROR_AT_LINE +AC_FUNC_FSEEKO + +AC_CONFIG_HEADERS(config.h) + +AC_CONFIG_FILES([Makefile doc/Makefile doc/png/Makefile]) +AC_OUTPUT + +if test "x$GCDIR" != "x" ; then + AC_CHECK_FILE($GCDIR.tar.gz,,[ + echo + echo Please put the Boehm garbage collector tar.gz files in the asymptote directory. + echo FOR EXAMPLE, USE THE COMMANDS: + echo + echo wget https://github.com/ivmai/bdwgc/releases/download/v$GCVERSION/$GCFILE.tar.gz + echo wget http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-$ATOMICVERSION.tar.gz + + echo + exit 1 + ]) +fi |