f129cb4bcd6319a4c95efd56987250e73d3e3714
[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"
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     fi    
67
68     # Checking for inotify
69     if [ "X$OS" = "XLinux" ]; then
70         ls /usr/include/sys/inotify.h > /dev/null 2>&1
71         if [ $? = 0 ]; then
72             echo "EEXTRA=-DUSEINOTIFY" >> Config.OS
73         fi    
74
75     fi    
76
77     if [ "X$OS" = "XAIX" ]; then
78         echo "EEXTRA=-DAIX -DHIGHFIRST" >> Config.OS
79         PATH=$PATH:/usr/vac/bin
80         export  PATH
81
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.
87         #PROC=`isainfo -n`
88         #if [ $PROC = sparcv9 ]; then
89         #    echo "EEXTRA=-lsocket -lnsl -lresolv -DSOLARIS -DHIGHFIRST -O3 -mcpu=ultrasparc">>Config.OS
90         #fi
91         echo "EEXTRA=-DSOLARIS -DHIGHFIRST">>Config.OS
92         echo "IEXTRA=-lsocket -lnsl -lresolv" >> Config.OS
93
94     elif [ "X$OS" = "XHP-UX" ]; then
95         echo "EEXTRA=-DHPUX -D_XOPEN_SOURCE_EXTENDED -DHIGHFIRST -D_REENTRANT" >> Config.OS
96
97     elif [ "X$OS" = "XDarwin" ]; then
98         echo "EEXTRA=-DDarwin -DHIGHFIRST" >> Config.OS
99     
100     else
101         
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
104         ./isbigendian
105         if [ $? = 1 ]; then
106             echo "INFO: Big endian set."
107             echo "GEXTRA=-DHIGHFIRST" >> Config.OS
108         else
109             echo "INFO: Little endian set."
110         fi
111     fi
112         
113
114     if [ "X$OS" = "XFreeBSD" -o "X$OS" = "XDragonFly" ]; then
115         echo "TEXTRA=-pthread" >> Config.OS
116     else
117         echo "TEXTRA=-lpthread" >> Config.OS
118     fi    
119 fi
120
121
122 # Cleaning
123 if [ "X${ARGV}" = "Xclean" ]; then
124     echo "" > ./Config.OS
125 fi
126    
127     
128 # Getting values for each action
129 if [ "X${ARGV}" = "Xall" ]; then
130     DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}" 
131     DOZLIB="x"
132 elif [ "X${ARGV}" = "Xlibs" ]; then
133     DIRECTORIES="${LIBS} ${SOURCES}"
134     DOZLIB="x"
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
139 else
140     DIRECTORIES="${LIBS} ${SOURCES} ${BINARIES}"
141 fi
142
143
144 if [ "X${DOZLIB}" = "Xx" ]; then
145     # Build zlib here
146     echo ""
147     echo " *** Making zlib (by Jean-loup Gailly and Mark Adler)  *** "
148     cd ${ZLIBV}; make; make ossec;
149     cd ../../
150     echo ""
151 fi    
152
153
154 if [ "X${ARGV}" = "Xclean" ]; then
155     # Cleaning zlib
156     cd ${ZLIBV}; make clean;
157     cd ../../
158 fi    
159
160
161 # Checking if the bin directory is present
162 if [ ! "X${ARGV}" = "Xrootcheck" ]; then
163   ls ../bin >/dev/null 2>&1
164   if [ $? != 0 ]; then
165       mkdir -p ../bin
166   fi
167 else
168   echo "Compiling Rootcheck..."
169   echo ""      
170 fi  
171
172
173                     
174 # Making each directory
175 for i in ${DIRECTORIES}; do
176     cd $i
177     if [ $? != 0 ]; then
178         echo ""
179         echo "Error acessing directory $i"
180         exit 1;
181     fi    
182     if [ "X${ARGV}" = "Xclean" ]; then
183         echo "Entering $i"
184         make clean
185     elif [ "X${ARGV}" = "Xbuild" ]; then
186         make build
187         if [ $? != 0 ]; then
188             echo ""
189             echo "Error Making the binaries"
190             exit 1;
191         fi        
192     elif [ "X${ARGV}" = "Xrootcheck" ]; then    
193         echo "Making $i"
194         if [ $i = "rootcheck" ]; then
195             make binary
196         else
197             make
198         fi        
199         if [ $? != 0 ]; then
200             echo ""
201             echo "Error Making $i"
202             exit 1;
203         fi    
204     else
205         echo ""
206         echo ""
207         echo " *** Making $i *** "
208         echo ""
209         make
210         if [ $? != 0 ]; then
211             echo ""
212             echo "Error Making $i"
213             exit 1;
214         fi
215     fi    
216     cd ../
217 done
218
219
220 if [ "X${ARGV}" = "Xrootcheck" ]; then
221     cp -pr ./rootcheck/ossec-rootcheck ../
222     cp -pr ./rootcheck/db ../
223     cp -pr ./rootcheck/rootcheck.conf ../
224     echo ""
225     echo "Rootcheck compilation completed."
226     echo "Just run './ossec-rootcheck' to execute it."
227     echo ""
228 fi    
229
230
231 exit 0;
232 # EOF #