7 if [ "X${ARGV}" = "X" ]; then
9 echo "No argument. Available options are:"
19 # Increasing maximum number of agents
20 if [ "X$1" = "Xsetmaxagents" ]; then
21 echo -n "Specify maximum number of agents: ";
23 echo "HEXTRA=-DMAX_AGENTS=$AGMAX" >> ./Config.OS
24 echo "Maximum number of agents set to $AGMAX."
29 ZLIBV="external/zlib-1.2.3/"
35 VERSION=`cat ./VERSION`
38 # Libraries. They need to be compiled before.
39 LIBS="os_xml os_regex os_net os_crypto"
41 SOURCES="shared config"
43 BINARIES="os_maild os_dbd os_csyslogd agentlessd os_execd analysisd logcollector remoted client-agent addagent util rootcheck syscheckd monitord"
44 ROOTCHECKBIN="rootcheck"
45 DIRECTORIES="" # Directories to make
49 if [ "X$OS" = "XSunOS" ]; then
50 PATH=$PATH:/usr/ccs/bin:/usr/xpg4/bin:/opt/csw/gcc3/bin:/opt/csw/bin:/usr/sfw/bin
56 if [ "X${ARGV}" = "Xall" -o "X${ARGV}" = "Xrootcheck" -o "X${ARGV}" = "Xlibs" ]; then
57 ls ./Config.OS >/dev/null 2>&1
62 # Checking for OpenSSLconf.h
63 ls /usr/include/openssl/opensslconf.h > /dev/null 2>&1
65 echo "DEXTRA=-DUSE_OPENSSL" >> Config.OS
68 # Checking for inotify
69 if [ "X$OS" = "XLinux" ]; then
70 ls /usr/include/sys/inotify.h > /dev/null 2>&1
72 echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
77 if [ "X$OS" = "XAIX" ]; then
78 echo "EEXTRA=-DAIX -DHIGHFIRST" >> Config.OS
79 PATH=$PATH:/usr/vac/bin
82 elif [ "X$OS" = "XSunOS" ]; then
83 # Set CPU optimization for Sun UltraSparc
84 # by Eric Straavaldsen
85 # Disabled by default. To enable it, just uncomment the following
86 # lines and comment the EEXTRA below.
88 #if [ $PROC = sparcv9 ]; then
89 # echo "EEXTRA=-lsocket -lnsl -lresolv -DSOLARIS -DHIGHFIRST -O3 -mcpu=ultrasparc">>Config.OS
91 echo "EEXTRA=-DSOLARIS -DHIGHFIRST">>Config.OS
92 echo "IEXTRA=-lsocket -lnsl -lresolv" >> Config.OS
94 elif [ "X$OS" = "XHP-UX" ]; then
95 echo "EEXTRA=-DHPUX -D_XOPEN_SOURCE_EXTENDED -DHIGHFIRST -D_REENTRANT" >> Config.OS
97 elif [ "X$OS" = "XDarwin" ]; then
98 echo "EEXTRA=-DDarwin -DHIGHFIRST" >> Config.OS
102 echo 'int main() { short one = 1; char *cp = (char*)&one; if ( *cp == 0 ) return(1); else return(0); }' > isbigendian.c
103 gcc -o isbigendian isbigendian.c
106 echo "INFO: Big endian set."
107 echo "GEXTRA=-DHIGHFIRST" >> Config.OS
109 echo "INFO: Little endian set."
114 if [ "X$OS" = "XFreeBSD" -o "X$OS" = "XDragonFly" ]; then
115 echo "TEXTRA=-pthread" >> Config.OS
117 echo "TEXTRA=-lpthread" >> Config.OS
123 if [ "X${ARGV}" = "Xclean" ]; then
124 echo "" > ./Config.OS
128 # Getting values for each action
129 if [ "X${ARGV}" = "Xall" ]; then
130 DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}"
132 elif [ "X${ARGV}" = "Xlibs" ]; then
133 DIRECTORIES="${LIBS} ${SOURCES}"
135 elif [ "X${ARGV}" = "Xrootcheck" ]; then
136 DIRECTORIES="os_xml os_regex os_net ${SOURCES} ${ROOTCHECKBIN}"
137 elif [ "X${ARGV}" = "Xbuild" ]; then
138 DIRECTORIES="${BINARIES}" # Only binaries need to be built
140 DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}"
144 if [ "X${DOZLIB}" = "Xx" ]; then
147 echo " *** Making zlib (by Jean-loup Gailly and Mark Adler) *** "
148 cd ${ZLIBV}; make; make ossec;
154 if [ "X${ARGV}" = "Xclean" ]; then
156 cd ${ZLIBV}; make clean;
161 # Checking if the bin directory is present
162 if [ ! "X${ARGV}" = "Xrootcheck" ]; then
163 ls ../bin >/dev/null 2>&1
168 echo "Compiling Rootcheck..."
174 # Making each directory
175 for i in ${DIRECTORIES}; do
179 echo "Error acessing directory $i"
182 if [ "X${ARGV}" = "Xclean" ]; then
185 elif [ "X${ARGV}" = "Xbuild" ]; then
189 echo "Error Making the binaries"
192 elif [ "X${ARGV}" = "Xrootcheck" ]; then
194 if [ $i = "rootcheck" ]; then
201 echo "Error Making $i"
207 echo " *** Making $i *** "
212 echo "Error Making $i"
220 if [ "X${ARGV}" = "Xrootcheck" ]; then
221 cp -pr ./rootcheck/ossec-rootcheck ../
222 cp -pr ./rootcheck/db ../
223 cp -pr ./rootcheck/rootcheck.conf ../
225 echo "Rootcheck compilation completed."
226 echo "Just run './ossec-rootcheck' to execute it."