From 418e74b5d96ef69193cb180004ac66af4e21d8ea Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Mon, 2 Jul 2007 19:42:13 +0200 Subject: [PATCH] configure: Merge the libsane existence check with the soname check. --- configure | 162 ++++++++++++++++++++++------------------------- configure.ac | 9 +-- dlls/sane.ds/ds_ctrl.c | 4 +- dlls/sane.ds/ds_image.c | 6 +- dlls/sane.ds/sane_i.h | 4 +- dlls/sane.ds/sane_main.c | 21 +++--- dlls/sane.ds/ui.c | 6 +- include/config.h.in | 3 - 8 files changed, 99 insertions(+), 116 deletions(-) diff --git a/configure b/configure index 59e939f3943..f109e738fd9 100755 --- a/configure +++ b/configure @@ -11228,13 +11228,11 @@ echo "${ECHO_T}no" >&6; } fi -SANEINCL="" - if test "$sane_devel" != "no" then - SANEINCL="`$sane_devel --cflags`" + ac_sane_incl="`$sane_devel --cflags`" ac_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $SANEINCL" + CPPFLAGS="$CPPFLAGS $ac_sane_incl" if test "${ac_cv_header_sane_sane_h+set}" = set; then { echo "$as_me:$LINENO: checking for sane/sane.h" >&5 echo $ECHO_N "checking for sane/sane.h... $ECHO_C" >&6; } @@ -11366,13 +11364,85 @@ echo "${ECHO_T}$ac_cv_header_sane_sane_h" >&6; } fi if test $ac_cv_header_sane_sane_h = yes; then + { echo "$as_me:$LINENO: checking for -lsane" >&5 +echo $ECHO_N "checking for -lsane... $ECHO_C" >&6; } +if test "${ac_cv_lib_soname_sane+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_soname_save_LIBS=$LIBS +LIBS="-lsane $LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -cat >>confdefs.h <<\_ACEOF -#define HAVE_SANE 1 +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sane_init (); +int +main () +{ +return sane_init (); + ; + return 0; +} _ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + case "$LIBEXT" in + dll) ;; + dylib) ac_cv_lib_soname_sane=`otool -L conftest$ac_exeext | grep "libsane\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libsane\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;; + *) ac_cv_lib_soname_sane=`$ac_cv_path_LDD conftest$ac_exeext | grep "libsane\\.$LIBEXT" | sed -e "s/^.*\(libsane\.$LIBEXT[^ ]*\).*$/\1/"';2,$d'` ;; + esac +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_soname_save_LIBS +fi +if test "x$ac_cv_lib_soname_sane" = "x"; then + { echo "$as_me:$LINENO: result: not found" >&5 +echo "${ECHO_T}not found" >&6; } else - SANEINCL="" + { echo "$as_me:$LINENO: result: $ac_cv_lib_soname_sane" >&5 +echo "${ECHO_T}$ac_cv_lib_soname_sane" >&6; } + +cat >>confdefs.h <<_ACEOF +#define SONAME_LIBSANE "$ac_cv_lib_soname_sane" +_ACEOF + + SANEINCL="$ac_sane_incl" + +fi + fi @@ -15470,84 +15540,6 @@ _ACEOF fi -{ echo "$as_me:$LINENO: checking for -lsane" >&5 -echo $ECHO_N "checking for -lsane... $ECHO_C" >&6; } -if test "${ac_cv_lib_soname_sane+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_soname_save_LIBS=$LIBS -LIBS="-lsane $LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char sane_init (); -int -main () -{ -return sane_init (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - case "$LIBEXT" in - dll) ;; - dylib) ac_cv_lib_soname_sane=`otool -L conftest$ac_exeext | grep "libsane\\.[0-9A-Za-z.]*dylib" | sed -e "s/^.*\/\(libsane\.[0-9A-Za-z.]*dylib\).*$/\1/"';2,$d'` ;; - *) ac_cv_lib_soname_sane=`$ac_cv_path_LDD conftest$ac_exeext | grep "libsane\\.$LIBEXT" | sed -e "s/^.*\(libsane\.$LIBEXT[^ ]*\).*$/\1/"';2,$d'` ;; - esac -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - LIBS=$ac_check_soname_save_LIBS -fi -if test "x$ac_cv_lib_soname_sane" = "x"; then - { echo "$as_me:$LINENO: result: not found" >&5 -echo "${ECHO_T}not found" >&6; } - -else - { echo "$as_me:$LINENO: result: $ac_cv_lib_soname_sane" >&5 -echo "${ECHO_T}$ac_cv_lib_soname_sane" >&6; } - -cat >>confdefs.h <<_ACEOF -#define SONAME_LIBSANE "$ac_cv_lib_soname_sane" -_ACEOF - - -fi - diff --git a/configure.ac b/configure.ac index 49c00116850..0c5b1a4586c 100644 --- a/configure.ac +++ b/configure.ac @@ -699,15 +699,13 @@ LIBS="$ac_save_LIBS" dnl **** Check for SANE **** AC_CHECK_PROG(sane_devel,sane-config,sane-config,no) -AC_SUBST(SANEINCL,"") if test "$sane_devel" != "no" then - SANEINCL="`$sane_devel --cflags`" + ac_sane_incl="`$sane_devel --cflags`" ac_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $SANEINCL" + CPPFLAGS="$CPPFLAGS $ac_sane_incl" AC_CHECK_HEADER(sane/sane.h, - [AC_DEFINE(HAVE_SANE, 1, [Define if we have SANE development environment])], - [SANEINCL=""]) + [WINE_CHECK_SONAME(sane,sane_init,[AC_SUBST(SANEINCL,"$ac_sane_incl")])]) CPPFLAGS="$ac_save_CPPFLAGS" fi @@ -1123,7 +1121,6 @@ WINE_CHECK_SONAME(fontconfig,FcInit) WINE_CHECK_SONAME(ssl,SSL_library_init) WINE_CHECK_SONAME(crypto,BIO_new_socket) WINE_CHECK_SONAME(jpeg,jpeg_start_decompress) -WINE_CHECK_SONAME(sane,sane_init) dnl **** Check for functions **** diff --git a/dlls/sane.ds/ds_ctrl.c b/dlls/sane.ds/ds_ctrl.c index ac8c0fe76df..dbd3f3eded7 100644 --- a/dlls/sane.ds/ds_ctrl.c +++ b/dlls/sane.ds/ds_ctrl.c @@ -485,7 +485,7 @@ TW_UINT16 SANE_SetupFileXfer2Set (pTW_IDENTITY pOrigin, TW_UINT16 SANE_SetupMemXferGet (pTW_IDENTITY pOrigin, TW_MEMREF pData) { -#ifndef HAVE_SANE +#ifndef SONAME_LIBSANE return TWRC_FAILURE; #else pTW_SETUPMEMXFER pSetupMemXfer = (pTW_SETUPMEMXFER)pData; @@ -573,7 +573,7 @@ TW_UINT16 SANE_EnableDSUserInterface (pTW_IDENTITY pOrigin, { activeDS.pendingEvent.TWMessage = MSG_CLOSEDSREQ; } -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE else { psane_get_parameters (activeDS.deviceHandle, &activeDS.sane_param); diff --git a/dlls/sane.ds/ds_image.c b/dlls/sane.ds/ds_image.c index ca5f9c947b3..c3e70821d03 100644 --- a/dlls/sane.ds/ds_image.c +++ b/dlls/sane.ds/ds_image.c @@ -80,7 +80,7 @@ TW_UINT16 SANE_ImageFileXferGet (pTW_IDENTITY pOrigin, TW_UINT16 SANE_ImageInfoGet (pTW_IDENTITY pOrigin, TW_MEMREF pData) { -#ifndef HAVE_SANE +#ifndef SONAME_LIBSANE return TWRC_FAILURE; #else TW_UINT16 twRC = TWRC_SUCCESS; @@ -186,7 +186,7 @@ TW_UINT16 SANE_ImageLayoutSet (pTW_IDENTITY pOrigin, TW_UINT16 SANE_ImageMemXferGet (pTW_IDENTITY pOrigin, TW_MEMREF pData) { -#ifndef HAVE_SANE +#ifndef SONAME_LIBSANE return TWRC_FAILURE; #else TW_UINT16 twRC = TWRC_SUCCESS; @@ -321,7 +321,7 @@ TW_UINT16 SANE_ImageMemXferGet (pTW_IDENTITY pOrigin, TW_UINT16 SANE_ImageNativeXferGet (pTW_IDENTITY pOrigin, TW_MEMREF pData) { -#ifndef HAVE_SANE +#ifndef SONAME_LIBSANE return TWRC_FAILURE; #else TW_UINT16 twRC = TWRC_SUCCESS; diff --git a/dlls/sane.ds/sane_i.h b/dlls/sane.ds/sane_i.h index c32c12d5247..11b6eeb9e20 100644 --- a/dlls/sane.ds/sane_i.h +++ b/dlls/sane.ds/sane_i.h @@ -23,7 +23,7 @@ # error You must include config.h first #endif -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE # include #define MAKE_FUNCPTR(f) typeof(f) * p##f; @@ -63,7 +63,7 @@ struct tagActiveDS TW_UINT16 twCC; /* condition code */ HWND hwndOwner; /* window handle of the app */ HWND progressWnd; /* window handle of the scanning window */ -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE SANE_Handle deviceHandle; /* device handle */ SANE_Parameters sane_param; /* parameters about the image transferred */ diff --git a/dlls/sane.ds/sane_main.c b/dlls/sane.ds/sane_main.c index 645dbf381e7..8c0e39feb37 100644 --- a/dlls/sane.ds/sane_main.c +++ b/dlls/sane.ds/sane_main.c @@ -35,10 +35,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(twain); HINSTANCE SANE_instance; -#ifdef HAVE_SANE -#ifndef SONAME_LIBSANE -#define SONAME_LIBSANE "libsane" SONAME_EXT -#endif +#ifdef SONAME_LIBSANE static void *libsane_handle; @@ -85,7 +82,7 @@ static void *open_libsane(void) return h; } -#endif /* HAVE_SANE */ +#endif /* SONAME_LIBSANE */ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { @@ -94,7 +91,7 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) switch (fdwReason) { case DLL_PROCESS_ATTACH: { -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE SANE_Status status; SANE_Int version_code; @@ -109,7 +106,7 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) break; } case DLL_PROCESS_DETACH: -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE TRACE("calling sane_exit()\n"); psane_exit (); @@ -123,7 +120,7 @@ BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE static TW_UINT16 SANE_GetIdentity( pTW_IDENTITY, pTW_IDENTITY); static TW_UINT16 SANE_OpenDS( pTW_IDENTITY, pTW_IDENTITY); #endif @@ -142,19 +139,19 @@ static TW_UINT16 SANE_SourceControlHandler ( switch (MSG) { case MSG_CLOSEDS: -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE psane_close (activeDS.deviceHandle); #endif break; case MSG_OPENDS: -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE twRC = SANE_OpenDS( pOrigin, (pTW_IDENTITY)pData); #else twRC = TWRC_FAILURE; #endif break; case MSG_GET: -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE twRC = SANE_GetIdentity( pOrigin, (pTW_IDENTITY)pData); #else twRC = TWRC_FAILURE; @@ -566,7 +563,7 @@ DS_Entry ( pTW_IDENTITY pOrigin, return twRC; } -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE /* Sane returns device names that are longer than the 32 bytes allowed by TWAIN. However, it colon separates them, and the last bit is the most interesting. So we use the last bit, and add a signature diff --git a/dlls/sane.ds/ui.c b/dlls/sane.ds/ui.c index 91d435d49b3..fe5270a6cac 100644 --- a/dlls/sane.ds/ui.c +++ b/dlls/sane.ds/ui.c @@ -37,7 +37,7 @@ #include "wine/debug.h" #include "resource.h" -#ifdef HAVE_SANE +#ifdef SONAME_LIBSANE WINE_DEFAULT_DEBUG_CHANNEL(twain); @@ -1056,11 +1056,11 @@ HWND ScanningDialogBox(HWND dialog, LONG progress) return dialog; } -#else /* HAVE_SANE */ +#else /* SONAME_LIBSANE */ BOOL DoScannerUI(void) { return FALSE; } -#endif /* HAVE_SANE */ +#endif /* SONAME_LIBSANE */ diff --git a/include/config.h.in b/include/config.h.in index 98b9d0b1c20..a96a9c3a26d 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -549,9 +549,6 @@ /* Define to 1 if you have the `rfork' function. */ #undef HAVE_RFORK -/* Define if we have SANE development environment */ -#undef HAVE_SANE - /* Define to 1 if you have the header file. */ #undef HAVE_SCHED_H -- 2.11.4.GIT