Changeset 481 for trunk/configure.ac


Ignore:
Timestamp:
Jul 18, 2015, 5:06:52 PM (6 years ago)
Author:
katerina
Message:

Enhancements and fixes for tickets #374, #375, #376, #377, #378, and #379.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/configure.ac

    r477 r481  
    1212dnl start
    1313dnl
    14 AM_INIT_AUTOMAKE(samhain, 3.1.6)
     14AM_INIT_AUTOMAKE(samhain, 4.0.0.rc1)
    1515AC_DEFINE([SAMHAIN], 1, [Application is samhain])
    1616AC_CANONICAL_HOST
     
    4040
    4141AC_HEADER_STDC
    42 dnl
    43 dnl first one is a dummy because of an autoconf bug
    44 dnl (no HAVE_... for first one)
    45 dnl
    46 AC_CHECK_HEADERS([sys/ipc.h sys/msg.h sys/uio.h fcntl.h])
     42
     43AC_CHECK_HEADERS([sys/ipc.h sys/sem.h sys/msg.h sys/uio.h fcntl.h])
    4744
    4845
     
    395392)
    396393AC_CHECK_FUNC(statfs, AC_DEFINE(HAVE_STATFS) statfs="yes",  statfs="no")
    397 AC_CHECK_VA_COPY
     394SL_CHECK_VA_COPY
    398395AC_CHECK_FUNCS(vsnprintf, [SL_CHECK_VSNPRINTF])
    399396AC_CHECK_MLOCK
     
    532529SH_CHECK_TYPEDEF(long long, HAVE_LONG_LONG)
    533530SH_CHECK_TYPEDEF(uint16_t, HAVE_UINT16_T)
     531SH_CHECK_TYPEDEF(uint32_t, HAVE_UINT32_T)
    534532SH_CHECK_TYPEDEF(uint64_t, HAVE_UINT64_T)
    535533if test "$sh_HAVE_LONG_LONG" = "yes"; then
     
    946944                mytclient="-DSH_WITH_CLIENT"
    947945                yulectl_prg=
     946                samhainadmin_prg=
    948947                setpwd_prg="samhain_setpwd"
    949948                sh_main_prg="samhain"
     
    958957                mytclient="-DSH_WITH_SERVER"
    959958                yulectl_prg="yulectl"
     959                samhainadmin_prg="scripts/samhainadmin.pl"
    960960                setpwd_prg="samhain_setpwd"
    961961                sh_main_prg="yule"
     
    968968                mytclient="-DSH_STANDALONE"
    969969                yulectl_prg=
     970                samhainadmin_prg=
    970971                setpwd_prg=
    971972                sh_main_prg="samhain"
     
    981982        setpwd_prg=
    982983        yulectl_prg=
     984        samhainadmin_prg=
    983985        sh_main_prg="samhain"
    984986dnl     AC_CHECK_HEADER(sys/capability.h,
     
    990992AC_SUBST(setpwd_prg)
    991993AC_SUBST(yulectl_prg)
     994AC_SUBST(samhainadmin_prg)
    992995AC_SUBST(sh_main_prg)
    993996AC_SUBST(mytclient)
     
    10131016                  LIBS="${tmp_LIBS}"
    10141017                fi
    1015                 AC_DEFINE(SH_COMPILE_STATIC, 1, [Define if compiling static])
    1016                 if test "x$GCC" = "xyes"; then
    1017                         sh_no_gcc_static=no
    1018                         LDFLAGS="$LDFLAGS -static"
     1018
     1019                if test "x$GCC" = "xyes";
     1020                then
     1021                   case "$host_os" in
     1022
     1023                        *solaris*)
     1024                                AC_MSG_WARN([option --enable-static ignored on Solaris])
     1025                                ;;
     1026                       
     1027                        *)
     1028                                AC_DEFINE(SH_COMPILE_STATIC, 1, [Define if compiling static])
     1029                                sh_no_gcc_static=no
     1030                                LDFLAGS="$LDFLAGS -static"
     1031                                ;;
     1032                    esac
    10191033                else
     1034                   AC_DEFINE(SH_COMPILE_STATIC, 1, [Define if compiling static])
    10201035                   sh_no_gcc_static=yes
    10211036                   case "$host_os" in
     
    17441759  fi
    17451760
    1746 dnl  if test ! -z "`echo "$CFLAGS" | grep "\-O2" 2> /dev/null`" ; then
    1747 dnl    CFLAGS=`echo $CFLAGS | sed 's%\-O2%\-O3%' `
    1748 dnl  fi
    1749 
     1761dnl  -W is the older name for -Wextra
     1762
     1763 
    17501764  if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
    1751     CFLAGS="$CFLAGS -Wall -W "
     1765     case "$host_os" in
     1766        *solaris*)
     1767           CFLAGS="$CFLAGS -Wall -W -Wno-missing-braces "
     1768           ;;
     1769        *)
     1770           CFLAGS="$CFLAGS -Wall -W "
     1771           ;;
     1772     esac
    17521773  fi
    17531774
     
    18641885        if test "x${enable_encrypt}" = xno; then
    18651886           myencrypt=no
    1866         elif test "x${enable_encrypt}" = "x1"; then
    1867            myencrypt=1 
    18681887        fi
    18691888        ]
     
    18721891        AC_DEFINE(SH_ENCRYPT)
    18731892        AC_DEFINE(SH_ENCRYPT_2)
    1874 elif test "x${myencrypt}" = "x1"; then
    1875         AC_DEFINE(SH_ENCRYPT)
    18761893fi
    18771894
     
    20682085AC_SUBST(need_user_install)
    20692086
    2070 sh_insmod_cmd=": # no kernel module"
    2071 sh_insmod_pre=": # no kernel module"
    2072 sh_lkm=""
    2073 lkm_inc=""
    2074 khidemap="/boot/System.map"
    2075 sh_syscalltable="0x0"
    2076 AC_ARG_ENABLE(khide,
    2077         [  --enable-khide=SYSTEM_MAP    use kernel module to hide (Linux only)[[/boot/System.map]]],
    2078         [
    2079         if test "x${enable_khide}" != xno; then
    2080 
    2081            kernel_testsupport=`uname -r | sed s,^3.*,LINUX3,`
    2082            if test "x${kernel_testsupport}" = "xLINUX3"; then
    2083               AC_MSG_ERROR([The --enable-khide option is not supported on Linux kernel version 3.x or above.])
    2084            fi
    2085 
    2086            if test "x${enableval}" != "xyes"; then
    2087                 khidemap="${enableval}"
    2088            fi
    2089            sh_syscalltable=`egrep '(D|d|R|r) sys_call_table' ${khidemap} | awk '{print $1}'`
    2090            if test x"$sh_syscalltable" = x; then
    2091                 AC_MSG_ERROR([Option --enable-khide cannot be used since the symbol sys_call_table was not found in ${khidemap}.])
    2092            fi
    2093            sh_syscalltable="0x${sh_syscalltable}"
    2094            install_name_len=`echo ${install_name} | awk '{ print(length()); }'`
    2095            if test "${install_name_len}" -gt 15 ; then
    2096                 AC_MSG_ERROR([If --enable-khide is used, install_name must not exceed a length of 15 chars.])
    2097            fi
    2098            AC_DEFINE(SH_USE_LKM)
    2099            AC_DEFINE_UNQUOTED(SH_MAGIC_HIDE, "${install_name}")
    2100 
    2101            # -- NEW --
    2102            kernel_version=`uname -r | sed s,2.6.*,LINUX26,`
    2103            kernel_numeric=`uname -r | sed 's%-%.%g' | sed 's%_%.%g' | awk -F. '{ print $1*65536+$2*256+$3 }'`
    2104            AC_DEFINE_UNQUOTED(SH_KERNEL_NUMERIC, ${kernel_numeric}, [Kernel number])
    2105 
    2106            if test x"$kernel_version" = xLINUX26
    2107            then
    2108                 AC_MSG_CHECKING([for modlist_lock])
    2109                 sh_modlist_lock=`egrep ['[bd] modlist_lock$'] ${khidemap} | awk '{print $1}'`
    2110                 if test x"$sh_modlist_lock" = x; then
    2111                         AC_MSG_RESULT(no)
    2112                 else
    2113                         sh_modlist_lock="0x${sh_modlist_lock}"
    2114                         AC_MSG_RESULT([${sh_modlist_lock}])
    2115                         AC_DEFINE_UNQUOTED(SH_MODLIST_LOCK, ${sh_modlist_lock}, [The address of the modules list spinlock])
    2116                 fi
    2117 
    2118                 AC_MSG_CHECKING([for module_mutex])                 
    2119                 sh_modlist_mutex=`egrep ['[bd] module_mutex$'] ${khidemap} | awk '{print $1}'`
    2120                 if test x"$sh_modlist_mutex" = x; then
    2121                         AC_MSG_RESULT(no)
    2122                 else
    2123                         sh_modlist_mutex="0x${sh_modlist_mutex}"
    2124                         AC_MSG_RESULT([${sh_modlist_mutex}])
    2125                         AC_DEFINE_UNQUOTED(SH_MODLIST_MUTEX, ${sh_modlist_mutex}, [The address of the modules list mutex])
    2126                 fi
    2127 
    2128                 sh_list_modules=`egrep 'd modules$' ${khidemap} | awk '{print $1}'`
    2129                 if test x"$sh_list_modules" = x; then
    2130                         AC_MSG_ERROR([Option --enable-khide cannot be used, since the symbol modules was not found in ${khidemap}.])
    2131                 fi
    2132                 sh_list_modules="0x${sh_list_modules}"
    2133                 AC_DEFINE_UNQUOTED(SH_LIST_MODULES, ${sh_list_modules}, [The address of the modules list])
    2134 
    2135                 AC_DEFINE(LINUX26, 1, [Define if kernel is 2.6])
    2136                 sh_insmod_cmd="modprobe ${install_name}_hide"
    2137                 sh_lkm="samhain_hide.ko"
    2138            else
    2139                 sh_insmod_cmd="insmod ${install_name}_hide; insmod ${install_name}_erase; rmmod ${install_name}_erase"
    2140                 sh_lkm="samhain_hide.o samhain_erase.o"
    2141            fi
    2142            # -- END NEW --
    2143 
    2144            kvers=`uname -r`
    2145            if test -f /lib/modules/${kvers}/build/include/linux/kernel.h; then
    2146                 lkm_inc="-I/lib/modules/${kvers}/build/include"
    2147            else
    2148                 AC_MSG_WARN([--enable-khide: /lib/modules/${kvers}/build/include/linux not found])
    2149                 AC_MSG_WARN([--enable-khide: You may need to install the kernel-source])
    2150                 AC_MSG_WARN([--enable-khide: headers for the currently-running kernel.])
    2151            fi
    2152 
    2153            AC_MSG_CHECKING([for 2.4 vanilla kernel])
    2154            sh_is_vanilla_kernel=yes
    2155            if test -f /lib/modules/${kvers}/build/include/linux/sched.h; then
    2156                 grep 'next_task,' /lib/modules/${kvers}/build/include/linux/sched.h  >/dev/null 2>&1 || sh_is_vanilla_kernel=no
    2157            fi
    2158            if test x"${sh_is_vanilla_kernel}" = xno; then
    2159                 AC_MSG_RESULT(no)
    2160            else
    2161                 AC_MSG_RESULT(yes)
    2162                 AC_DEFINE(SH_VANILLA_KERNEL)
    2163            fi
    2164 
    2165         fi
    2166         ]
    2167 )
    2168 
    21692087AC_SUBST(install_name)
    21702088AC_SUBST(INSTALL_NAME)
     
    21942112)
    21952113
    2196 
    2197 systemmap="/boot/System.map"
    2198 sh_libkvm=""
    2199 AC_ARG_WITH(kcheck,
    2200         [  --with-kcheck[[=SYSTEM_MAP]] check Linux/FreeBSD/OpenBSD kernel integrity [[/boot/System.map]]],
    2201         [
    2202         if test "x${withval}" != "xno"; then
    2203                 AC_DEFINE(SH_USE_KERN)
    2204 
    2205                 kernel_numeric=`uname -r | sed 's%-%.%g' | sed 's%_%.%g' | awk -F. '{ print $1*65536+$2*256+$3 }'`
    2206                 AC_DEFINE_UNQUOTED(SH_KERNEL_NUMBER, ${kernel_numeric}, [Kernel number])
    2207 
    2208                 kernelversion=`uname -r`
    2209                 AC_DEFINE_UNQUOTED(SH_KERNEL_VERSION, _("${kernelversion}"), [Define the kernel version])
    2210 
    2211                 if test "x${withval}" != "xyes"; then
    2212                         systemmap="${withval}"
    2213                 fi
    2214 
    2215                 if test "x${cross_compiling}" = xyes; then
    2216                         :
    2217                 elif test "x$selectconfig" = "xfreebsd"; then
    2218                         LIBS="$LIBS -lkvm"
    2219                         sh_libkvm="-lkvm"
    2220                 elif test -f "${systemmap}"; then
    2221 
    2222                         test_kmap_open=no
    2223 
    2224                         if test -c /dev/kmem; then
    2225                            AC_MSG_CHECKING([whether /dev/kmem is useable])
    2226                            dd bs=4 count=16 if=/dev/kmem of=/dev/null >/dev/null 2>&1
    2227                            if test $? -eq 0; then
    2228                               test_kmap_open=yes
    2229                            fi
    2230                            AC_MSG_RESULT([${test_kmap_open}])
    2231                         fi
    2232 
    2233                         if test x"${test_kmap_open}" = xno; then
    2234                            # need kernel module
    2235 
    2236                            if test -f /lib/modules/${kernelversion}/build/include/linux/kernel.h; then
    2237                               lkm_inc="-I/lib/modules/${kernelversion}/build/include"
    2238                            else
    2239                                AC_MSG_WARN([--enable-khide: /lib/modules/${kernelversion}/build/include/linux not found])
    2240                                AC_MSG_WARN([--enable-khide: You may need to install the kernel-source])
    2241                                AC_MSG_WARN([--enable-khide: headers for the currently-running kernel.])
    2242                            fi
    2243 
    2244                            AC_MSG_CHECKING([for vmlist_lock])
    2245                            sh_vmlist_lock=`egrep ['[bdBD] vmlist_lock$'] ${systemmap} | awk '{print $1}'`
    2246                            if test x"$sh_vmlist_lock" = x; then
    2247                                AC_MSG_RESULT(no)
    2248                            else
    2249                                sh_vmlist_lock="0x${sh_vmlist_lock}"
    2250                                AC_MSG_RESULT([${sh_vmlist_lock}])
    2251                                AC_DEFINE_UNQUOTED(SH_VMLIST_LOCK, ${sh_vmlist_lock}, [The address of the vmlist spinlock])
    2252                            fi
    2253 
    2254                            AC_MSG_CHECKING([for vmlist])
    2255                            sh_vmlist=`egrep ['[bdBD] vmlist$'] ${systemmap} | awk '{print $1}'`
    2256                            if test x"$sh_vmlist" = x; then
    2257                                AC_MSG_RESULT(no)
    2258                            else
    2259                                sh_vmlist="0x${sh_vmlist}"
    2260                                AC_MSG_RESULT([${sh_vmlist}])
    2261                                AC_DEFINE_UNQUOTED(SH_VMLIST, ${sh_vmlist}, [The address of the vmlist])
    2262                            fi
    2263 
    2264                            sh_lkm="${sh_lkm} samhain_kmem.ko"
    2265                            sh_insmod_pre="modprobe ${install_name}_kmem"
    2266 
    2267                         fi
    2268                 else
    2269                         AC_MSG_ERROR([Option --with-kcheck=systemmap cannot be used, because system map ${systemmap} does not exist.])
    2270                 fi
    2271         fi
    2272         ]
    2273 )
    2274 
    2275 AC_SUBST(lkm_inc)
    2276 AC_SUBST(sh_lkm)
    2277 AC_SUBST(sh_insmod_cmd)
    2278 AC_SUBST(sh_insmod_pre)
    2279 
    2280 AC_SUBST(systemmap)
    2281 AC_SUBST(sh_libkvm)
    22822114
    22832115AC_ARG_ENABLE(base,
     
    24252257)
    24262258
     2259
     2260
    24272261AC_ARG_WITH(keyid,
    24282262        [  --with-keyid=KEYID           specify KeyID (0x...) for GPG/PGP functions [[none]]],
     
    28962730        echo "  Configuration file: ${myconffile}"
    28972731        echo "        Manual pages: ${mandir}"
    2898         echo "                Data: ${mydataroot}"
     2732        echo "      Data directory: ${mydataroot}"
     2733        echo "       Database file: ${mydatafile}"
    28992734        echo "            PID file: ${mylockfile}"
    29002735        echo "            Log file: ${mylogfile}"
Note: See TracChangeset for help on using the changeset viewer.