1 # inoclam - Inotify+ClamAV virus scanner
2 # Copyright (C) 2007 Vermont Department of Taxes
4 # This program is free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 # Tom Cort <tom.cort@state.vt.us>
23 SET (libdirs /usr/lib /usr/pkg/lib /usr/local/lib /usr/lib64 /usr/local/lib64 /usr/lib32 /usr/local/lib32)
24 SET (bindirs /usr/bin /usr/pkg/bin /usr/local/bin)
25 SET (incdirs /usr/include /usr/local/include /usr/pkg/include /usr/include/jwsmtp-1.32 /usr/local/include/jwsmtp-1.32 /usr/pkg/include/jwsmtp-1.32)
27 #############################################
29 #############################################
31 FIND_LIBRARY(LIBCLAMAV clamav ${libdirs})
34 MESSAGE(STATUS "Found libclamav: ${LIBCLAMAV}")
36 MESSAGE (FATAL_ERROR "libclamav not found.")
39 FIND_PATH(LIBCLAMAV_INCLUDE_DIR clamav.h ${incdirs})
41 IF (LIBCLAMAV_INCLUDE_DIR)
42 MESSAGE(STATUS "Found clamav.h in ${LIBCLAMAV_INCLUDE_DIR}")
43 ELSE (LIBCLAMAV_INCLUDE_DIR)
44 MESSAGE (FATAL_ERROR "clamav.h not found.")
45 ENDIF (LIBCLAMAV_INCLUDE_DIR)
47 #############################################
49 #############################################
51 FIND_LIBRARY(LIBDAEMON daemon ${libdirs})
54 MESSAGE(STATUS "Found libdaemon: ${LIBDAEMON}")
56 MESSAGE (FATAL_ERROR "libdaemon not found.")
59 FIND_PATH(LIBDAEMON_INCLUDE_DIR libdaemon/daemon.h ${incdirs})
61 IF (LIBDAEMON_INCLUDE_DIR)
62 MESSAGE(STATUS "Found libdaemon/daemon.h in ${LIBDAEMON_INCLUDE_DIR}")
63 ELSE (LIBDAEMON_INCLUDE_DIR)
64 MESSAGE (FATAL_ERROR "libdaemon/daemon.h not found.")
65 ENDIF (LIBDAEMON_INCLUDE_DIR)
67 #############################################
68 # libinotifytools checks
69 #############################################
71 FIND_LIBRARY(LIBINOTIFYTOOLS inotifytools ${libdirs})
74 MESSAGE(STATUS "Found libnotifytools: ${LIBINOTIFYTOOLS}")
75 ELSE (LIBINOTIFYTOOLS)
76 MESSAGE (FATAL_ERROR "libinotifytools not found.")
77 ENDIF (LIBINOTIFYTOOLS)
79 FIND_PATH(LIBINOTIFYTOOLS_INCLUDE_DIR inotifytools/inotify.h ${incdirs})
81 IF (LIBINOTIFYTOOLS_INCLUDE_DIR)
82 MESSAGE(STATUS "Found inotifytools/inotify.h in ${LIBINOTIFYTOOLS_INCLUDE_DIR}")
83 ELSE (LIBINOTIFYTOOLS_INCLUDE_DIR)
84 MESSAGE (FATAL_ERROR "inotifytools/inotify.h not found.")
85 ENDIF (LIBINOTIFYTOOLS_INCLUDE_DIR)
87 #############################################
89 #############################################
91 FIND_LIBRARY(JWSMTP jwsmtp ${libdirs})
94 MESSAGE(STATUS "Found jwsmtp: ${JWSMTP}")
96 MESSAGE (FATAL_ERROR "jwsmtp not found.")
99 FIND_PATH(JWSMTP_INCLUDE_DIR jwsmtp/jwsmtp.h ${incdirs})
101 IF (JWSMTP_INCLUDE_DIR)
102 MESSAGE(STATUS "Found jwsmtp/jwsmtp.h in ${JWSMTP_INCLUDE_DIR}")
103 ELSE (JWSMTP_INCLUDE_DIR)
104 MESSAGE (FATAL_ERROR "jwsmtp/jwsmtp.h not found.")
105 ENDIF (JWSMTP_INCLUDE_DIR)
107 #############################################
109 #############################################
111 FIND_PATH(INOTIFY_INCLUDE_DIR sys/inotify.h ${incdirs})
113 IF (INOTIFY_INCLUDE_DIR)
114 MESSAGE(STATUS "Found sys/inotify.h in ${INOTIFY_INCLUDE_DIR}")
115 ELSE (INOTIFY_INCLUDE_DIR)
116 MESSAGE (FATAL_ERROR "sys/inotify.h not found.")
117 ENDIF (INOTIFY_INCLUDE_DIR)
119 #############################################
121 #############################################
123 FIND_LIBRARY(LIBCONFUSE confuse ${libdirs})
126 MESSAGE(STATUS "Found libconfuse: ${LIBCONFUSE}")
128 MESSAGE (FATAL_ERROR "libconfuse not found.")
131 FIND_PATH(LIBCONFUSE_INCLUDE_DIR confuse.h ${incdirs})
133 IF (LIBCONFUSE_INCLUDE_DIR)
134 MESSAGE(STATUS "Found confuse.h in ${LIBCONFUSE_INCLUDE_DIR}")
135 ELSE (LIBCONFUSE_INCLUDE_DIR)
136 MESSAGE (FATAL_ERROR "confuse.h not found.")
137 ENDIF (LIBCONFUSE_INCLUDE_DIR)
139 #############################################
141 #############################################
143 FIND_LIBRARY(LIBPTHREAD pthread ${libdirs})
146 MESSAGE(STATUS "Found libpthread: ${LIBPTHREAD}")
148 MESSAGE (FATAL_ERROR "libpthread not found.")
151 FIND_PATH(LIBPTHREAD_INCLUDE_DIR pthread.h ${incdirs})
153 IF (LIBPTHREAD_INCLUDE_DIR)
154 MESSAGE(STATUS "Found pthread.h in ${LIBPTHREAD_INCLUDE_DIR}")
155 ELSE (LIBPTHREAD_INCLUDE_DIR)
156 MESSAGE (FATAL_ERROR "pthread.h not found.")
157 ENDIF (LIBPTHREAD_INCLUDE_DIR)
159 #############################################
161 #############################################
163 INCLUDE_DIRECTORIES(${incdirs} ${LIBCLAMAV_INCLUDE_DIR} ${LIBDAEMON_INCLUDE_DIR} ${LIBINOTIFYTOOLS_INCLUDE_DIR} ${INOTIFY_INCLUDE_DIR} ${JWSMTP_INCLUDE_DIR} ${LIBCONFUSE_INCLUDE_DIR} ${LIBPTHREAD_INCLUDE_DIR})
165 #############################################
167 #############################################
169 ADD_EXECUTABLE(inoclam config.cxx clam.cxx inoclam.cxx inotify.cxx monitor.cxx signal.cxx smtp.cxx)
171 #############################################
173 #############################################
175 TARGET_LINK_LIBRARIES(inoclam ${LIBCLAMAV} ${LIBDAEMON} ${LIBINOTIFYTOOLS} ${JWSMTP} ${LIBCONFUSE} ${LIBPTHREAD})
177 #############################################
179 #############################################
181 INSTALL(PROGRAMS inoclam DESTINATION sbin)