Imported Upstream version 2.7
[ossec-hids.git] / src / Makeall
1 #!/bin/sh
2
3 # Make clean?
4 ARGV=$1
5
6 # Checking argument
7 if [ "X${ARGV}" = "X" ]; then
8     echo ""
9     echo "No argument. Available options are:"
10     echo "  $0 clean"
11     echo "  $0 all"
12     echo "  $0 build"
13     echo "  $0 libs"
14     echo "  $0 rootcheck"
15     echo ""
16     exit 1;
17 fi
18
19 # Increasing maximum number of agents
20 if [ "X$1" = "Xsetmaxagents" ]; then
21     echo -n "Specify maximum number of agents: "; 
22     read AGMAX
23     echo "HEXTRA=-DMAX_AGENTS=$AGMAX" >> ./Config.OS
24     echo "Maximum number of agents set to $AGMAX."
25     exit 0;
26 fi
27
28
29 ZLIBV="external/zlib-1.2.3/"
30
31 # CPU information
32 #CPU=`uname -p`
33 MACH=`uname -m`
34 OS=`uname`
35 VERSION=`cat ./VERSION`
36
37 MSG=""
38 # Libraries. They need to be compiled before.
39 LIBS="os_xml os_regex os_net os_crypto"
40 # Shares sources
41 SOURCES="shared config"
42 # Binaries
43 BINARIES="os_maild os_dbd os_csyslogd agentlessd os_execd analysisd logcollector remoted client-agent addagent util rootcheck syscheckd monitord os_auth"
44 ROOTCHECKBIN="rootcheck"
45 DIRECTORIES=""      # Directories to make
46
47
48 # Setting SunOS path
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
51     export  PATH
52 fi
53             
54
55 # Cleaning Config.OS
56 if [ "X${ARGV}" = "Xall" -o "X${ARGV}" = "Xrootcheck" -o "X${ARGV}" = "Xlibs" ]; then
57     ls ./Config.OS >/dev/null 2>&1
58     if [ ! $? = 0 ]; then
59         echo "" > Config.OS
60     fi
61
62     # Checking for OpenSSLconf.h
63     ls /usr/include/openssl/opensslconf.h > /dev/null 2>&1
64     if [ $? = 0 ]; then
65         echo "DEXTRA=-DUSE_OPENSSL" >> Config.OS
66         echo "OPENSSLCMD=-lssl -lcrypto" >> Config.OS
67     fi    
68
69     # Checking for inotify
70     if [ "X$OS" = "XLinux" ]; then
71         #ls /usr/include/sys/inotify.h > /dev/null 2>&1
72         #if [ $? = 0 ]; then
73         #    echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
74         #fi    
75
76         if [ -e /usr/include/sys/inotify.h ]; then
77             echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
78         elif [ -e /usr/include/x86_64-linux-gnu/sys/inotify.h ]; then
79             echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
80         fi
81
82     fi    
83
84     if [ "X$OS" = "XAIX" ]; then
85         echo "EEXTRA=-DAIX -DHIGHFIRST" >> Config.OS
86         PATH=$PATH:/usr/vac/bin
87         export  PATH
88
89     elif [ "X$OS" = "XSunOS" ]; then
90         # Set CPU optimization for Sun UltraSparc
91         # by Eric Straavaldsen
92         # Disabled by default. To enable it, just uncomment the following
93         # lines and comment the EEXTRA below.
94         #PROC=`isainfo -n`
95         #if [ $PROC = sparcv9 ]; then
96         #    echo "EEXTRA=-lsocket -lnsl -lresolv -DSOLARIS -DHIGHFIRST -O3 -mcpu=ultrasparc">>Config.OS
97         #fi
98         echo "EEXTRA=-DSOLARIS -DHIGHFIRST">>Config.OS
99         echo "IEXTRA=-lsocket -lnsl -lresolv" >> Config.OS
100
101     elif [ "X$OS" = "XHP-UX" ]; then
102         echo "EEXTRA=-DHPUX -D_XOPEN_SOURCE_EXTENDED -DHIGHFIRST -D_REENTRANT" >> Config.OS
103
104     elif [ "X$OS" = "XDarwin" ]; then
105         echo "EEXTRA=-DDarwin -DHIGHFIRST" >> Config.OS
106     
107     else
108         
109         echo 'int main() { short one = 1; char *cp = (char*)&one; if ( *cp == 0 ) return(1); else return(0); }' > isbigendian.c
110         gcc -o isbigendian isbigendian.c
111         ./isbigendian
112         if [ $? = 1 ]; then
113             echo "INFO: Big endian set."
114             echo "GEXTRA=-DHIGHFIRST" >> Config.OS
115         else
116             echo "INFO: Little endian set."
117         fi
118     fi
119         
120
121     if [ "X$OS" = "XFreeBSD" -o "X$OS" = "XDragonFly" ]; then
122         echo "TEXTRA=-pthread" >> Config.OS
123     else
124         echo "TEXTRA=-lpthread" >> Config.OS
125     fi    
126 fi
127
128
129 # Cleaning
130 if [ "X${ARGV}" = "Xclean" ]; then
131     echo "" > ./Config.OS
132 fi
133    
134     
135 # Getting values for each action
136 if [ "X${ARGV}" = "Xall" ]; then
137     DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}" 
138     DOZLIB="x"
139 elif [ "X${ARGV}" = "Xlibs" ]; then
140     DIRECTORIES="${LIBS} ${SOURCES}"
141     DOZLIB="x"
142 elif [ "X${ARGV}" = "Xrootcheck" ]; then
143     DIRECTORIES="os_xml os_regex os_net ${SOURCES} ${ROOTCHECKBIN}"    
144 elif [ "X${ARGV}" = "Xbuild" ]; then
145     DIRECTORIES="${BINARIES}"   # Only binaries need to be built
146 else
147     DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}"
148 fi
149
150
151 if [ "X${DOZLIB}" = "Xx" ]; then
152     # Build zlib here
153     echo ""
154     echo " *** Making zlib (by Jean-loup Gailly and Mark Adler)  *** "
155     cd ${ZLIBV}; make; make ossec;
156     cd ../../
157     echo ""
158 fi    
159
160
161 if [ "X${ARGV}" = "Xclean" ]; then
162     # Cleaning zlib
163     cd ${ZLIBV}; make clean;
164     cd ../../
165 fi    
166
167
168 # Checking if the bin directory is present
169 if [ ! "X${ARGV}" = "Xrootcheck" ]; then
170   ls ../bin >/dev/null 2>&1
171   if [ $? != 0 ]; then
172       mkdir -p ../bin
173   fi
174 else
175   echo "Compiling Rootcheck..."
176   echo ""      
177 fi  
178
179
180                     
181 # Making each directory
182 for i in ${DIRECTORIES}; do
183     cd $i
184     if [ $? != 0 ]; then
185         echo ""
186         echo "Error acessing directory $i"
187         exit 1;
188     fi    
189     if [ "X${ARGV}" = "Xclean" ]; then
190         echo "Entering $i"
191         make clean
192     elif [ "X${ARGV}" = "Xbuild" ]; then
193         make build
194         if [ $? != 0 ]; then
195             echo ""
196             echo "Error Making the binaries"
197             exit 1;
198         fi        
199     elif [ "X${ARGV}" = "Xrootcheck" ]; then    
200         echo "Making $i"
201         if [ $i = "rootcheck" ]; then
202             make binary
203         else
204             make
205         fi        
206         if [ $? != 0 ]; then
207             echo ""
208             echo "Error Making $i"
209             exit 1;
210         fi    
211     else
212         echo ""
213         echo ""
214         echo " *** Making $i *** "
215         echo ""
216         make
217         if [ $? != 0 ]; then
218             echo ""
219             echo "Error Making $i"
220             exit 1;
221         fi
222     fi    
223     cd ../
224 done
225
226
227 if [ "X${ARGV}" = "Xrootcheck" ]; then
228     cp -pr ./rootcheck/ossec-rootcheck ../
229     cp -pr ./rootcheck/db ../
230     cp -pr ./rootcheck/rootcheck.conf ../
231     echo ""
232     echo "Rootcheck compilation completed."
233     echo "Just run './ossec-rootcheck' to execute it."
234     echo ""
235 fi    
236
237
238 exit 0;
239 # EOF #