Ship JWSMTP with inoclam since hardly any distro has packages for it.
[inoclam.git] / src / CMakeLists.txt
blob2974982a879c3383a2d9169776185030715ba688
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 #############################################
22 # libclamav checks
23 #############################################
25 FIND_LIBRARY(LIBCLAMAV clamav ${libdirs})
27 IF (LIBCLAMAV)
28   MESSAGE(STATUS "Found libclamav: ${LIBCLAMAV}")
29 ELSE (LIBCLAMAV)
30   MESSAGE (FATAL_ERROR "libclamav not found.")
31 ENDIF (LIBCLAMAV)
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 #############################################
42 # libdaemon checks
43 #############################################
45 FIND_LIBRARY(LIBDAEMON daemon ${libdirs})
47 IF (LIBDAEMON)
48   MESSAGE(STATUS "Found libdaemon: ${LIBDAEMON}")
49 ELSE (LIBDAEMON)
50   MESSAGE (FATAL_ERROR "libdaemon not found.")
51 ENDIF (LIBDAEMON)
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})
67 IF (LIBINOTIFYTOOLS)
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 #############################################
82 # inotify checks
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 #############################################
94 # libconfuse checks
95 #############################################
97 FIND_LIBRARY(LIBCONFUSE confuse ${libdirs})
99 IF (LIBCONFUSE)
100   MESSAGE(STATUS "Found libconfuse: ${LIBCONFUSE}")
101 ELSE (LIBCONFUSE)
102   MESSAGE (FATAL_ERROR "libconfuse not found.")
103 ENDIF (LIBCONFUSE)
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 #############################################
114 # libpthread checks
115 #############################################
117 FIND_LIBRARY(LIBPTHREAD pthread ${libdirs})
119 IF (LIBPTHREAD)
120   MESSAGE(STATUS "Found libpthread: ${LIBPTHREAD}")
121 ELSE (LIBPTHREAD)
122   MESSAGE (FATAL_ERROR "libpthread not found.")
123 ENDIF (LIBPTHREAD)
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 #############################################
134 # include dirs
135 #############################################
137 INCLUDE_DIRECTORIES(${incdirs} ${LIBCLAMAV_INCLUDE_DIR} ${LIBDAEMON_INCLUDE_DIR} ${LIBINOTIFYTOOLS_INCLUDE_DIR} ${INOTIFY_INCLUDE_DIR} ${LIBCONFUSE_INCLUDE_DIR} ${LIBPTHREAD_INCLUDE_DIR})
139 #############################################
140 # compile
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 #############################################
146 # link
147 #############################################
149 TARGET_LINK_LIBRARIES(inoclam ${LIBCLAMAV} ${LIBDAEMON} ${LIBINOTIFYTOOLS} ${LIBCONFUSE} ${LIBPTHREAD})
151 #############################################
152 # install
153 #############################################
155 INSTALL(PROGRAMS inoclam DESTINATION sbin)