dodan override za lintian
[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 test"
13     echo "  $0 build"
14     echo "  $0 libs"
15     echo "  $0 rootcheck"
16     echo ""
17     exit 1;
18 fi
19
20 # Increasing maximum number of agents
21 if [ "X$1" = "Xsetmaxagents" ]; then
22     echo -n "Specify maximum number of agents: "; 
23     read AGMAX
24     echo "HEXTRA=-DMAX_AGENTS=$AGMAX" >> ./Config.OS
25     echo "Maximum number of agents set to $AGMAX."
26     exit 0;
27 fi
28
29
30 CJSONV="external/cJSON/"
31 LUAV="external/lua/"
32 LUA_PLAT="posix"
33
34 # CPU information
35 #CPU=`uname -p`
36 MACH=`uname -m`
37 OS=`uname`
38 VERSION=`cat ./VERSION`
39
40 MSG=""
41 # Libraries. They need to be compiled before.
42 LIBS="os_xml os_regex os_net os_crypto"
43 # Shares sources
44 SOURCES="shared config"
45 # Binaries
46 BINARIES="os_maild os_dbd os_csyslogd agentlessd os_execd analysisd logcollector remoted client-agent addagent util rootcheck syscheckd monitord os_auth"
47 ROOTCHECKBIN="rootcheck"
48 DIRECTORIES=""      # Directories to make
49
50
51 # Setting SunOS path
52 if [ "X$OS" = "XSunOS" ]; then
53     PATH=$PATH:/usr/ccs/bin:/usr/xpg4/bin:/opt/csw/gcc3/bin:/opt/csw/bin:/usr/sfw/bin
54     export  PATH
55 fi
56             
57
58 # Cleaning Config.OS
59 if [ "X${ARGV}" = "Xall" -o "X${ARGV}" = "Xtest" -o "X${ARGV}" = "Xrootcheck" -o "X${ARGV}" = "Xlibs" ]; then
60     ls ./Config.OS >/dev/null 2>&1
61     if [ ! $? = 0 ]; then
62         echo "" > Config.OS
63     fi
64
65     # Checking for OpenSSLconf.h
66     if [ -e /usr/include/openssl/opensslconf.h ]; then
67         echo "DEXTRA=-DUSE_OPENSSL" >> Config.OS
68         echo "OPENSSLCMD=-lssl -lcrypto" >> Config.OS
69     elif [ -e /usr/include/openssl/conf.h ]; then
70         echo "DEXTRA=-DUSE_OPENSSL" >> Config.OS
71         echo "OPENSSLCMD=-lssl -lcrypto" >> Config.OS
72     fi    
73
74     # Checking for inotify
75     if [ "X$OS" = "XLinux" ]; then
76         if [ -e /usr/include/sys/inotify.h ]; then
77             echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
78         elif [ -e /usr/include/linux/inotify.h ]; then
79             echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
80         fi
81         LUA_PLAT="posix"
82     fi    
83
84     # Checking for libmagic
85     if [ "X$SYSCHECK" = "Xyes" ]; then
86         if [ -e /usr/include/linux/magic.h ]; then
87             echo "MEXTRA=-DUSE_MAGIC" >> Config.OS
88             echo "MAGICCMD=-lmagic" >> Config.OS
89         elif [ -e /usr/include/magic.h ]; then
90             echo "MEXTRA=-DUSE_MAGIC" >> Config.OS
91             echo "MAGICCMD=-lmagic" >> Config.OS
92         fi
93     fi
94
95     if [ "X$OS" = "XAIX" ]; then
96         echo "EEXTRA=-DAIX -DHIGHFIRST" >> Config.OS
97         PATH=$PATH:/usr/vac/bin
98         export  PATH
99
100     elif [ "X$OS" = "XSunOS" ]; then
101         # Set CPU optimization for Sun UltraSparc
102         # by Eric Straavaldsen
103         # Disabled by default. To enable it, just uncomment the following
104         # lines and comment the EEXTRA below.
105         #PROC=`isainfo -n`
106         #if [ $PROC = sparcv9 ]; then
107         #    echo "EEXTRA=-lsocket -lnsl -lresolv -DSOLARIS -DHIGHFIRST -O3 -mcpu=ultrasparc">>Config.OS
108         #fi
109         echo "EEXTRA=-DSOLARIS -DHIGHFIRST">>Config.OS
110         echo "IEXTRA=-lsocket -lnsl -lresolv" >> Config.OS
111         LUA_PLAT="solaris"
112
113     elif [ "X$OS" = "XHP-UX" ]; then
114         echo "EEXTRA=-DHPUX -D_XOPEN_SOURCE_EXTENDED -DHIGHFIRST -D_REENTRANT" >> Config.OS
115
116     elif [ "X$OS" = "XDarwin" ]; then
117         echo "EEXTRA=-DDarwin -DHIGHFIRST" >> Config.OS
118         LUA_PLAT="macosx"
119
120     elif [ "X$OS" = "XFreeBSD" ]; then
121         echo "EEXTRA=-DFreeBSD" >> Config.OS
122         LUA_PLAT="freebsd"
123     
124     else
125         
126         echo 'int main() { short one = 1; char *cp = (char*)&one; if ( *cp == 0 ) return(1); else return(0); }' > isbigendian.c
127         cc -o isbigendian isbigendian.c
128         ./isbigendian
129         if [ $? = 1 ]; then
130             echo "INFO: Big endian set."
131             echo "GEXTRA=-DHIGHFIRST" >> Config.OS
132         else
133             echo "INFO: Little endian set."
134         fi
135     fi
136         
137
138     if [ "X$OS" = "XFreeBSD" -o "X$OS" = "XDragonFly" ]; then
139         echo "TEXTRA=-pthread" >> Config.OS
140     else
141         echo "TEXTRA=-lpthread" >> Config.OS
142     fi    
143 fi
144
145
146 # Cleaning
147 if [ "X${ARGV}" = "Xclean" ]; then
148     echo "" > ./Config.OS
149 fi
150
151 # Getting values for each action
152 if [ "X${ARGV}" = "Xall" ]; then
153     DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}" 
154     DOZLIB="x"
155     DOCJSON="x"
156     DO_LUA="x"
157 elif [ "X${ARGV}" = "Xtest" ]; then
158     DIRECTORIES="${LIBS} ${SOURCES}"
159     DOZLIB="x"
160     DOCJSON="x"
161     DO_LUA="x"
162 elif [ "X${ARGV}" = "Xlibs" ]; then
163     DIRECTORIES="${LIBS} ${SOURCES}"
164     DOZLIB="x"
165     DOCJSON="x"
166     DO_LUA="x"
167 elif [ "X${ARGV}" = "Xrootcheck" ]; then
168     DIRECTORIES="os_xml os_regex os_net ${SOURCES} ${ROOTCHECKBIN}"    
169 elif [ "X${ARGV}" = "Xbuild" ]; then
170     DIRECTORIES="${BINARIES}"   # Only binaries need to be built
171 else
172     DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}"
173 fi
174
175
176 if [ "X${DOZLIB}" = "Xx" ]; then
177     # Build zlib here
178     echo ""
179     echo " *** Making zlib (by Jean-loup Gailly and Mark Adler)  *** "
180     cd external/; make zlib;
181     if [ $? != 0 ]; then
182         echo ""
183         echo "Error Making zlib"
184         exit 1;
185     fi
186     cd ../
187     echo ""
188 fi    
189
190 if [ "X${DOCJSON}" = "Xx" ]; then
191     # Build cJSON here
192     echo ""
193     echo " *** Making cJSON (by Dave Gamble)  *** "
194     cd ${CJSONV}; make ossec;
195     if [ $? != 0 ]; then
196         echo ""
197         echo "Error Making cJSON"
198         exit 1;
199     fi
200     cd ../../
201     echo ""
202 fi    
203
204 if [ "X${DO_LUA}" = "Xx" ]; then
205     # Build cJSON here
206     echo ""
207     echo " *** Making Lua 5.2 (by team at PUC-Rio in Brazi)  *** "
208     echo "     Copyright © 1994–2014 Lua.org, PUC-Rio. "
209     cd ${LUAV}; make ${LUA_PLAT};
210     if [ $? != 0 ]; then
211         echo ""
212         echo "Error Making cJSON"
213         exit 1;
214     fi
215     cd ../../
216     echo ""
217 fi    
218
219 if [ "X${ARGV}" = "Xclean" ]; then
220     # Cleaning zlib
221     cd external/; make clean;
222     cd ../
223     cd ${CJSONV}; make clean;
224     cd ../../
225     cd ${LUAV}; make clean;
226     cd ../../
227     cd tests/; make clean;
228     cd ../
229 fi    
230
231 # Make and run tests if intended
232 if [ "X${ARGV}" = "Xtest" ]; then
233     cd tests/
234     make
235     exit $?
236 fi
237
238 # Checking if the bin directory is present
239 if [ ! "X${ARGV}" = "Xrootcheck" ]; then
240   ls ../bin >/dev/null 2>&1
241   if [ $? != 0 ]; then
242       mkdir -p ../bin
243   fi
244 else
245   echo "Compiling Rootcheck..."
246   echo ""      
247 fi  
248
249
250                     
251 # Making each directory
252 for i in ${DIRECTORIES}; do
253     cd $i
254     if [ $? != 0 ]; then
255         echo ""
256         echo "Error acessing directory $i"
257         exit 1;
258     fi    
259     if [ "X${ARGV}" = "Xclean" ]; then
260         echo "Entering $i"
261         make clean
262     elif [ "X${ARGV}" = "Xbuild" ]; then
263         make build
264         if [ $? != 0 ]; then
265             echo ""
266             echo "Error Making the binaries"
267             exit 1;
268         fi        
269     elif [ "X${ARGV}" = "Xrootcheck" ]; then    
270         echo "Making $i"
271         if [ $i = "rootcheck" ]; then
272             make binary
273         else
274             make
275         fi        
276         if [ $? != 0 ]; then
277             echo ""
278             echo "Error Making $i"
279             exit 1;
280         fi    
281     else
282         echo ""
283         echo ""
284         echo " *** Making $i *** "
285         echo ""
286         make
287         if [ $? != 0 ]; then
288             echo ""
289             echo "Error Making $i"
290             exit 1;
291         fi
292     fi    
293     cd ../
294 done
295
296 if [ "X${ARGV}" = "Xrootcheck" ]; then
297     cp -pr ./rootcheck/ossec-rootcheck ../
298     cp -pr ./rootcheck/db ../
299     cp -pr ./rootcheck/rootcheck.conf ../
300     echo ""
301     echo "Rootcheck compilation completed."
302     echo "Just run './ossec-rootcheck' to execute it."
303     echo ""
304 fi    
305
306
307 exit 0;
308 # EOF #