Projects STRLCPY neomutt Commits c12b9867
🤬
  • ■ ■ ■ ■ ■ ■
    auto.def
    skipped 940 lines
    941 941  ###############################################################################
    942 942  # Header cache - bdb
    943 943  if {[get-define want-bdb]} {
    944  - set bdb_versions [opt-val with-bdb-version { 5.3 6.2 4.8 }] ;# Will be checked in order
    945  - set bdb_prefix [opt-val with-bdb $prefix]
    946  - 
    947  - foreach ver $bdb_versions {
    948  - lassign [split $ver .] maj min
    949  - # This is ugly, but it allows us to not have an inner loop
    950  - lappend bdb_majors $maj $maj $maj $maj $maj $maj
    951  - lappend bdb_minors $min $min $min $min $min $min
    952  - lappend bdb_exploded "" db-$maj-$min db${maj}${min} db$maj.$min db-$maj db$maj
    953  - }
    954  - 
    955  - foreach maj $bdb_majors min $bdb_minors ver $bdb_exploded {
    956  - set ver_inc_dir $bdb_prefix/include/$ver
    957  - set ver_lib_dir $bdb_prefix/$::libdir_tail/$ver
     944 + proc find_bdb {bdb_prefix maj min path_tail lib_names} {
     945 + set ver_inc_dir $bdb_prefix/include/$path_tail
     946 + set ver_lib_dir $bdb_prefix/$::libdir_tail/$path_tail
    958 947   set ver_inc_file $ver_inc_dir/db.h
    959  - set ver_lib_file db-$maj.$min
    960 948   
    961 949   # File exists?
    962 950   msg-checking "Checking for BerkeleyDB in $ver_inc_dir..."
    963 951   if {![file exists $ver_inc_file]} {
    964 952   msg-result "no"
    965  - continue
     953 + return 0
    966 954   }
    967 955   
    968 956   # Version is coherent?
    skipped 2 lines
    971 959   if {$inc_maj eq {} || $inc_min eq {} ||
    972 960   $inc_maj != $maj || $inc_min != $min} {
    973 961   msg-result "no (expecting $maj.$min, got $inc_maj.$inc_min)"
    974  - continue
     962 + return 0
    975 963   }
    976 964   msg-result "yes"
    977 965   
    978 966   # Can link?
    979  - cc-with [list -libs -L$ver_lib_dir -cflags -I$ver_inc_dir] {
    980  - if {![check-inc-and-lib bdb {} db.h db_env_create db-$maj.$min]} {
    981  - msg-result "no"
    982  - continue
     967 + foreach lib_name $lib_names {
     968 + cc-with [list -libs -L$ver_lib_dir -cflags -I$ver_inc_dir] {
     969 + check-inc-and-lib bdb {} db.h db_env_create $lib_name
     970 + }
     971 + if {[have-feature bdb]} {
     972 + define-append CFLAGS -I$ver_inc_dir
     973 + define-append LDFLAGS -L$ver_lib_dir
     974 + define-append LIBS -l$lib_name
     975 + define-append HCACHE_BACKENDS "bdb"
     976 + define USE_HCACHE
     977 + return 1
    983 978   }
    984 979   }
    985  - define-append CFLAGS -I$ver_inc_dir
    986  - define-append LDFLAGS -L$ver_lib_dir
    987  - define-append LIBS -ldb-$maj.$min
    988  - define-append HCACHE_BACKENDS "bdb"
    989  - define USE_HCACHE
    990  - break
     980 + return 0
     981 + }
     982 + 
     983 + set bdb_versions [opt-val with-bdb-version { 5.3 6.2 4.8 }] ;# Will be checked in order
     984 + set bdb_prefix [opt-val with-bdb $prefix]
     985 + 
     986 + foreach ver $bdb_versions {
     987 + lassign [split $ver .] maj min
     988 + foreach path_tail [list "" db-$maj-$min db${maj}${min} db$maj.$min db-$maj db$maj] {
     989 + set lib_names [list db$maj-$maj.$min db$maj-$maj db-$maj.$min db-$maj]
     990 + if {[find_bdb $bdb_prefix $maj $min $path_tail $lib_names]} {
     991 + break
     992 + }
     993 + }
     994 + if {[have-feature bdb]} {
     995 + break
     996 + }
    991 997   }
    992 998   
    993 999   if {![have-feature bdb]} {
    skipped 399 lines
Please wait...
Page is in error, reload to recover