dnl Process this file with autoconf to produce a configure script. -*-sh-*- AC_INIT(include/sane/sane.h) AC_CONFIG_HEADER(include/sane/config.h) AC_PREREQ(2.10)dnl dnl Minimum Autoconf version required. AC_ARG_PROGRAM # version code: V_MAJOR=1 V_MINOR=0 V_REV=8 V_EXTRA=-cvs AC_SUBST(V_MAJOR) AC_SUBST(V_MINOR) AC_SUBST(V_REV) PACKAGE=sane-backends VERSION=${V_MAJOR}.${V_MINOR}.${V_REV}${V_EXTRA} NUMBER_VERSION=${V_MAJOR}.${V_MINOR}.${V_REV} PACKAGE_VERSION="$PACKAGE-$VERSION" AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Define to the name of the distribution.]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Define to the version of the distribution.]) AC_DEFINE_UNQUOTED(PACKAGE_VERSION, "$PACKAGE_VERSION", [The concatenation of the strings PACKAGE, "-", and VERSION.]) AC_DEFINE_UNQUOTED(SANE_DLL_V_MAJOR, $V_MAJOR, [SANE DLL major number]) AC_DEFINE_UNQUOTED(SANE_DLL_V_MINOR, $V_MINOR, [SANE DLL minor number]) AC_DEFINE_UNQUOTED(SANE_DLL_V_BUILD, $V_REV, [SANE DLL revision number]) AC_SUBST(PACKAGE) AC_SUBST(VERSION) AC_SUBST(NUMBER_VERSION) AC_SUBST(PACKAGE_VERSION) dnl Checks for programs. AC_PROG_CC AC_PROG_LD AC_PROG_INSTALL AC_PROG_MAKE_SET AC_PROG_CPP AC_PROG_GCC_TRADITIONAL AC_AIX AC_MINIX AC_ISC_POSIX AM_PROG_CC_STDC AC_C_BIGENDIAN INCLUDES="${INCLUDES} -I/usr/local/include" CPPFLAGS="${CPPFLAGS} -D_GNU_SOURCE" if test "${ac_cv_prog_gcc}" = "yes"; then NORMAL_CFLAGS="\ -W \ -Wall" WARN_CFLAGS="\ -W \ -Wall \ -Wcast-align \ -Wcast-qual \ -Wmissing-declarations \ -Wmissing-prototypes \ -Wpointer-arith \ -Wreturn-type \ -Wstrict-prototypes \ -pedantic" # OS/2 and others don't include some headers with -ansi enabled ANSI_FLAG=-ansi AC_CHECK_HEADER(os2.h,[ANSI_FLAG=],) case "${host_os}" in solaris* | hpux*) ANSI_FLAG= ;; esac WARN_CFLAGS="${WARN_CFLAGS} ${ANSI_FLAG}" # Warnings enabled by default (development) AC_ARG_ENABLE(warnings, [ --enable-warnings turn on tons of compiler warnings (GCC only) [default=yes]], [ if eval "test x$enable_warnings = xyes"; then for flag in $WARN_CFLAGS; do JAPHAR_GREP_CFLAGS($flag, [ CFLAGS="$CFLAGS $flag" ]) done else for flag in $NORMAL_CFLAGS; do JAPHAR_GREP_CFLAGS($flag, [ CFLAGS="$CFLAGS $flag" ]) done fi ], [if true; then # release (false) or development (true) # Warnings enabled by default (development) for flag in $WARN_CFLAGS; do JAPHAR_GREP_CFLAGS($flag, [ CFLAGS="$CFLAGS $flag" ]) done else # Warnings disabled by default (release) for flag in $NORMAL_CFLAGS; do JAPHAR_GREP_CFLAGS($flag, [ CFLAGS="$CFLAGS $flag" ]) done fi]) fi # ac_cv_prog_gcc dnl special LDFLAGS case "${host_os}" in aix*) #enable .so libraries, disable archives LDFLAGS="$LDFLAGS -Wl,-brtl" ;; esac dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(fcntl.h unistd.h libc.h sys/dsreq.h sys/select.h \ sys/time.h sys/shm.h \ sys/scanio.h scsi.h sys/scsi.h sys/scsicmd.h sys/scsiio.h \ bsd/dev/scsireg.h scsi/sg.h /usr/src/linux/include/scsi/sg.h io/cam/cam.h \ camlib.h os2.h sys/socket.h sys/io.h gscdds.h sys/hw.h \ sys/types.h sys/scsi/scsi.h sys/scsi/sgdefs.h sys/scsi/targets/scgio.h \ apollo/scsi.h sys/sdi_comm.h sys/passthrudef.h linux/ppdev.h usb.h \ sys/bitypes.h sys/sem.h) dnl Do some sanity checks. It doesn't make sense to proceed if those headers dnl aren't present. MISSING_HEADERS= if test "${ac_cv_header_fcntl_h}" != "yes" ; then MISSING_HEADERS="${MISSING_HEADERS}\"fcntl.h\" " fi if test "${ac_cv_header_sys_time_h}" != "yes" ; then MISSING_HEADERS="${MISSING_HEADERS}\"sys/time.h\" " fi if test "${ac_cv_header_unistd_h}" != "yes" ; then MISSING_HEADERS="${MISSING_HEADERS}\"unistd.h\" " fi if test "${ac_cv_header_stdc}" != "yes" ; then MISSING_HEADERS="${MISSING_HEADERS}\"ANSI C headers\" " fi if test "${MISSING_HEADERS}" != "" ; then echo "*** The following essential header files couldn't be found:" echo "*** ${MISSING_HEADERS}" echo "*** Maybe the compiler isn't ANSI C compliant or not properly installed?" echo "*** For details on what went wrong see config.log." AC_MSG_ERROR([Exiting now.]) fi dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIGNAL AC_TYPE_SIZE_T AC_TYPE_PID_T AC_CHECK_TYPE(ssize_t, long) SANE_CHECK_U_TYPES # from Python, check for "long long" type AC_MSG_CHECKING(for long long support) have_long_long=no AC_TRY_COMPILE([], [long long x; x = (long long)0;], AC_DEFINE(HAVE_LONG_LONG, 1, [Define if the long long type is available.]) have_long_long=yes) AC_MSG_RESULT($have_long_long) AC_CHECK_HEADER([asm/io.h],[ AC_MSG_CHECKING([whether asm/io.h can be included]); AC_TRY_COMPILE([ #include #include ],[outb (0, 0l)], [AC_DEFINE(HAVE_ASM_IO_H, 1, [Define if you have the header file.]) AC_MSG_RESULT(yes)],AC_MSG_RESULT(no))],) AC_MSG_CHECKING([for struct flock in fcntl.h]) AC_EGREP_HEADER([struct flock], fcntl.h, [AC_MSG_RESULT(yes) ; AC_DEFINE(HAVE_STRUCT_FLOCK, 1, [Define if struct flock is available.])], AC_MSG_RESULT(no)) if test "$ac_cv_header_sys_scsiio_h" = "yes" \ -a "$ac_cv_header_scsi_h" = "yes"; then AC_TRY_COMPILE([ #include #include ],[scsireq_t req],, AC_DEFINE(scsireq_t, struct scsireq_t, [Define scsireq_t as \`struct scsireq\' if necessary.])) fi AC_MSG_CHECKING([for socklen_t in ]) AC_TRY_COMPILE([ #include ],[socklen_t len],AC_MSG_RESULT(yes), [AC_MSG_RESULT(no); AC_DEFINE(socklen_t,int, [Define socklen_t as \`int\' if necessary.])]) AC_MSG_CHECKING([for union semun in ]) AC_TRY_COMPILE([ #include #include #include ],[union semun test_semun],[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UNION_SEMUN,1,[Define if union semun is available.])], AC_MSG_RESULT(no)) AC_MSG_CHECKING([for sg_header.target_status in ]) AC_TRY_COMPILE([ #include #include ],[ struct sg_header hdr; hdr.target_status = 1; return 0; ],[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SG_TARGET_STATUS,1,[Define if sg_header.target_status is available.])], AC_MSG_RESULT(no)) SANE_V4L_VERSION dnl Checks for dll libraries: dl if test "${enable_dynamic}" != "no"; then AC_CHECK_HEADERS(dlfcn.h, [AC_CHECK_LIB(dl,dlopen, DL_LIB=-ldl) saved_LIBS="${LIBS}" LIBS="${LIBS} ${DL_LIB}" AC_CHECK_FUNCS(dlopen, enable_dynamic=yes,) LIBS="${saved_LIBS}" ],) # HP/UX DLL handling AC_CHECK_HEADERS(dl.h, [AC_CHECK_LIB(dld,shl_load, DL_LIB=-ldld) saved_LIBS="${LIBS}" LIBS="${LIBS} ${DL_LIB}" AC_CHECK_FUNCS(shl_load, enable_dynamic=yes,) LIBS="${saved_LIBS}" ],) fi AC_SUBST(DL_LIB) dnl Checks for Backend libraries. AC_CHECK_LIB(m,sqrt) AC_CHECK_LIB(scsi, scsireq_enter) # FreeBSD needs this AC_CHECK_LIB(cam, cam_open_device) # FreeBSD 3+ needs this if test "${ac_cv_header_usb_h}" = "yes" ; then AC_CHECK_LIB(usb, usb_get_busses) if test "${ac_cv_lib_usb_usb_get_busses}" = "yes" ; then HAVE_LIBUSB="yes" fi fi SANE_CHECK_JPEG SANE_CHECK_IEEE1284 SANE_CHECK_GPHOTO2 dnl IRIX sometimes has SYSVR3/4 network DSOs, but we do not need or want dnl to use them! if test "`uname`" != "IRIX" -a "`uname`" != "IRIX64"; then AC_CHECK_LIB(nsl,gethostbyaddr) AC_CHECK_LIB(socket,socket) AC_CHECK_LIB(syslog, syslog) # OS/2 needs this fi dnl check for PTAL library (used in hp backend) SANE_CHECK_PTAL dnl look for /dev/urandom if test -c /dev/urandom ; then AC_DEFINE(HAVE_DEV_URANDOM, 1, [Is /dev/urandom available?]) fi dnl Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_MMAP AC_CHECK_FUNCS(atexit inet_addr inet_aton inet_ntoa ioperm mkdir \ scsireq_enter strftime strstr strtod \ cfmakeraw tcsendbreak strcasecmp strncasecmp _portaccess) AC_REPLACE_FUNCS(getenv inet_ntop inet_pton isfdtype sigprocmask snprintf \ strdup strndup strsep usleep vsyslog) if test "$ac_cv_header_os2_h" = "yes" ; then AC_DEFINE(strncasecmp,strnicmp,[Define for OS/2 only]) AC_DEFINE(strcasecmp,stricmp,[Define for OS/2 only]) fi SANE_LINKER_RPATH dnl initialize libtool AC_LIBTOOL_WIN32_DLL AC_DISABLE_STATIC AC_PROG_LIBTOOL AC_SUBST(INCLUDES) CPPFLAGS="${CPPFLAGS} -DPATH_SANE_CONFIG_DIR=\$(configdir) \ -DPATH_SANE_DATA_DIR=\$(datadir) \ -DV_MAJOR=${V_MAJOR} -DV_MINOR=${V_MINOR}" if test "${sane_cv_use_libjpeg}" != "yes"; then echo "disabling DC210/DC240 backends (failed to find JPEG library)" DC210= DC240= DJPEG= else echo "enabling DC210/DC240 backends" DC210=dc210 DC240=dc240 DJPEG=djpeg fi AC_SUBST(DC210) AC_SUBST(DC240) AC_SUBST(DJPEG) if test "${sane_cv_use_libieee1284}" != "yes" then echo "disabling CANON_PP backend (failed to find required libieee1284 version)" CANON_PP= else echo "enabling CANON_PP backend" CANON_PP=canon_pp fi AC_SUBST(CANON_PP) if test "${sane_cv_use_libieee1284}" != "yes" then echo "disabling HPSJ5S backend (failed to find required libieee1284 version)" HPSJ5S= else echo "enabling HPSJ5S backend" HPSJ5S=hpsj5s fi AC_SUBST(HPSJ5S) if test "${HAVE_GPHOTO2}" != "gphoto2-config" \ -o "${sane_cv_use_libjpeg}" != "yes"; then echo "disabling GPHOTO2 backend (not requested, or failed to find gphoto2-config or JPEG lib)" GPHOTO2= else echo "enabling GPHOTO2 backend" GPHOTO2=gphoto2 fi AC_SUBST(GPHOTO2) if test "${ac_cv_header_sys_scanio_h}" = "no"; then echo "disabling PINT backend" PINT= else echo "enabling PINT backend" PINT=pint fi AC_SUBST(PINT) if test "${ac_cv_func_ioperm}" = "no" \ && test "${ac_cv_func__portaccess}" = "no" then echo "disabling QuickCam backend" QCAM= else echo "enabling QuickCam backend" QCAM=qcam fi AC_SUBST(QCAM) if test "${sane_v4l_version}" = "v4l" then echo "enabling Video4Linux backend" V4L=v4l else echo "disabling Video4Linux backend" V4L= fi AC_SUBST(V4L) if test "${ac_cv_header_sys_socket_h}" = "no"; then echo "disabling NET backend" NET= SANED= else echo "enabling NET backend" NET=net SANED=saned fi AC_SUBST(NET) AC_SUBST(SANED) if test "${HAVE_LIBUSB}" = "yes" ; then echo "enabling SM3600 backend" SM3600=sm3600 else echo "disabling SM3600 backend" SM3600= fi AC_SUBST(SM3600) if test "${ac_cv_header_sys_sem_h}" = "no" ; then echo "disabling SnapScan backend" SNAPSCAN= else echo "enabling SnapScan backend" SNAPSCAN=snapscan fi AC_SUBST(SNAPSCAN) if test "${enable_shared}" = "no"; then enable_preload=yes fi if test "${enable_dynamic}" != yes || test "${enable_preload}" = "yes"; then echo "preloading backends into DLL" DLL_PRELOAD="\$(PRELOADABLE_BACKENDS)" else DLL_PRELOAD="" fi AC_SUBST(DLL_PRELOAD) AC_ARG_ENABLE(pnm-backend, [ --enable-pnm-backend enable the pnm backend for testing frontends. Warning: This will be a security risk if used together with saned. See PROBLEMS file for details. [default=no]], [PNM="pnm"], [PNM=""]) AC_SUBST(PNM) AC_ARG_ENABLE(scsibuffersize, [ --enable-scsibuffersize=N specify the default size (in bytes) of the buffer for SCSI commands [default=131072]], [set_scsibuffersize="$enableval"], [set_scsibuffersize=131072]) AC_DEFINE_UNQUOTED(SCSIBUFFERSIZE, $set_scsibuffersize, [SCSI command buffer size]) echo "scsi buffersize: $set_scsibuffersize" AC_ARG_ENABLE(scsi-directio, [ --enable-scsi-directio enable SCSI direct IO (Linux only; can lead to crashes with backends using shared memory). [default=no] This option is in no way related to --enable-parport-directio. See README.linux for more information.], [ if eval "test x$enable_scsi_directio = xyes"; then CFLAGS="$CFLAGS -DENABLE_SCSI_DIRECTIO" fi ]) AC_ARG_ENABLE(parport-directio, [ --enable-parport-directio enable parallel port direct IO, the backend will do direct hardware access to use parallel port, so frontends will require special permission level. [default=no] This option is in no way related to --enable-scsi-directio], [ if eval "test x$enable_parport_directio = xyes"; then CFLAGS="$CFLAGS -DENABLE_PARPORT_DIRECTIO" fi ]) AC_ARG_ENABLE(translations, [ --enable-translations install translations of backend options [default=no]], INSTALL_TRANSLATIONS=install-translations, INSTALL_TRANSLATIONS= ) AC_SUBST(INSTALL_TRANSLATIONS) AC_ARG_ENABLE(local-backends, [ --disable-local-backends turns off compilation of all backends but net], [ if eval "test x$enable_local_backends = xno"; then SELECTED_BACKENDS="net" fi ], , ) AC_SUBST(SELECTED_BACKENDS) AC_PATH_PROG(SANE_CONFIG_PATH, sane-config, no) AC_CHECK_LIB(sane, sane_init, LIBSANE_EXISTS="yes") DISTCLEAN_FILES="*~ .*~ *.log *.bak *.old *.orig *.out *.rej \"\#\"* \".\\#\"*" AC_SUBST(DISTCLEAN_FILES) echo using CPPFLAGS=\"${CPPFLAGS}\" echo using CFLAGS=\"${CFLAGS}\" echo using LDFLAGS=\"${LDFLAGS}\" echo using LIBS=\"${LIBS}\" AC_OUTPUT([Makefile lib/Makefile sanei/Makefile frontend/Makefile japi/Makefile backend/Makefile include/Makefile doc/Makefile po/Makefile testsuite/Makefile tools/sane-desc.el tools/Makefile tools/sane-config],) if test "$SANE_CONFIG_PATH" != "no" ; then SANE_INSTALLED_VERSION=`$SANE_CONFIG_PATH --version` SANE_INSTALLED_PREFIX=`$SANE_CONFIG_PATH --prefix` if test "$SANE_INSTALLED_PREFIX" != "$prefix" ; then echo "*** WARNING: SANE is already installed (version $SANE_INSTALLED_VERSION). The old" echo "*** installation is at $SANE_INSTALLED_PREFIX while SANE will now be installed" echo "*** at $prefix. It is recommended to uninstall the old SANE version" echo "*** before installing the new one to avoid problems." fi else if test "$LIBSANE_EXISTS" = "yes" ; then echo "*** Warning: An old version of SANE was detected but the sane-config program" echo "*** couldn't be found. If you encounter any problems with SANE remove the old" echo "*** SANE files and reinstall this version." fi fi if test "$SELECTED_BACKENDS" != "" ; then echo "*** Warning: Local backends have been disabled. This means that scanners" echo "*** connected to your local computer won't be supported. Only a network" echo "*** connection to a remote host ist possible." fi echo "****************************************************************" echo "* Please be sure to read file PROBLEMS in this directory *" echo "* BEFORE running any of the SANE applications. Some devices *" echo "* may be damaged by inproper operation, so please do heed this *" echo "* advice. *" echo "****************************************************************"