1 # inoclam - Inotify+ClamAV virus scanner
2 # Copyright (C) 2007, 2008 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 version 2 as
6 # published by the Free Software Foundation.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 SET (libdirs /usr/lib /usr/pkg/lib /usr/local/lib /usr/lib64 /usr/local/lib64 /usr/lib32 /usr/local/lib32)
18 SET (bindirs /usr/bin /usr/pkg/bin /usr/local/bin)
19 SET (incdirs /usr/include /usr/local/include /usr/pkg/include)
21 #############################################
23 #############################################
25 FIND_LIBRARY(LIBCLAMAV clamav ${libdirs})
28 MESSAGE(STATUS "Found libclamav: ${LIBCLAMAV}")
30 MESSAGE (FATAL_ERROR "libclamav not found.")
33 FIND_PATH(LIBCLAMAV_INCLUDE_DIR clamav.h ${incdirs})
35 IF (LIBCLAMAV_INCLUDE_DIR)
36 MESSAGE(STATUS "Found clamav.h in ${LIBCLAMAV_INCLUDE_DIR}")
37 ELSE (LIBCLAMAV_INCLUDE_DIR)
38 MESSAGE (FATAL_ERROR "clamav.h not found.")
39 ENDIF (LIBCLAMAV_INCLUDE_DIR)
41 #############################################
43 #############################################
45 FIND_LIBRARY(LIBDAEMON daemon ${libdirs})
48 MESSAGE(STATUS "Found libdaemon: ${LIBDAEMON}")
50 MESSAGE (FATAL_ERROR "libdaemon not found.")
53 FIND_PATH(LIBDAEMON_INCLUDE_DIR libdaemon/daemon.h ${incdirs})
55 IF (LIBDAEMON_INCLUDE_DIR)
56 MESSAGE(STATUS "Found libdaemon/daemon.h in ${LIBDAEMON_INCLUDE_DIR}")
57 ELSE (LIBDAEMON_INCLUDE_DIR)
58 MESSAGE (FATAL_ERROR "libdaemon/daemon.h not found.")
59 ENDIF (LIBDAEMON_INCLUDE_DIR)
61 #############################################
62 # libinotifytools checks
63 #############################################
65 FIND_LIBRARY(LIBINOTIFYTOOLS inotifytools ${libdirs})
68 MESSAGE(STATUS "Found libnotifytools: ${LIBINOTIFYTOOLS}")
69 ELSE (LIBINOTIFYTOOLS)
70 MESSAGE (FATAL_ERROR "libinotifytools not found.")
71 ENDIF (LIBINOTIFYTOOLS)
73 FIND_PATH(LIBINOTIFYTOOLS_INCLUDE_DIR inotifytools/inotify.h ${incdirs})
75 IF (LIBINOTIFYTOOLS_INCLUDE_DIR)
76 MESSAGE(STATUS "Found inotifytools/inotify.h in ${LIBINOTIFYTOOLS_INCLUDE_DIR}")
77 ELSE (LIBINOTIFYTOOLS_INCLUDE_DIR)
78 MESSAGE (FATAL_ERROR "inotifytools/inotify.h not found.")
79 ENDIF (LIBINOTIFYTOOLS_INCLUDE_DIR)
81 #############################################
83 #############################################
85 FIND_PATH(INOTIFY_INCLUDE_DIR sys/inotify.h ${incdirs})
87 IF (INOTIFY_INCLUDE_DIR)
88 MESSAGE(STATUS "Found sys/inotify.h in ${INOTIFY_INCLUDE_DIR}")
89 ELSE (INOTIFY_INCLUDE_DIR)
90 MESSAGE (FATAL_ERROR "sys/inotify.h not found.")
91 ENDIF (INOTIFY_INCLUDE_DIR)
93 #############################################
95 #############################################
97 FIND_LIBRARY(LIBCONFUSE confuse ${libdirs})
100 MESSAGE(STATUS "Found libconfuse: ${LIBCONFUSE}")
102 MESSAGE (FATAL_ERROR "libconfuse not found.")
105 FIND_PATH(LIBCONFUSE_INCLUDE_DIR confuse.h ${incdirs})
107 IF (LIBCONFUSE_INCLUDE_DIR)
108 MESSAGE(STATUS "Found confuse.h in ${LIBCONFUSE_INCLUDE_DIR}")
109 ELSE (LIBCONFUSE_INCLUDE_DIR)
110 MESSAGE (FATAL_ERROR "confuse.h not found.")
111 ENDIF (LIBCONFUSE_INCLUDE_DIR)
113 #############################################
115 #############################################
117 FIND_LIBRARY(LIBPTHREAD pthread ${libdirs})
120 MESSAGE(STATUS "Found libpthread: ${LIBPTHREAD}")
122 MESSAGE (FATAL_ERROR "libpthread not found.")
125 FIND_PATH(LIBPTHREAD_INCLUDE_DIR pthread.h ${incdirs})
127 IF (LIBPTHREAD_INCLUDE_DIR)
128 MESSAGE(STATUS "Found pthread.h in ${LIBPTHREAD_INCLUDE_DIR}")
129 ELSE (LIBPTHREAD_INCLUDE_DIR)
130 MESSAGE (FATAL_ERROR "pthread.h not found.")
131 ENDIF (LIBPTHREAD_INCLUDE_DIR)
133 #############################################
135 #############################################
137 INCLUDE_DIRECTORIES(${incdirs} ${LIBCLAMAV_INCLUDE_DIR} ${LIBDAEMON_INCLUDE_DIR} ${LIBINOTIFYTOOLS_INCLUDE_DIR} ${INOTIFY_INCLUDE_DIR} ${LIBCONFUSE_INCLUDE_DIR} ${LIBPTHREAD_INCLUDE_DIR})
139 #############################################
141 #############################################
143 ADD_EXECUTABLE(inoclam base64.cxx compat.cxx config.cxx clam.cxx jwsmtp.cxx inoclam.cxx inotify.cxx mailer.cpp monitor.cxx signal.cxx smtp.cxx)
145 #############################################
147 #############################################
149 TARGET_LINK_LIBRARIES(inoclam ${LIBCLAMAV} ${LIBDAEMON} ${LIBINOTIFYTOOLS} ${LIBCONFUSE} ${LIBPTHREAD})
151 #############################################
153 #############################################
155 INSTALL(PROGRAMS inoclam DESTINATION sbin)