X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;ds=sidebyside;f=src%2FMakefile;fp=src%2FMakefile;h=b684b82e24c01fd885820bb7195261a67a2b7a78;hb=3f728675941dc69d4e544d3a880a56240a6e394a;hp=7dfc8e00334dace91f3951034e5a5eefd32bd0a3;hpb=927951d1c1ad45ba9e7325f07d996154a91c911b;p=ossec-hids.git diff --git a/src/Makefile b/src/Makefile old mode 100755 new mode 100644 index 7dfc8e0..b684b82 --- a/src/Makefile +++ b/src/Makefile @@ -1,98 +1,1426 @@ -# Makefile -# Daniel B. Cid || -# http://www.ossec.net/hids/ - -none: - @echo "Nothing selected ..." - @echo "\"make all\" to compile everything." - @echo "\"make server\" to build the server." - @echo "\"make local\" to build the local." - @echo "\"make agent\" to build the agent." - @echo "\"make libs\" to build the libraries only." - @echo "\"make clean\" to clean anything built." - @echo "\"make setagent\" to set agent install." - @echo "\"make setlocal\" to set local install." - @echo "\"make setclang\" to use clang for building ossec." - @echo "\"make unsetclang\" to use gcc for building ossec." - @echo "\"make setprelude\" to enable prelude output." - @echo "\"make setdb\" to enable database support." - @echo "\"make unsetdb\" to disable database support." - @echo "\"make setoneway\" to enable one-way connection to the manager." - @echo "\"make setgeoip\" to enable source IP geolocalization." - -clean: - @/bin/sh ./Makeall clean - rm -f ../bin/* - rmdir ../bin/ - rm -f isbigendian - rm -rf win-pkg/ - rm -f Config.OS - rm -f win32/LICENSE.txt - rm -f win32/help_win.txt - rm -f win32/internal_options-win.conf - rm -f win32/ossec-win.conf - rm -f win32/restart-ossec.cmd - rm -f win32/route-null.cmd - -all: - @/bin/sh ./Makeall all - -test: - @/bin/sh ./Makeall test - -build: - @/bin/sh ./Makeall build - -libs: - @/bin/sh ./Makeall libs - -server: - @/bin/sh ./InstallServer.sh - -local: - @/bin/sh ./InstallServer.sh local - -agent: - @/bin/sh ./InstallAgent.sh - -windows_agent: - ( cd win32 && /bin/sh ./gen_win.sh ) - ( cd win-pkg && /bin/sh ./make.sh ) - -setagent: - @echo "CEXTRA=-DCLIENT" >> ./Config.OS - -setclang: - @mv Config.Make Config.Make.backup - @sed -e "s/^CC?=.*/CC=clang/g" Config.Make.backup > Config.Make - @rm Config.Make.backup - -unsetclang: - @mv Config.Make Config.Make.backup - @sed -e "s/^CC=clang/CC?=cc/g" Config.Make.backup > Config.Make - @rm Config.Make.backup - -setprelude: - @echo "CPRELUDE=-DPRELUDE -lprelude `libprelude-config --pthread-cflags` `libprelude-config --libs`" >> ./Config.OS - -setgeoip: - @echo "CGEOIP=-DGEOIP" >> ./Config.OS - @echo "CGEOIPLIB=-I/usr/local/include -L/usr/local/lib -lGeoIP" >> ./Config.OS - -setdb: - @cd ./os_dbd; echo "CDB=`./dbmake.sh`" >> ../Config.OS; -setmaxagents: - @/bin/sh ./Makeall setmaxagents -unsetdb: - @echo "CDB=" >> ./Config.OS; -setlocal: - @echo "CEXTRA=-DLOCAL" >> ./Config.OS - -setfullsubject: - @echo "FEXTRA=-DCLEANFULL" >> ./Config.OS - -setoneway: - @echo "FEXTRA=-DONEWAY" >> ./Config.OS - -setzeromq: - @echo "CZEROMQ_OUTPUT=-DZEROMQ_OUTPUT -lzmq -lczmq" >> ./Config.OS + +uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') + +EXTERNAL_JSON=external/cJSON/ +EXTERNAL_LUA=external/lua-5.2.3/ +EXTERNAL_ZLIB=external/zlib-1.2.11/ +EXTERNAL_PCRE2=external/pcre2-10.32/ +ZLIB_SYSTEM?=yes +PCRE2_SYSTEM?=no +LUA_PLAT=posix +LUA_ENABLE?=no +MAXAGENTS?=2048 +REUSE_ID?=no +# XXX Becareful NO EXTRA Spaces here +PREFIX?=/var/ossec +PG_CONFIG?=pg_config +MY_CONFIG?=mysql_config +PRELUDE_CONFIG?=libprelude-config +OSSEC_GROUP?=ossec +OSSEC_USER?=ossec +OSSEC_USER_MAIL?=ossecm +OSSEC_USER_REM?=ossecr + +INSTALL_CMD?=install -m $(1) -o $(2) -g $(3) +INSTALL_LOCALTIME?=yes +INSTALL_RESOLVCONF?=yes + +USE_PRELUDE?=no +USE_ZEROMQ?=no +USE_GEOIP?=no +USE_INOTIFY=no +USE_PCRE2_JIT=yes + +ifneq (${TARGET},winagent) + USE_OPENSSL?=auto +else + USE_OPENSSL?=no +endif + +ONEWAY?=no +CLEANFULL?=no + +export MYLDFLAGS= "${LDFLAGS}" +export MYCFLAGS= "${CFLAGS}" + +DEFINES=-DMAX_AGENTS=${MAXAGENTS} -DOSSECHIDS +DEFINES+=-DDEFAULTDIR=\"${PREFIX}\" +DEFINES+=-DUSER=\"${OSSEC_USER}\" +DEFINES+=-DREMUSER=\"${OSSEC_USER_REM}\" +DEFINES+=-DGROUPGLOBAL=\"${OSSEC_GROUP}\" +DEFINES+=-DMAILUSER=\"${OSSEC_USER_MAIL}\" +DEFINES+=-D${uname_S} + +# Uncomment the DEFINES statement below if you are +# running Linux and want to use AF_UNSPEC instead of +# AF_INET6 to fully support IPv4 addresses. +#DEFINES+=-DNOV4MAP + +ifneq (,$(filter ${REUSE_ID},yes y Y 1)) + DEFINES+=-DREUSE_ID +endif + +OSSEC_LDFLAGS=${LDFLAGS} -lm + +ifneq (${TARGET},winagent) +ifeq (${uname_S},Linux) + DEFINES+=-DINOTIFY_ENABLED +# DEFINES+=-DUSE_MAGIC + OSSEC_LDFLAGS+=-lpthread +# OSSEC_LDFLAGS+=-lmagic +else +ifeq (${uname_S},AIX) + DEFINES+=-DAIX + DEFINES+=-DHIGHFIRST + PATH:=${PATH}:/usr/vac/bin +else +ifeq (${uname_S},SunOS) + DEFINES+=-DSOLARIS + DEFINES+=-DHIGHFIRST + OSSEC_LDFLAGS+=-lsocket -lnsl -lresolv + LUA_PLAT=solaris + PATH:=${PATH}:/usr/ccs/bin:/usr/xpg4/bin:/opt/csw/gcc3/bin:/opt/csw/bin:/usr/sfw/bin + +else +ifeq (${uname_S},Darwin) + DEFINES+=-DDarwin + DEFINES+=-DHIGHFIRST + LUA_PLAT=macosx + +else +ifeq (${uname_S},FreeBSD) + DEFINES+=-DFreeBSD + OSSEC_LDFLAGS+=-pthread + LUA_PLAT=freebsd + CFLAGS+=-I/usr/local/include + OSSEC_LDFLAGS+=-L/usr/local/lib +else +ifeq (${uname_S},NetBSD) + DEFINES+=-DNetBSD + OSSEC_LDFLAGS+=-pthread + LUA_PLAT=posix + CFLAGS+=-I/usr/local/include + OSSEC_LDFLAGS+=-L/usr/local/lib +else +ifeq (${uname_S},OpenBSD) +# DEFINES+=-DOpenBSD + DEFINES+=-pthread + LUA_PLAT=posix + CFLAGS+=-I/usr/local/include + OSSEC_LDFLAGS+=-L/usr/local/lib +else +ifeq (${uname_S},HP-UX) + DEFINES+=-DHPUX + DEFINES+=-D_XOPEN_SOURCE_EXTENDED + DEFINES+=-DHIGHFIRST + DEFINES+=-D_REENTRANT +else + $(warning Unknown platform) +endif # HPUX +endif # OpenBSD +endif # NetBSD +endif # FreeBSD +endif # Darwin +endif # SunOS +endif # AIX +endif # Linux +endif # winagent + +ifdef DEBUGAD + DEFINES+=+DDEBUGAD +endif + +OSSEC_CFLAGS=${CFLAGS} +#ANALYSISD_FLAGS="-lsqlite3" + +ifdef DEBUG + OSSEC_CFLAGS+=-g +endif #DEBUG + +ifneq (,$(filter ${CLEANFULL},yes y Y 1)) + DEFINES+=-DCLEANFULL +endif + +ifneq (,$(filter ${ONEWAY},yes y Y 1)) + DEFINES+=-DONEWAY_ENABLED +endif + +ifneq (${ZLIB_SYSTEM},no) + DEFINES+=-DZLIB_SYSTEM +endif + +ifeq (${PCRE2_SYSTEM},no) + PCRE2_INCLUDE=-I./${EXTERNAL_PCRE2}/install/include/ + DEFINES+=${PCRE2_INCLUDE} + DEFINES+=-DPCRE2_STATIC +else + PCRE2_LOCATION?=$(shell pcre2-config --prefix)/lib + OSSEC_LDFLAGS+=-lpcre2-8 +endif + + +OSSEC_CFLAGS+=${DEFINES} +OSSEC_CFLAGS+=-Wall -Wextra +OSSEC_CFLAGS+=-I./ -I./headers/ + +CCCOLOR="\033[34m" +LINKCOLOR="\033[34;1m" +SRCCOLOR="\033[33m" +BINCOLOR="\033[37;1m" +MAKECOLOR="\033[32;1m" +ENDCOLOR="\033[0m" + +MING_BASE:= +ifeq (${TARGET}, winagent) +CC=gcc +ZLIB_SYSTEM=no +PCRE2_SYSTEM=no +ifneq (,$(shell which amd64-mingw32msvc-gcc)) + MING_BASE:=amd64-mingw32msvc- +else +ifneq (,$(shell which i686-pc-mingw32-gcc)) + MING_BASE:=i686-pc-mingw32- +else +ifneq (,$(shell which i686-w64-mingw32-gcc)) + MING_BASE:=i686-w64-mingw32- +else +$(error No windows cross-compiler found!) #MING_BASE:=unknown- +endif +endif +endif +endif #winagent + + +OSSEC_CC =${QUIET_CC}${MING_BASE}${CC} +OSSEC_CCBIN =${QUIET_CCBIN}${MING_BASE}${CC} +OSSEC_LINK =${QUIET_LINK}${MING_BASE}ar -crs +OSSEC_RANLIB =${QUIET_RANLIB}${MING_BASE}ranlib +OSSEC_WINDRES =${QUIET_CCBIN}${MING_BASE}windres + + +ifneq (,$(filter ${USE_PCRE2_JIT},yes y Y 1)) + DEFINES+=-DUSE_PCRE2_JIT + PCRE2_CONFIGURE_JIT=--enable-jit +else + PCRE2_CONFIGURE_JIT=--disable-jit +endif + +ifneq (,$(filter ${USE_INOTIFY},auto yes y Y 1)) + DEFINES+=-DINOTIFY_ENABLED + ifeq (${uname_S},FreeBSD) + OSSEC_LDFLAGS+=-linotify -L/usr/local/lib -I/usr/local/include + OSSEC_CFLAGS+=-I/usr/local/include + endif +endif + +ifneq (,$(filter ${USE_PRELUDE},auto yes y Y 1)) + DEFINES+=-DPRELUDE_OUTPUT_ENABLED + OSSEC_LDFLAGS+=-lprelude + OSSEC_LDFLAGS+=$(shell sh -c '${PRELUDE_CONFIG} --pthread-cflags') + OSSEC_LDFLAGS+=$(shell sh -c '${PRELUDE_CONFIG} --libs') +endif # USE_PRELUDE + +ifneq (,$(filter ${USE_ZEROMQ},auto yes y Y 1)) + DEFINES+=-DZEROMQ_OUTPUT_ENABLED + #LDFLAGS+=-L/usr/local/lib -I/usr/local/include -lzmq -lczmq + OSSEC_LDFLAGS+=-lzmq -lczmq -lm +endif # USE_ZEROMQ + +ifneq (,$(filter ${USE_GEOIP},auto yes y Y 1)) + DEFINES+=-DLIBGEOIP_ENABLED + OSSEC_LDFLAGS+=-lGeoIP +endif # USE_GEOIP + +ifneq (,$(filter ${USE_SQLITE},auto yes y Y 1)) + DEFINES+=-DSQLITE_ENABLED + ANALYSISD_FLAGS="-lsqlite3" +endif # USE_SQLITE + +MI := +PI := +ifdef DATABASE + + ifeq (${DATABASE},mysql) + DEFINES+=-DMYSQL_DATABASE_ENABLED + + ifdef MYSQL_CFLAGS + MI = ${MYSQL_CFLAGS} + else + MI := $(shell sh -c '${MY_CONFIG} --include 2>/dev/null || echo ') + + ifeq (${MI},) # BEGIN MI manual detection + ifneq (,$(wildcard /usr/include/mysql/mysql.h)) + MI="-I/usr/include/mysql/" + else + ifneq (,$(wildcard /usr/local/include/mysql/mysql.h)) + MI="-I/usr/local/include/mysql/" + endif # + endif #MI + + endif + endif # MYSQL_CFLAGS + + ifdef MYSQL_LIBS + ML = ${MYSQL_LIBS} + else + ML := $(shell sh -c '${MY_CONFIG} --libs 2>/dev/null || echo ') + + ifeq (${ML},) + ifneq (,$(wildcard /usr/lib/mysql/*)) + ML="-L/usr/lib/mysql -lmysqlclient" + else + ifneq (,$(wildcard /usr/lib64/mysql/*)) + ML="-L/usr/lib64/mysql -lmysqlclient" + else + ifneq (,$(wildcard /usr/local/lib/mysql/*)) + ML="-L/usr/local/lib/mysql -lmysqlclient" + else + ifneq (,$(wildcard /usr/local/lib64/mysql/*)) + ML="-L/usr/local/lib64/mysql -lmysqlclient" + endif # local/lib64 + endif # local/lib + endif # lib54 + endif # lib + endif + endif # MYSQL_LIBS + + OSSEC_LDFLAGS+=${ML} + + else # DATABASE + + ifeq (${DATABASE}, pgsql) + DEFINES+=-DPGSQL_DATABASE_ENABLED + + ifneq (${PGSQL_LIBS},) + PL:=${PGSQL_LIBS} + else + PL:=$(shell sh -c '(${PG_CONFIG} --libdir --pkglibdir 2>/dev/null | sed "s/^/-L/g" | xargs ) || echo ') + endif + + ifneq (${PGSQL_CFLAGS},) + PI:=${PGSQL_CFLAGS} + else + PI:=$(shell sh -c '(${PG_CONFIG} --includedir --pkgincludedir 2>/dev/null | sed "s/^/-I/g" | xargs ) || echo ') + endif + + # XXX need some basic autodetech stuff here. + + OSSEC_LDFLAGS+=${PL} + OSSEC_LDFLAGS+=-lpq + + endif # pgsql + endif # mysql +endif # DATABASE + + +# openssl ########### +ifeq (${USE_OPENSSL},auto) + ifneq (,$(wildcard /usr/include/openssl/ssl.h)) + DEFINES+=-DLIBOPENSSL_ENABLED + OSSEC_LDFLAGS+=-lssl -lcrypto + else + ifneq (,$(wildcard /usr/local/include/openssl/ssl.h)) + DEFINES+=-DLIBOPENSSL_ENABLED + OSSEC_LDFLAGS+=-lssl -lcrypto + endif + endif +endif # USE_OPENSSL + +ifneq (,$(filter ${USE_OPENSSL},yes y Y 1)) + DEFINES+=-DLIBOPENSSL_ENABLED + ifeq (${OPENSSL_LIBS},) + OSSEC_LDFLAGS+=-lssl -lcrypto + else + OSSEC_LDFLAGS+=${OPENSSL_LIBS} + endif + + ifneq (${OPENSSL_CFLAGS},) + OSSEC_CFLAGS+=${OPENSSL_CFLAGS} + endif +endif + +#################### +#### Target ######## +#################### + +OSSEC_CONTROL_SRC=./init/ossec-server.sh +OSSEC_CONF_SRC=../etc/ossec-server.conf + +ifndef TARGET + TARGET=failtarget +endif # TARGET + +ifeq (${TARGET},agent) + DEFINES+=-DCLIENT + OSSEC_CONTROL_SRC=./init/ossec-client.sh + OSSEC_CONF_SRC=../etc/ossec-agent.conf +endif + +ifeq (${TARGET},local) + DEFINES+=-DLOCAL + OSSEC_CONTROL_SRC=./init/ossec-local.sh + OSSEC_CONF_SRC=../etc/ossec-local.conf +endif + + +.PHONY: build +build: ${TARGET} +ifneq (${TARGET},failtarget) + ${MAKE} settings + @echo + ${QUIET_NOTICE} + @echo "Done building ${TARGET}" + ${QUIET_ENDCOLOR} +endif + @echo + + +.PHONY: install install-agent install-server install-local install-hybrid +install: install-${TARGET} + +install-agent: install-common + $(call INSTALL_CMD,0550,root,0) ossec-agentd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) agent-auth ${PREFIX}/bin + + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/rids + +install-local: install-server-generic + +install-hybrid: install-server-generic + +install-server: install-server-generic + +install-common: build + ./init/adduser.sh ${OSSEC_USER} ${OSSEC_USER_MAIL} ${OSSEC_USER_REM} ${OSSEC_GROUP} ${PREFIX} + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/ + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs + $(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/ossec.log + + $(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-logcollector ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-syscheckd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-execd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) manage_agents ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ../contrib/util.sh ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) ${OSSEC_CONTROL_SRC} ${PREFIX}/bin/ossec-control + +ifeq (${LUA_ENABLE},yes) + $(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/lua + $(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/lua/native + $(call INSTALL_CMD,0550,root,0) -d ${PREFIX}/lua/compiled + $(call INSTALL_CMD,0550,root,0) ${EXTERNAL_LUA}src/ossec-lua ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) ${EXTERNAL_LUA}src/ossec-luac ${PREFIX}/bin/ +endif + + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/queue + $(call INSTALL_CMD,0770,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/alerts + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/ossec + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/syscheck + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/diff + + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/etc +ifeq (${INSTALL_LOCALTIME},yes) + $(call INSTALL_CMD,0440,root,${OSSEC_GROUP}) /etc/localtime ${PREFIX}/etc +endif +ifeq (${INSTALL_RESOLVCONF},yes) + $(call INSTALL_CMD,0440,root,${OSSEC_GROUP}) /etc/resolv.conf ${PREFIX}/etc +endif + + $(call INSTALL_CMD,1550,root,${OSSEC_GROUP}) -d ${PREFIX}/tmp + +ifneq (,$(wildcard /etc/TIMEZONE)) + $(call INSTALL_CMD,440,root,${OSSEC_GROUP}) /etc/TIMEZONE ${PREFIX}/etc/ +endif +# Solaris Needs some extra files +ifeq (${uname_S},SunOS) + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/usr/share/lib/zoneinfo/ + cp -r /usr/share/lib/zoneinfo/* ${PREFIX}/usr/share/lib/zoneinfo/ +endif + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) -b ../etc/internal_options.conf ${PREFIX}/etc/ +ifeq (,$(wildcard ${PREFIX}/etc/local_internal_options.conf)) + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ../etc/local_internal_options.conf ${PREFIX}/etc/local_internal_options.conf +endif +ifeq (,$(wildcard ${PREFIX}/etc/client.keys)) + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) /dev/null ${PREFIX}/etc/client.keys +endif +ifeq (,$(wildcard ${PREFIX}/etc/ossec.conf)) +ifneq (,$(wildcard ../etc/ossec.mc)) + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ../etc/ossec.mc ${PREFIX}/etc/ossec.conf +else + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ${OSSEC_CONF_SRC} ${PREFIX}/etc/ossec.conf +endif +endif + + $(call INSTALL_CMD,0770,root,${OSSEC_GROUP}) -d ${PREFIX}/etc/shared + $(call INSTALL_CMD,0640,${OSSEC_USER},${OSSEC_GROUP}) rootcheck/db/*.txt ${PREFIX}/etc/shared/ + + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/active-response + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/active-response/bin + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/agentless + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) agentlessd/scripts/* ${PREFIX}/agentless/ + + $(call INSTALL_CMD,0700,root,${OSSEC_GROUP}) -d ${PREFIX}/.ssh + + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) ../active-response/*.sh ${PREFIX}/active-response/bin/ + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) ../active-response/firewalls/*.sh ${PREFIX}/active-response/bin/ + + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/var + $(call INSTALL_CMD,0770,root,${OSSEC_GROUP}) -d ${PREFIX}/var/run + + ./init/fw-check.sh execute + + + +install-server-generic: install-common + $(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/active-responses.log + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs/archives + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs/alerts + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs/firewall + + $(call INSTALL_CMD,0550,root,0) ossec-agentlessd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-analysisd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-monitord ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-reportd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-maild ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-remoted ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-logtest ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-csyslogd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-authd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-dbd ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) ossec-makelists ${PREFIX}/bin + $(call INSTALL_CMD,0550,root,0) verify-agent-conf ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) clear_stats ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) list_agents ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) ossec-regex ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) syscheck_update ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) agent_control ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) syscheck_control ${PREFIX}/bin/ + $(call INSTALL_CMD,0550,root,0) rootcheck_control ${PREFIX}/bin/ + + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/stats + $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/rules +ifneq (,$(wildcard ${PREFIX}/rules/local_rules.xml)) + cp ${PREFIX}/rules/local_rules.xml ${PREFIX}/rules/local_rules.xml.installbackup + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) -b ../etc/rules/*.xml ${PREFIX}/rules + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ${PREFIX}/rules/local_rules.xml.installbackup ${PREFIX}/rules/local_rules.xml + rm ${PREFIX}/rules/local_rules.xml.installbackup +else + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) -b ../etc/rules/*.xml ${PREFIX}/rules +endif + + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/fts + + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/rootcheck + + $(call INSTALL_CMD,0750,${OSSEC_USER_REM},${OSSEC_GROUP}) -d ${PREFIX}/queue/agent-info + $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/queue/agentless + + $(call INSTALL_CMD,0750,${OSSEC_USER_REM},${OSSEC_GROUP}) -d ${PREFIX}/queue/rids + + $(call INSTALL_CMD,0640,root,${OSSEC_GROUP}) ../etc/decoder.xml ${PREFIX}/etc/ + + rm -f ${PREFIX}/etc/shared/merged.mg + + +.PHONY: failtarget +failtarget: + @echo "TARGET is required: " + @echo " make TARGET=server to build the server" + @echo " make TARGET=local - local version of server" + @echo " make TARGET=hybrid - hybrid version of server" + @echo " make TARGET=agent to build the unix agent" + @echo " make TARGET=winagent to build the windows agent" + +.PHONY: help +help: failtarget + @echo + @echo "General options: " + @echo " make V=1 Display full compiler messages" + @echo " make DEBUG=1 Build with symbols and without optimization" + @echo " make PREFIX=/path Install OSSEC to '/path'. Defaults to /var/ossec" + @echo " make MAXAGENTS=NUMBER Set the number of maximum agents to NUMBER. Defaults to 2048" + @echo " make REUSE_ID=yes Enables agent ID re-use" + @echo + @echo "Database options: " + @echo " make DATABASE=mysql Build with MYSQL Support" + @echo " Use MYSQL_CFLAGS and MYSQL_LIBS to override defaults" + @echo " make DATABASE=pgsql Build with PostgreSQL Support " + @echo " Use PGSQL_CFLAGS and PGSQL_LIBS to override defaults" + @echo + @echo "Geoip support: " + @echo " make USE_GEOIP=1 Build with GeoIP support" + @echo + @echo "External source options: " + @echo " make LUA_ENABLE=no Disable LUA build" + @echo " make ZLIB_SYSTEM=yes Use zlib sources from system" + @echo " make PCRE2_SYSTEM=yes Use pcre2 sources from system" + @echo + @echo "Examples: Client with debugging enabled" + @echo " make TARGET=agent DEBUG=1" + +.PHONY: settings +settings: + @echo + @echo "General settings:" + @echo " TARGET: ${TARGET}" + @echo " V: ${V}" + @echo " DEBUG: ${DEBUG}" + @echo " DEBUGAD: ${DEBUGAD}" + @echo " PREFIX: ${PREFIX}" + @echo " MAXAGENTS: ${MAXAGENTS}" + @echo " REUSE_ID: ${REUSE_ID}" + @echo " DATABASE: ${DATABASE}" + @echo " ONEWAY: ${ONEWAY}" + @echo " CLEANFULL: ${CLEANFULL}" + @echo "User settings:" + @echo " OSSEC_GROUP: ${OSSEC_GROUP}" + @echo " OSSEC_USER: ${OSSEC_USER}" + @echo " OSSEC_USER_MAIL: ${OSSEC_USER_MAIL}" + @echo " OSSEC_USER_REM: ${OSSEC_USER_REM}" + @echo "ZLIB settings:" + @echo " ZLIB_SYSTEM: ${ZLIB_SYSTEM}" + @echo " ZLIB_INCLUDE: ${ZLIB_INCLUDE}" + @echo " ZLIB_LIB: ${ZLIB_LIB}" + @echo "PCRE2 settings:" + @echo " PCRE2_SYSTEM: ${PCRE2_SYSTEM}" + @echo " PCRE2_INCLUDE: ${PCRE2_INCLUDE}" + @echo "Lua settings:" + @echo " LUA_PLAT: ${LUA_PLAT}" + @echo " LUA_ENABLE: ${LUA_ENABLE}" + @echo "USE settings:" + @echo " USE_ZEROMQ: ${USE_ZEROMQ}" + @echo " USE_GEOIP: ${USE_GEOIP}" + @echo " USE_PRELUDE: ${USE_PRELUDE}" + @echo " USE_OPENSSL: ${USE_OPENSSL}" + @echo " USE_INOTIFY: ${USE_INOTIFY}" + @echo " USE_SQLITE: ${USE_SQLITE}" + @echo " USE_PCRE2_JIT: ${USE_PCRE2_JIT}" + @echo "Mysql settings:" + @echo " includes: ${MI}" + @echo " libs: ${ML}" + @echo "Pgsql settings:" + @echo " includes: ${PI}" + @echo " libs: ${PL}" + @echo "Defines:" + @echo " ${DEFINES}" + @echo "Compiler:" + @echo " CFLAGS ${OSSEC_CFLAGS}" + @echo " LDFLAGS ${OSSEC_LDFLAGS}" + @echo " CC ${CC}" + @echo " MAKE ${MAKE}" + + +BUILD_SERVER+=external +BUILD_SERVER+=ossec-maild +BUILD_SERVER+=ossec-csyslogd +BUILD_SERVER+=ossec-agentlessd +BUILD_SERVER+=ossec-execd +BUILD_SERVER+=ossec-logcollector +BUILD_SERVER+=ossec-remoted +BUILD_SERVER+=ossec-agentd +BUILD_SERVER+=manage_agents +BUILD_SERVER+=utils +BUILD_SERVER+=ossec-syscheckd +BUILD_SERVER+=ossec-monitord +BUILD_SERVER+=ossec-reportd +ifneq (,$(filter ${USE_OPENSSL},auto yes)) +BUILD_SERVER+=ossec-authd +endif +BUILD_SERVER+=ossec-analysisd +BUILD_SERVER+=ossec-logtest +BUILD_SERVER+=ossec-makelists +BUILD_SERVER+=ossec-dbd + +BUILD_AGENT+=external +BUILD_AGENT+=ossec-agentd +ifneq (,$(filter ${USE_OPENSSL},auto yes)) +BUILD_AGENT+=agent-auth +endif +BUILD_AGENT+=ossec-logcollector +BUILD_AGENT+=ossec-syscheckd +BUILD_AGENT+=ossec-execd +BUILD_AGENT+=manage_agents + +.PHONY: server local hybrid agent +ifeq (${MAKECMDGOALS},server) +$(error Do not use 'server' directly, use 'TARGET=server') +endif +server: ${BUILD_SERVER} + +ifeq (${MAKECMDGOALS},local) +$(error Do not use 'local' directly, use 'TARGET=local') +endif +local: ${BUILD_SERVER} + +ifeq (${MAKECMDGOALS},hybrid) +$(error Do not use 'hybrid' directly, use 'TARGET=hybrid') +endif +hybrid: ${BUILD_SERVER} + +ifeq (${MAKECMDGOALS},agent) +$(error Do not use 'agent' directly, use 'TARGET=agent') +endif +agent: ${BUILD_AGENT} + + +WINDOWS_BINS:=win32/ossec-agent.exe win32/ossec-agent-eventchannel.exe win32/ossec-rootcheck.exe win32/manage_agents.exe win32/setup-windows.exe win32/setup-syscheck.exe win32/setup-iis.exe win32/add-localfile.exe win32/os_win32ui.exe win32/agent-auth.exe + +ifeq (${MAKECMDGOALS},winagent) +$(error Do not use 'winagent' directly, use 'TARGET=winagent') +endif +.PHONY: winagent +winagent: + ${MAKE} ${WINDOWS_BINS} CFLAGS="-DCLIENT -DWIN32 -I./${EXTERNAL_ZLIB} -I./${EXTERNAL_PCRE2}/install/include" LDFLAGS="-lwsock32 -lwevtapi -lshlwapi -lcomctl32 -lws2_32" + #cd ${EXTERNAL_LUA}src/ && ${MAKE} CC=${MING_BASE}${CC} -f Makefile.mingw mingw + #cp ${EXTERNAL_LUA}src/ossec-lua.exe win32/ + #cp ${EXTERNAL_LUA}src/ossec-luac.exe win32/ + cd win32/ && ./unix2dos.pl ossec.conf > default-ossec.conf + cd win32/ && ./unix2dos.pl help.txt > help_win.txt + cd win32/ && ./unix2dos.pl ../../etc/internal_options.conf > internal_options.conf + cd win32/ && ./unix2dos.pl ../../etc/local_internal_options-win.conf > default-local_internal_options.conf + cd win32/ && ./unix2dos.pl ../../LICENSE > LICENSE.txt + cd win32/ && ./unix2dos.pl ../../active-response/win/route-null.cmd > route-null.cmd + cd win32/ && ./unix2dos.pl ../../active-response/win/restart-ossec.cmd > restart-ossec.cmd + cd win32/ && makensis ossec-installer.nsi + + +#################### +#### External ###### +#################### + +.PHONY: external lua +ifeq (${PCRE2_SYSTEM},no) +external: libcJSON.a ${EXTERNAL_ZLIB}libz.a lua libpcre2-8.a +else +external: libcJSON.a ${EXTERNAL_ZLIB}libz.a lua +endif + +lua: +ifeq (${LUA_ENABLE},yes) + cd ${EXTERNAL_LUA} && ${MAKE} ${LUA_PLAT} +endif + +${EXTERNAL_ZLIB}libz.a: +ifeq (${TARGET},winagent) + cd ${EXTERNAL_ZLIB} && cp zconf.h.in zconf.h && ${MAKE} -f win32/Makefile.gcc PREFIX=${MING_BASE} libz.a +else +ifeq (${ZLIB_SYSTEM},no) + cd ${EXTERNAL_ZLIB} && ./configure && ${MAKE} libz.a +endif +endif + +#### zlib ########## + +ifeq (${ZLIB_SYSTEM},no) +ZLIB_LIB=os_zlib.a ${EXTERNAL_ZLIB}libz.a +ZLIB_INCLUDE=-I./${EXTERNAL_ZLIB} +else +ZLIB_LIB=os_zlib.a +ZLIB_INCLUDE= +OSSEC_LDFLAGS+=-lz +endif + +os_zlib_c := os_zlib/os_zlib.c +os_zlib_o := $(os_zlib_c:.c=.o) + +os_zlib/%.o: os_zlib/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $< -o $@ + +os_zlib.a: ${os_zlib_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + + + +#### cJSON ######### + +JSON_LIB=libcJSON.a +JSON_INCLUDE=-I./${EXTERNAL_JSON} + +cjson_c := ${EXTERNAL_JSON}cJSON.c +cjson_o := $(cjson_c:.c=.o) + +${EXTERNAL_JSON}%.o: ${EXTERNAL_JSON}%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +libcJSON.a: ${cjson_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + + + +#### pcre2 ########## + +ifeq (${PCRE2_SYSTEM},no) +libpcre2-8.a: ${EXTERNAL_PCRE2}/install/lib/libpcre2-8.a + cp $< $@ + ${OSSEC_RANLIB} $@ + +${EXTERNAL_PCRE2}/install/lib/libpcre2-8.a: +ifeq (${TARGET}, winagent) + cd ${EXTERNAL_PCRE2} && \ + CC= ./configure \ + --prefix=$(shell pwd)/${EXTERNAL_PCRE2}/install \ + ${PCRE2_CONFIGURE_JIT} \ + --disable-shared \ + --enable-static \ + --host=${MING_BASE:%-=%} && \ + make install-libLTLIBRARIES install-nodist_includeHEADERS +else + cd ${EXTERNAL_PCRE2} && \ + ./configure \ + --prefix=$(shell pwd)/${EXTERNAL_PCRE2}/install \ + ${PCRE2_CONFIGURE_JIT} \ + --disable-shared \ + --enable-static && \ + make install-libLTLIBRARIES install-nodist_includeHEADERS +endif +endif + + +#################### +#### OSSEC Libs #### +#################### + +ossec_libs = os_crypto.a config.a shared.a os_net.a os_regex.a os_xml.a + +#### os_xml ######## + +os_xml_c := $(wildcard os_xml/*.c) +os_xml_o := $(os_xml_c:.c=.o) + +os_xml/%.o: os_xml/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +os_xml.a: ${os_xml_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + + +#### os_regex ###### + +os_regex_c := $(wildcard os_regex/*.c) +os_regex_o := $(os_regex_c:.c=.o) + +os_regex/%.o: os_regex/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +ifeq (${PCRE2_SYSTEM},no) +os_regex.a: ${os_regex_o} libpcre2-8.a + (mkdir -p libpcre2_objs && cd libpcre2_objs && ${QUIET_LINK}${MING_BASE}ar -x ../libpcre2-8.a) + ${OSSEC_LINK} $@ ${os_regex_o} $(addprefix libpcre2_objs/,$(shell ${MING_BASE}ar -t libpcre2-8.a)) + ${OSSEC_RANLIB} $@ + rm -rf libpcre2_objs +else +os_regex.a: ${os_regex_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ +endif + +#### os_net ########## + +os_net_c := $(wildcard os_net/*.c) +os_net_o := $(os_net_c:.c=.o) + +os_net/%.o: os_net/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +os_net.a: ${os_net_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + +#### Shared ########## + +shared_c := $(wildcard shared/*.c) +shared_o := $(shared_c:.c=.o) + +shared/%.o: shared/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +shared.a: ${shared_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + +#### Config ########## + +config_c := $(wildcard config/*.c) +config_o := $(config_c:.c=.o) + +config/%.o: config/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +config.a: ${config_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + +#### crypto ########## + +crypto_blowfish_c := os_crypto/blowfish/bf_op.c \ + os_crypto/blowfish/bf_skey.c \ + os_crypto/blowfish/bf_enc.c +crypto_blowfish_o := $(crypto_blowfish_c:.c=.o) + +os_crypto/blowfish/%.o: os_crypto/blowfish/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -Wno-implicit-fallthrough -c $^ -o $@ + +crypto_md5_c := os_crypto/md5/md5.c \ + os_crypto/md5/md5_op.c +crypto_md5_o := $(crypto_md5_c:.c=.o) + +os_crypto/md5/%.o: os_crypto/md5/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +crypto_sha1_c := os_crypto/sha1/sha1_op.c +crypto_sha1_o := $(crypto_sha1_c:.c=.o) + +os_crypto/sha1/%.o: os_crypto/sha1/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -Wno-implicit-fallthrough -c $^ -o $@ + +crypto_md5_sha1_c := os_crypto/md5_sha1/md5_sha1_op.c +crypto_md5_sha1_o := $(crypto_md5_sha1_c:.c=.o) + +os_crypto/md5_sha1/%.o: os_crypto/md5_sha1/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +crypto_shared_c := $(wildcard os_crypto/shared/*.c) +crypto_shared_o := $(crypto_shared_c:.c=.o) + +os_crypto/shared/%.o: os_crypto/shared/%.c ${ZLIB_LIB} + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $< -o $@ + + +crypto_o := ${crypto_blowfish_o} \ + ${crypto_md5_o} \ + ${crypto_sha1_o} \ + ${crypto_shared_o} \ + ${crypto_md5_sha1_o} + +os_crypto.a: ${crypto_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + + +#### os_mail ######### + +os_maild_c := $(wildcard os_maild/*.c) +os_maild_o := $(os_maild_c:.c=.o) + +os_maild/%.o: os_maild/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-maild\" -c $^ -o $@ + +ossec-maild: ${os_maild_o} ${ossec_libs} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +#### os_dbd ########## + +os_dbd_c := $(wildcard os_dbd/*.c) +os_dbd_o := $(os_dbd_c:.c=.o) + +os_dbd/%.o: os_dbd/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} ${MI} ${PI} -DARGV0=\"ossec-dbd\" -c $^ -o $@ + +ossec-dbd: ${os_dbd_o} ${ossec_libs} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${MI} ${PI} ${JSON_INCLUDE} $^ -lm ${OSSEC_LDFLAGS} -o $@ + + +#### os_csyslogd ##### + +os_csyslogd_c := $(wildcard os_csyslogd/*.c) +os_csyslogd_o := $(os_csyslogd_c:.c=.o) + +os_csyslogd/%.o: os_csyslogd/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} ${JSON_INCLUDE} -DARGV0=\"ossec-csyslogd\" -c $^ -o $@ + +ossec-csyslogd: ${os_csyslogd_o} ${ossec_libs} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${JSON_INCLUDE} $^ -lm ${OSSEC_LDFLAGS} -o $@ + + +#### agentlessd #### + +os_agentlessd_c := $(wildcard agentlessd/*.c) +os_agentlessd_o := $(os_agentlessd_c:.c=.o) + +agentlessd/%.o: agentlessd/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-agentlessd\" -c $^ -o $@ + +ossec-agentlessd: ${os_agentlessd_o} ${ossec_libs} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +#### os_execd ##### + +os_execd_c := $(wildcard os_execd/*.c) +os_execd_o := $(os_execd_c:.c=.o) + +os_execd/%.o: os_execd/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-execd\" -c $^ -o $@ + +ossec-execd: ${os_execd_o} ${ossec_libs} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${JSON_INCLUDE} $^ -lm ${OSSEC_LDFLAGS} -o $@ + + +#### logcollectord #### + +os_logcollector_c := $(wildcard logcollector/*.c) +os_logcollector_o := $(os_logcollector_c:.c=.o) +os_logcollector_eventchannel_o := $(os_logcollector_c:.c=-event.o) + +logcollector/%.o: logcollector/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-logcollector\" -c $^ -o $@ + +logcollector/%-event.o: logcollector/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DEVENTCHANNEL_SUPPORT -DARGV0=\"ossec-logcollector\" -c $^ -o $@ + +ossec-logcollector: ${os_logcollector_o} ${ossec_libs} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +#### remoted ######### + +remoted_c := $(wildcard remoted/*.c) +remoted_o := $(remoted_c:.c=.o) + +remoted/%.o: remoted/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -I./remoted ${ZLIB_INCLUDE} -DARGV0=\"ossec-remoted\" -c $^ -o $@ + +ossec-remoted: ${remoted_o} ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +#### ossec-agentd #### + +client_agent_c := $(wildcard client-agent/*.c) +client_agent_o := $(client_agent_c:.c=.o) + +client-agent/%.o: client-agent/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -I./client-agent ${ZLIB_INCLUDE} -DARGV0=\"ossec-agentd\" -c $^ -o $@ + +ossec-agentd: ${client_agent_o} ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +#### addagent ###### + +addagent_c := $(wildcard addagent/*.c) +addagent_o := $(addagent_c:.c=.o) + +addagent/%.o: addagent/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -I./addagent ${ZLIB_INCLUDE} -DARGV0=\"manage_agents\" -c $^ -o $@ + + +manage_agents: ${addagent_o} ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} ${JSON_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +#### Util ########## + +util_programs = syscheck_update clear_stats list_agents agent_control syscheck_control rootcheck_control verify-agent-conf ossec-regex ossec-regex-convert + +.PHONY: utils +utils: ${util_programs} + +util_c := $(wildcard util/*.c) +util_o := $(util_c:.c=.o) + +util/%.o: util/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -I./util ${ZLIB_INCLUDE} -DARGV0=\"utils\" -c $^ -o $@ + +syscheck_update: util/syscheck_update.o addagent/validate.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} ${JSON_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +clear_stats: util/clear_stats.o ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +list_agents: util/list_agents.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +verify-agent-conf: util/verify-agent-conf.o ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +agent_control: util/agent_control.o addagent/validate.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} ${JSON_INCLUDE} $^ -lm ${OSSEC_LDFLAGS} -o $@ + +syscheck_control: util/syscheck_control.o addagent/validate.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} ${JSON_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +rootcheck_control: util/rootcheck_control.o addagent/validate.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} ${JSON_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +ossec-regex: util/ossec-regex.o ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +ossec-regex-convert: util/ossec-regex-convert.o ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +#### rootcheck ##### + +rootcheck_c := $(wildcard rootcheck/*.c) +rootcheck_o := $(rootcheck_c:.c=.o) +rootcheck_rk_o := $(rootcheck_c:.c=_rk.o) +rootcheck_o_lib := $(filter-out rootcheck/rootcheck-config.o, ${rootcheck_o}) +rootcheck_o_cmd := $(filter-out rootcheck/config.o, ${rootcheck_o}) + + +rootcheck/%.o: rootcheck/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"rootcheck\" -c $^ -o $@ + +rootcheck/%_rk.o: rootcheck/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"rootcheck\" -UOSSECHIDS -c $^ -o $@ + + +rootcheck.a: ${rootcheck_o_lib} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + +#ossec-rootcheck: rootcheck/rootcheck-config.o rootcheck.a ${ossec_libs} +# @echo ${rootcheck_o_cmd} +# @echo ${rootcheck_o_lib} +# @echo ${rootcheck_o} +# ${OSSEC_CC} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} rootcheck/rootcheck-config.o rootcheck.a rootcheck/rootcheck.c ${ZLIB_LIB} ${ossec_libs} -o $@ + +#### syscheck ###### + + +syscheck_c := $(wildcard syscheckd/*.c) +syscheck_o := $(syscheck_c:.c=.o) + +syscheckd/%.o: syscheckd/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-syscheckd\" -c $^ -o $@ + +ossec-syscheckd: ${syscheck_o} rootcheck.a ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + +#### Monitor ####### + +monitor_c := $(wildcard monitord/*.c) +monitor_o := $(monitor_c:.c=.o) + +monitord/%.o: monitord/%.c ${ZLIB_LIB} + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-monitord\" -c $< -o $@ + +ossec-monitord: ${monitor_o} ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${ZLIB_INCLUDE} $^ ${OSSEC_LDFLAGS} -o $@ + + +#### reportd ####### + +report_c := reportd/report.c +report_o := $(report_c:.c=.o) + +reportd/%.o: reportd/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-reportd\" -c $^ -o $@ + +ossec-reportd: ${report_o} ${ossec_libs} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + + +#### os_auth ####### + +os_auth_c := ${wildcard os_auth/*.c} +os_auth_o := $(os_auth_c:.c=.o) + +os_auth/%.o: os_auth/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -I./os_auth -DARGV0=\"ossec-authd\" -c $^ -o $@ + +agent-auth: addagent/validate.o os_auth/main-client.o os_auth/ssl.o os_auth/check_cert.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${JSON_INCLUDE} -I./os_auth $^ ${OSSEC_LDFLAGS} -o $@ + +ossec-authd: addagent/validate.o os_auth/main-server.o os_auth/ssl.o os_auth/check_cert.o ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} ${JSON_INCLUDE} -I./os_auth $^ ${OSSEC_LDFLAGS} -o $@ + +#### analysisd ##### + +cdb_c := ${wildcard analysisd/cdb/*.c} +cdb_o := $(cdb_c:.c=.o) +all_analysisd_o += ${cdb_o} +all_analysisd_libs += cdb.a + +analysisd/cdb/%.o: analysisd/cdb/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/cdb -c $^ -o $@ + +cdb.a: ${cdb_o} + ${OSSEC_LINK} $@ $^ + ${OSSEC_RANLIB} $@ + + +alerts_c := ${wildcard analysisd/alerts/*.c} +alerts_o := $(alerts_c:.c=.o) +all_analysisd_o += ${alerts_o} +all_analysisd_libs += alerts.a + +analysisd/alerts/%.o: analysisd/alerts/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/alerts -c $^ -o $@ + +alerts.a: ${alerts_o} + ${OSSEC_LINK} $@ $^ + +decoders_c := ${wildcard analysisd/decoders/*.c} ${wildcard analysisd/decoders/plugins/*.c} ${wildcard analysisd/compiled_rules/*.c} +decoders_o := $(decoders_c:.c=.o) +## XXX Nasty hack +decoders_test_o := $(decoders_c:.c=-test.o) +decoders_live_o := $(decoders_c:.c=-live.o) + +all_analysisd_o += ${decoders_o} ${decoders_test_o} ${decoders_live_o} +all_analysisd_libs += decoders.a decoders-test.a decoders-live.a + + +analysisd/decoders/%-test.o: analysisd/decoders/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DTESTRULE -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + + +analysisd/decoders/%-live.o: analysisd/decoders/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + +analysisd/decoders/plugins/%-test.o: analysisd/decoders/plugins/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DTESTRULE -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + + +analysisd/decoders/plugins/%-live.o: analysisd/decoders/plugins/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + +analysisd/compiled_rules/compiled_rules.h: analysisd/compiled_rules/.function_list analysisd/compiled_rules/register_rule.sh + ./analysisd/compiled_rules/register_rule.sh build + +analysisd/compiled_rules/%-test.o: analysisd/compiled_rules/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DTESTRULE -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + +analysisd/compiled_rules/%-live.o: analysisd/compiled_rules/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + +decoders-live.a: ${decoders_live_o} + ${OSSEC_LINK} $@ $^ + +decoders-test.a: ${decoders_test_o} + ${OSSEC_LINK} $@ $^ + +format_c := ${wildcard analysisd/format/*.c} +format_o := ${format_c:.c=.o} +all_analysisd_o += ${format_o} + +analysisd/format/%.o: analysisd/format/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} ${JSON_INCLUDE} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + +output_c := ${wildcard analysisd/output/*c} +output_o := ${output_c:.c=.o} +all_analysisd_o += ${output_o} + +analysisd/output/%.o: analysisd/output/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -I./analysisd/decoders -c $^ -o $@ + + + +analysisd_c := ${filter-out analysisd/analysisd.c, ${filter-out analysisd/testrule.c, ${filter-out analysisd/makelists.c, ${wildcard analysisd/*.c}}}} +analysisd_o := ${analysisd_c:.c=.o} +all_analysisd_o += ${analysisd_o} + +analysisd_test_o := $(analysisd_o:.o=-test.o) +analysisd_live_o := $(analysisd_o:.o=-live.o) +all_analysisd_o += ${analysisd_test_o} ${analysisd_live_o} analysisd/testrule-test.o analysisd/analysisd-live.o analysisd/analysisd-test.o analysisd/makelists-live.o + +analysisd/%-live.o: analysisd/%.c analysisd/compiled_rules/compiled_rules.h + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-analysisd\" -I./analysisd -c $< -o $@ + +analysisd/%-test.o: analysisd/%.c analysisd/compiled_rules/compiled_rules.h + ${OSSEC_CC} ${OSSEC_CFLAGS} -DTESTRULE -DARGV0=\"ossec-analysisd\" -I./analysisd -c $< -o $@ + + +ossec-logtest: ${analysisd_test_o} ${output_o} ${format_o} analysisd/testrule-test.o analysisd/analysisd-test.o alerts.a cdb.a decoders-test.a ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} -DTESTRULE $^ ${OSSEC_LDFLAGS} ${ANALYSISD_FLAGS} -o $@ + +ossec-analysisd: ${analysisd_live_o} analysisd/analysisd-live.o ${output_o} ${format_o} alerts.a cdb.a decoders-live.a ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} ${ANALYSISD_FLAGS} -o $@ + +ossec-makelists: analysisd/makelists-live.o ${analysisd_live_o} ${format_o} alerts.a cdb.a decoders-live.a ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + + +#################### +#### test ########## +#################### + +CFLAGS_TEST = -g -O0 --coverage + +LDFLAGS_TEST = -lcheck -lm -pthread -lrt + +ifdef TEST + OSSEC_CFLAGS+=${CFLAGS_TEST} + OSSEC_LDFLAGS+=${LDFLAGS_TEST} +endif #TEST + +test_programs = test_os_zlib test_os_xml test_os_regex test_os_crypto test_shared + +.PHONY: test run_tests build_tests test_valgrind test_coverage + +test: build_tests + ${MAKE} run_tests + +run_tests: + @$(foreach bin,${test_programs},./${bin} || exit 1;) + +build_tests: external + ${MAKE} DEBUG=1 TEST=1 ${test_programs} + +test_c := $(wildcard tests/*.c) +test_o := $(test_c:.c=.o) + +tests/%.o: tests/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -c $^ -o $@ + +test_os_zlib: tests/test_os_zlib.o ${ZLIB_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +test_os_xml: tests/test_os_xml.o os_xml.a + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +test_os_regex: tests/test_os_regex.c os_regex.a + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +test_os_crypto: tests/test_os_crypto.c os_crypto.a shared.a os_xml.a os_net.a os_regex.a ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +#test_os_net: tests/test_os_net.c os_net.a shared.a os_regex.a os_xml.a +# ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +test_shared: tests/test_shared.c shared.a os_xml.a os_net.a os_regex.a ${JSON_LIB} + ${OSSEC_CCBIN} ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +test_valgrind: build_tests + valgrind --leak-check=full --track-origins=yes --trace-children=yes --vgdb=no --error-exitcode=1 --gen-suppressions=all --suppressions=tests/valgrind.supp ${MAKE} run_tests + + +test_coverage: build_tests + lcov --base-directory . --directory . --zerocounters --rc lcov_branch_coverage=1 --quiet + @echo "Running tests\n" + + ${MAKE} run_tests + + @echo "\nTests finished." + + lcov --base-directory . --directory . --capture --quiet --rc lcov_branch_coverage=1 --output-file ossec.test + + rm -rf coverage-report/ + genhtml --branch-coverage --output-directory coverage-report/ --title "ossec test coverage" --show-details --legend --num-spaces 4 --quiet ossec.test + +#################### +#### RUule Tests ### +#################### + +test-rules: + ( cd ../contrib/ossec-testing && sudo python runtests.py) + + +#################### +#### windows ####### +#################### + +win32/icon.o: win32/icofile.rc + ${OSSEC_WINDRES} -i $< -o $@ + +win32_c := $(wildcard win32/*.c) +win32_o := $(win32_c:.c=.o) + +win32/%.o: win32/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -DARGV0=\"ossec-agent\" -c $^ -o $@ + +win32/%_rk.o: win32/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -UOSSECHIDS -DARGV0=\"ossec-agent\" -c $^ -o $@ + +win32_ui_c := $(wildcard win32/ui/*.c) +win32_ui_o := $(win32_ui_c:.c=.o) + +win32/ui/%.o: win32/ui/%.c + ${OSSEC_CC} ${OSSEC_CFLAGS} -UOSSECHIDS -DARGV0=\"ossec-win32ui\" -c $^ -o $@ + +win32/ossec-agent.exe: win32/icon.o win32/win_agent.o win32/win_service.o $(filter-out syscheckd/seechanges.o, ${syscheck_o}) ${rootcheck_o} $(filter-out client-agent/main.o, $(filter-out client-agent/agentd.o, $(filter-out client-agent/event-forward.o, ${client_agent_o}))) $(filter-out logcollector/main.o, ${os_logcollector_o}) ${os_execd_o} ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} -DARGV0=\"ossec-agent\" -DOSSECHIDS ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/ossec-agent-eventchannel.exe: win32/icon.o win32/win_agent.o win32/win_service.o $(filter-out syscheckd/seechanges.o, ${syscheck_o}) ${rootcheck_o} $(filter-out client-agent/main.o, $(filter-out client-agent/agentd.o, $(filter-out client-agent/event-forward.o, ${client_agent_o}))) $(filter-out logcollector/main-event.o, ${os_logcollector_eventchannel_o}) ${os_execd_o} ${ossec_libs} ${ZLIB_LIB} + ${OSSEC_CCBIN} -DARGV0=\"ossec-agent\" -DOSSECHIDS -DEVENTCHANNEL_SUPPORT ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/ossec-rootcheck.exe: win32/icon.o win32/win_service_rk.o ${rootcheck_rk_o} ${ossec_libs} + ${OSSEC_CCBIN} -DARGV0=\"ossec-rootcheck\" ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/manage_agents.exe: win32/win_service_rk.o ${addagent_o} ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} -DARGV0=\"manage-agents\" -DMA ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/setup-windows.exe: win32/win_service_rk.o win32/setup-win.o win32/setup-shared.o ${ossec_libs} + ${OSSEC_CCBIN} -DARGV0=\"setup-windows\" ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/setup-syscheck.exe: win32/setup-syscheck.o win32/setup-shared.o ${ossec_libs} + ${OSSEC_CCBIN} -DARGV0=\"setup-syscheck\" ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/setup-iis.exe: win32/setup-iis.o ${ossec_libs} + ${OSSEC_CCBIN} -DARGV0=\"setup-iis\" ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/add-localfile.exe: win32/add-localfile.o ${ossec_libs} + ${OSSEC_CCBIN} -DARGV0=\"add-localfile\" ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -o $@ + +win32/resource.o: win32/ui/win32ui.rc + ${OSSEC_WINDRES} -i $< -o $@ + +win32/os_win32ui.exe: win32/resource.o win32/win_service_rk.o ${win32_ui_o} addagent/b64.o ${ossec_libs} + ${OSSEC_CCBIN} -DARGV0=\"ossec-win32ui\" ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -mwindows -o $@ + +win32/agent-auth.exe: win32/win_service_rk.o addagent/validate.c win32/agent_auth.c ${ossec_libs} ${ZLIB_LIB} ${JSON_LIB} + ${OSSEC_CCBIN} -DARGV0=\"agent-auth\" -DOSSECHIDS ${OSSEC_CFLAGS} $^ ${OSSEC_LDFLAGS} -lshlwapi -lwsock32 -lsecur32 -flto -o $@ + + + + +#################### +#### Clean ######### +#################### + +clean: clean-test clean-internals clean-external clean-windows + +clean-test: + rm -f ${test_o} ${test_programs} ossec.test + rm -Rf coverage-report/ + find . -name "*.gcno" -exec rm {} \; + find . -name "*.gcda" -exec rm {} \; + +clean-external: + rm -f ${cjson_o} libcJSON.a libpcre2-8.a + cd ${EXTERNAL_ZLIB} && ${MAKE} -f Makefile.in distclean + cd ${EXTERNAL_LUA} && ${MAKE} clean + #cd ${EXTERNAL_PCRE2} && ${MAKE} distclean + + +clean-internals: + rm -f ${os_zlib_o} os_zlib.a + rm -f ${os_xml_o} os_xml.a + rm -f ${os_regex_o} os_regex.a + rm -f ${os_net_o} os_net.a + rm -f ${shared_o} shared.a + rm -f ${config_o} config.a + rm -f ${os_maild_o} ossec-maild + rm -f ${crypto_o} os_crypto.a + rm -f ${os_csyslogd_o} ossec-csyslogd + rm -f ${os_dbd_o} ossec-dbd + rm -f ${os_agentlessd_o} ossec-agentlessd + rm -f ${os_execd_o} ossec-execd + rm -f ${os_logcollector_o} ${os_logcollector_eventchannel_o} ossec-logcollector + rm -f ${remoted_o} ossec-remoted + rm -f ${report_o} ossec-reportd + rm -f ${client_agent_o} ossec-agentd + rm -f ${addagent_o} manage_agents + rm -f ${util_o} ${util_programs} + rm -f ${rootcheck_o} ${rootcheck_rk_o} rootcheck.a + rm -f ${syscheck_o} ossec-syscheckd + rm -f ${monitor_o} ossec-monitord + rm -f ${os_auth_o} ossec-authd agent-auth + rm -f ${all_analysisd_o} ${all_analysisd_libs} analysisd/compiled_rules/compiled_rules.h + rm -f ossec-logtest ossec-analysisd ossec-makelists + +clean-windows: + rm -f win32/LICENSE.txt + rm -f win32/help_win.txt + rm -f win32/internal_options.conf + rm -f win32/default-local_internal_options.conf + rm -f win32/default-ossec.conf + rm -f win32/restart-ossec.cmd + rm -f win32/route-null.cmd + rm -f ${win32_o} ${win32_ui_o} win32/win_service_rk.o + rm -f win32/icon.o win32/resource.o + rm -f ${WINDOWS_BINS} + #rm -f ${EXTERNAL_LUA}src/lua52.dll + #rm -f ${EXTERNAL_LUA}src/ossec-lua.exe + #rm -f ${EXTERNAL_LUA}src/ossec-luac.exe + #rm -f win32/ossec-lua.exe + #rm -f win32/ossec-luac.exe + rm -f win32/ossec-win32-agent.exe