few tweaks about changed defines.
[apps/madmutt.git] / CMakeLists.txt
1 PROJECT(madmutt C)
2 SET(PACKAGE madmutt)
3 SET(CMAKE_MODULE_PATH  ${madmutt_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
4
5 # TODO {{{
6 # USE_SETGID
7 # DOTLOCK_{GROUP,PERMISSION}
8 # ENABLE_NLS
9 SET(ENABLE_NLS 1)
10 # }}}
11
12 INCLUDE(CMakeDetermineCCompiler)
13 include(Cpkg2c)
14 include(XConfig)
15
16 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
17 ADD_DEFINITIONS(-D_GNU_SOURCE)
18 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${madmutt_SOURCE_DIR})
19
20 SET(BINDIR     "${CMAKE_INSTALL_PREFIX}/bin")
21 SET(DATADIR    "${CMAKE_INSTALL_PREFIX}/share")
22 SET(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/madmutt")
23 SET(PKGDOCDIR  "${CMAKE_INSTALL_PREFIX}/share/doc/madmutt")
24 SET(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc")
25 SET(VERSION    "devel")
26 SET(MUTTLIBS   "")
27
28 ADD_DEFINITIONS("-DBINDIR=\\\"${BINDIR}\\\"")
29 ADD_DEFINITIONS("-DPKGDATADIR=\\\"${PKGDATADIR}\\\"")
30 ADD_DEFINITIONS("-DPKGDOCDIR=\\\"${PKGDOCDIR}\\\"")
31 ADD_DEFINITIONS("-DSYSCONFDIR=\\\"${SYSCONFDIR}\\\"")
32 ADD_DEFINITIONS("-DVERSION=\\\"${VERSION}\\\"")
33 ADD_DEFINITIONS("-DMUTTLOCALEDIR=\\\"${DATADIR}/locale\\\"")
34
35 OPTION(WITH_MAILPATH "Where new mail is spooled")
36 OPTION(WITH_GPGME    "Use GPGME [default: on]" ON)
37 OPTION(WITH_NNTP     "Build NNTP support [default: off]")
38 OPTION(WITH_IDN      "Use GNU libidn for domain names [default: off]")
39 OPTION(WITH_LIBESMTP "Use libESMTP [default: off]")
40 OPTION(WITH_SLANG    "Use S-Lang instead of ncurses [default:off]")
41
42 OPTION(USE_FLOCK     "Use flock to lock files [default: off]")
43 OPTION(USE_FCNTL     "Use fcntl to lock files [default: on]" ON)
44 OPTION(USE_HCACHE    "Enable headers caching  [default: off]")
45
46 FIND_FILE(GPERF gperf)
47 FIND_FILE(SENDMAIL sendmail PATHS /usr/sbin /sbin /usr/lib)
48 FIND_FILE(MIXMASTER mixmaster)
49
50 IF(WITH_MAILPATH)
51     SET(MAILPATH ${WITH_MAILPATH})
52 ELSEIF(EXISTS /var/mail)
53     SET(MAILPATH "/var/mail")
54 ELSEIF(EXISTS /var/spool/mail)
55     SET(MAILPATH "/var/spool/mail")
56 ELSEIF(EXISTS /usr/spool/mail)
57     SET(MAILPATH "/usr/spool/mail")
58 ELSEIF(EXISTS /usr/mail)
59     SET(MAILPATH "/usr/mail")
60 ENDIF(WITH_MAILPATH)
61
62 # headers {{{
63 INCLUDE(CheckIncludeFile)
64
65 CHECK_INCLUDE_FILE(alloca.h               HAVE_ALLOCA_H)
66 CHECK_INCLUDE_FILE(argz.h                 HAVE_ARGZ_H)
67 CHECK_INCLUDE_FILE(getopt.h               HAVE_GETOPT_H)
68 CHECK_INCLUDE_FILE(iconv.h                HAVE_ICONV_H)
69 CHECK_INCLUDE_FILE(inttypes.h             HAVE_INTTYPES_H)
70 CHECK_INCLUDE_FILE(ioctl.h                HAVE_IOCTL_H)
71 CHECK_INCLUDE_FILE(langinfo.h             HAVE_LANGINFO_H)
72 CHECK_INCLUDE_FILE(limits.h               HAVE_LIMITS_H)
73 CHECK_INCLUDE_FILE(locale.h               HAVE_LOCALE_H)
74 CHECK_INCLUDE_FILE(memory.h               HAVE_MEMORY_H)
75 CHECK_INCLUDE_FILE(ncurses.h              HAVE_NCURSES_H)
76 CHECK_INCLUDE_FILE(ncurses/ncurses.h      HAVE_NCURSES_NCURSES_H)
77 CHECK_INCLUDE_FILE(ncursesw/ncurses.h     HAVE_NCURSESW_NCURSES_H)
78 CHECK_INCLUDE_FILE(regex.h                HAVE_REGEX_H)
79 CHECK_INCLUDE_FILE(stdarg.h               HAVE_STDARG_H)
80 CHECK_INCLUDE_FILE(stddef.h               HAVE_STDDEF_H)
81 CHECK_INCLUDE_FILE(stdint.h               HAVE_STDINT_H)
82 CHECK_INCLUDE_FILE(stdlib.h               HAVE_STDLIB_H)
83 CHECK_INCLUDE_FILE(string.h               HAVE_STRING_H)
84 CHECK_INCLUDE_FILE(strings.h              HAVE_STRINGS_H)
85 CHECK_INCLUDE_FILE(sysexits.h             HAVE_SYSEXITS_H)
86 CHECK_INCLUDE_FILE(sys/ioctl.h            HAVE_SYS_IOCTL_H)
87 CHECK_INCLUDE_FILE(sys/param.h            HAVE_SYS_PARAM_H)
88 CHECK_INCLUDE_FILE(sys/resource.h         HAVE_SYS_RESOURCE_H)
89 CHECK_INCLUDE_FILE(sys/stat.h             HAVE_SYS_STAT_H)
90 CHECK_INCLUDE_FILE(sys/time.h             HAVE_SYS_TIME_H)
91 CHECK_INCLUDE_FILE(sys/types.h            HAVE_SYS_TYPES_H)
92 CHECK_INCLUDE_FILE(unistd.h               HAVE_UNISTD_H)
93 CHECK_INCLUDE_FILE(unix.h                 HAVE_UNIX_H)
94 CHECK_INCLUDE_FILE(wchar.h                HAVE_WCHAR_H)
95 CHECK_INCLUDE_FILE(wctype.h               HAVE_WCTYPE_H)
96
97 IF(NOT HAVE_ICONV_H)
98     MESSAGE(FATAL_ERROR "inconv.h not found")
99 ENDIF(NOT HAVE_ICONV_H)
100
101 # }}}
102 # types {{{
103
104 INCLUDE(CheckStructMember)
105
106 CHECK_STRUCT_MEMBER("struct dirent" "d_ino" "dirent.h" HAVE_DIRENT_D_INO)
107
108 # }}}
109 # functions {{{
110 INCLUDE (CheckFunctionExists)
111
112 CHECK_FUNCTION_EXISTS(strlimit    HAVE_SETRLIMIT)
113 CHECK_FUNCTION_EXISTS(getsid      HAVE_GETSID)
114 CHECK_FUNCTION_EXISTS(setegid     HAVE_SETEGID)
115 CHECK_FUNCTION_EXISTS(isctype     HAVE_ISCTYPE)
116 CHECK_FUNCTION_EXISTS(getopt      HAVE_GETOPT)
117 CHECK_FUNCTION_EXISTS(regcomp     HAVE_REGCOMP)
118 CHECK_FUNCTION_EXISTS(iswalnum    HAVE_ISWALNUM)
119 CHECK_FUNCTION_EXISTS(iswalpha    HAVE_ISWALPHA)
120 CHECK_FUNCTION_EXISTS(iswcntrl    HAVE_ISWCNTRL)
121 CHECK_FUNCTION_EXISTS(iswdigit    HAVE_ISWDIGIT)
122 CHECK_FUNCTION_EXISTS(iswgraph    HAVE_ISWGRAPH)
123 CHECK_FUNCTION_EXISTS(iswlower    HAVE_ISWLOWER)
124 CHECK_FUNCTION_EXISTS(iswprint    HAVE_ISWPRINT)
125 CHECK_FUNCTION_EXISTS(iswpunct    HAVE_ISWPUNCT)
126 CHECK_FUNCTION_EXISTS(iswspace    HAVE_ISWSPACE)
127 CHECK_FUNCTION_EXISTS(iswupper    HAVE_ISWUPPER)
128 CHECK_FUNCTION_EXISTS(iswxdigit   HAVE_ISWXDIGIT)
129 CHECK_FUNCTION_EXISTS(towupper    HAVE_TOWUPPER)
130 CHECK_FUNCTION_EXISTS(towlower    HAVE_TOWLOWER)
131 CHECK_FUNCTION_EXISTS(nl_langinfo HAVE_LANGINFO_CODESET)
132
133 # }}}
134 # libraries {{{
135 INCLUDE(CheckLibraryExists)
136 INCLUDE(UsePkgConfig)
137
138 IF(WITH_SLANG)
139     IF(EXISTS ${CMAKE_INSTALL_PREFIX}/include/slang)
140         INCLUDE_DIRECTORIES(${CMAKE_INSTALL_PREFIX}/include/slang)
141     ELSEIF(EXISTS /usr/include/slang)
142         INCLUDE_DIRECTORIES(/usr/include/slang)
143     ENDIF(EXISTS ${CMAKE_INSTALL_PREFIX}/include/slang)
144     CHECK_LIBRARY_EXISTS(slang SLtt_get_terminfo "" USE_SLANG_CURSES)
145     IF(NOT USE_SLANG_CURSES)
146         MESSAGE(FATAL_ERROR "s-lang not found")
147     ENDIF(NOT USE_SLANG_CURSES)
148 ELSE(WITH_SLANG)
149     IF(HAVE_NCURSESW_NCURSES_H)
150         SET(CMAKE_REQUIRED_INCLUDES "ncursesw/ncurses.h")
151         SET(MUTTLIBS "${MUTTLIBS} -lncursesw")
152     ELSEIF(HAVE_NCURSES_H)
153         SET(CMAKE_REQUIRED_INCLUDES "ncurses.h")
154         SET(MUTTLIBS "${MUTTLIBS} -lncurses")
155     ELSEIF(HAVE_NCURSES_H OR HAVE_NCURSES_NCURSES_H)
156         SET(CMAKE_REQUIRED_INCLUDES "ncurses/ncurses.h")
157         SET(MUTTLIBS "${MUTTLIBS} -lncurses")
158     ELSE(HAVE_NCURSESW_NCURSES_H)
159         MESSAGE(FATAL_ERROR "could not find ncurses.h")
160     ENDIF(HAVE_NCURSESW_NCURSES_H)
161     SET(CMAKE_REQUIRED_LIBRARIES ${MUTTLIBS})
162     CHECK_FUNCTION_EXISTS(start_color        HAVE_START_COLOR)
163     CHECK_FUNCTION_EXISTS(typeahead          HAVE_TYPEAHEAD)
164     CHECK_FUNCTION_EXISTS(bkgdset            HAVE_BKGDSET)
165     CHECK_FUNCTION_EXISTS(curs_set           HAVE_CURS_SET)
166     CHECK_FUNCTION_EXISTS(meta               HAVE_META)
167     CHECK_FUNCTION_EXISTS(use_default_colors HAVE_USE_DEFAULT_COLORS)
168     CHECK_FUNCTION_EXISTS(resizeterm         HAVE_RESIZETERM)
169     SET(CMAKE_REQUIRED_LIBRARIES)
170     SET(CMAKE_REQUIRED_INCLUDES)
171 ENDIF(WITH_SLANG)
172
173 PKGCONFIG(lua5.1 lua_INCDIR lua_LINKDIR lua_LDFLAGS lua_CFLAGS)
174 MESSAGE(STATUS "found lua5.1 at: INCDIR ${lua_INCDIR}")
175 INCLUDE_DIRECTORIES(${lua_INCDIR})
176 ADD_DEFINITIONS(${lua_CFLAGS})
177 SET(MUTTLIBS "${MUTTLIBS} ${lua_LDFLAGS}")
178
179 IF(WITH_GPGME)
180     XCONFIG(gpgme-config gpgme_INCDIR gpgme_LINKDIR gpgme_LDFLAGS gpgme_CFLAGS)
181     INCLUDE_DIRECTORIES(${gpgme_INCDIR})
182     ADD_DEFINITIONS(${gpgme_CFLAGS})
183     SET(MUTTLIBS "${MUTTLIBS} ${gpgme_LDFLAGS}")
184     SET(HAVE_GPGME 1)
185 ENDIF(WITH_GPGME)
186
187 XCONFIG(libgnutls-config gnutls_INCDIR gnutls_LINKDIR gnutls_LDFLAGS gnutls_CFLAGS)
188 INCLUDE_DIRECTORIES(${gnutls_INCDIR})
189 ADD_DEFINITIONS(${gnutls_CFLAGS})
190 SET(MUTTLIBS "${MUTTLIBS} ${gnutls_LDFLAGS}")
191
192 CHECK_LIBRARY_EXISTS(sasl2 sasl_client_init "" WITH_SASL)
193 IF(NOT WITH_SASL)
194     MESSAGE(FATAL_ERROR "sasl2 not found")
195 ENDIF(NOT WITH_SASL)
196 SET(MUTTLIBS "${MUTTLIBS} -lsasl2")
197
198 IF(WITH_IDN)
199     PKGCONFIG(libidn idn_INCDIR idn_LINKDIR idn_LDFLAGS idn_CFLAGS)
200     SET(MUTTLIBS "${MUTTLIBS} ${idn_LDFLAGS}")
201     SET(HAVE_LIBIDN 1)
202 ENDIF(WITH_IDN)
203
204 IF(USE_HCACHE)
205     OPTION(WITH_QDBM "Use qdbm for header caching [default: on]" ON)
206     OPTION(WITH_GDBM "Use gdbm for header caching [default: off]")
207     SET(USE_HCACHE)
208
209     IF(WITH_QDBM)
210         PKGCONFIG(qdbm qdbm_INCDIR qdbm_LINKDIR qdbm_LDFLAGS qdbm_CFLAGS)
211         IF(qdbm_LDFLAGS)
212             MESSAGE(STATUS "qdbm found")
213         ELSE(qdbm_LDFLAGS)
214             MESSAGE(FATAL_ERROR "qdbm not found")
215         ENDIF(qdbm_LDFLAGS)
216         INCLUDE_DIRECTORIES(${qdbm_INCDIR})
217         ADD_DEFINITIONS(${qdbm_CFLAGS})
218         SET(MUTTLIBS "${MUTTLIBS} ${qdbm_LDFLAGS}")
219         SET(USE_HCACHE 1)
220         SET(HAVE_QDBM 1)
221     ENDIF(WITH_QDBM)
222
223     IF(NOT USE_HCACHE AND WITH_GDBM)
224         CHECK_LIBRARY_EXISTS(gdbm gdbm_open "" GDBM)
225         IF(NOT GDBM)
226             MESSAGE(FATAL_ERROR "gdbm not found")
227         ENDIF(NOT GDBM)
228         SET(MUTTLIBS "${MUTTLIBS} -lgdbm")
229         SET(USE_HCACHE 1)
230         SET(HAVE_GDBM 1)
231     ENDIF(NOT USE_HCACHE AND WITH_GDBM)
232
233     IF(NOT USE_HCACHE)
234         MESSAGE(FATAL_ERROR "no backend for header caching selected")
235     ENDIF(NOT USE_HCACHE)
236 ENDIF(USE_HCACHE)
237
238 IF(WITH_LIBESMTP)
239     SET(USE_LIBESMTP 1)
240     SET(MUTTLIBS "${MUTTLIBS} -lesmtp")
241 ENDIF(WITH_LIBESMTP)
242
243 IF(WITH_NNTP)
244     SET(USE_NNTP 1)
245     MESSAGE(STATUS "building NNTP support")
246 ENDIF(WITH_NNTP)
247
248 # }}}
249 # C flags {{{
250 # big debug flags
251 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -ggdb3")
252 # Use pipes and not temp files.
253 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe")
254 # optimize even more
255 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
256 # let the type char be unsigned by default
257 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -funsigned-char")
258 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrict-aliasing")
259 # turn on all common warnings
260 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
261 # turn on extra warnings
262 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -W")
263 # treat warnings as errors
264 #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
265 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wchar-subscripts")
266 # warn about undefined preprocessor identifiers
267 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wundef")
268 # warn about local variable shadowing another local variable
269 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow")
270 # warn about casting of pointers to increased alignment requirements
271 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-align")
272 # make string constants const
273 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wwrite-strings")
274 # warn about comparisons between signed and unsigned values
275 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wsign-compare")
276 # warn about unused declared stuff
277 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused")
278 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter")
279 # warn about variable use before initialization
280 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wuninitialized")
281 # warn about variables which are initialized with themselves
282 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Winit-self")
283 # warn about pointer arithmetic on void* and function pointers
284 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wpointer-arith")
285 # warn about multiple declarations
286 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wredundant-decls")
287 # warn if the format string is not a string literal
288 #SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-nonliteral")
289 # do not warn about zero-length formats.
290 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-format-zero-length")
291 # missing prototypes
292 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
293 # warn about functions without format attribute that should have one
294 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-format-attribute")
295 # }}}
296
297 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
298
299 # we generate some includes
300 ADD_SUBDIRECTORY(lib-lib)
301 ADD_SUBDIRECTORY(lib-mime)
302 ADD_SUBDIRECTORY(lib-sys)
303 ADD_SUBDIRECTORY(lib-ui)
304 ADD_SUBDIRECTORY(imap)
305 IF(WITH_NNTP)
306     ADD_SUBDIRECTORY(nntp)
307 ENDIF(WITH_NNTP)
308 ADD_SUBDIRECTORY(lib-mx)
309 ADD_SUBDIRECTORY(lib-lua)
310
311 MADMUTT_SOURCES(madmuttsrc madmuttgen
312     alias.cpkg
313     buffy.cpkg
314     charset.cpkg
315     crypt.cpkg
316
317     account.c
318     attach.c
319     base64.c
320     browser.c
321     commands.c
322     compose.c
323     copy.c
324     editmsg.c
325     flags.c
326     from.c
327     handler.c
328     headers.c
329     help.c
330     hook.c
331     init.c
332     keymap.c
333     mutt_idna.c
334     muttlib.c
335     mutt_sasl.c
336     pager.c
337     pattern.c
338     pop.c
339     postpone.c
340     recvattach.c
341     recvcmd.c
342     remailer.c
343     score.c
344     send.c
345     sendlib.c
346     send_smtp.c
347     sort.c
348     state.c
349     thread.c
350
351     main.c
352 )
353
354 ADD_EXECUTABLE(madmutt ${madmuttsrc})
355 IF(WITH_NNTP)
356     TARGET_LINK_LIBRARIES(madmutt mime sys mx lua imap nntp ui lib)
357 ELSE(WITH_NNTP)
358     TARGET_LINK_LIBRARIES(madmutt mime sys mx lua imap ui lib)
359 ENDIF(WITH_NNTP)
360 SET_TARGET_PROPERTIES(madmutt PROPERTIES LINK_FLAGS ${MUTTLIBS})
361
362 ADD_EXECUTABLE(madmutt_dotlock dotlock.c)
363 TARGET_LINK_LIBRARIES(madmutt_dotlock lib)
364
365 # generate_files hack {{{
366
367 ADD_CUSTOM_COMMAND(
368     OUTPUT  ${madmutt_SOURCE_DIR}/keymap_defs.h
369     DEPENDS ${madmutt_SOURCE_DIR}/OPS
370     COMMAND ${madmutt_SOURCE_DIR}/gen_defs ${madmutt_SOURCE_DIR}/OPS > ${madmutt_SOURCE_DIR}/keymap_defs.h
371     COMMENT "Generating ${madmutt_SOURCE_DIR}/keymap_defs.h from ${madmutt_SOURCE_DIR}/OPS"
372 )
373 ADD_CUSTOM_COMMAND(
374     OUTPUT  ${madmutt_SOURCE_DIR}/charset.gperf
375     DEPENDS ${madmutt_SOURCE_DIR}/charset.def
376     COMMAND sh ${madmutt_SOURCE_DIR}/charset.def > ${madmutt_SOURCE_DIR}/charset.gperf
377     COMMENT "Generating ${madmutt_SOURCE_DIR}/charset.gperf from ${madmutt_SOURCE_DIR}/charset.def"
378 )
379 SET(__mt ${CMAKE_CURRENT_SOURCE_DIR}/lib-mime/mime-token)
380 ADD_CUSTOM_COMMAND(
381     OUTPUT ${__mt}.h
382     MAIN_DEPENDENCY ${__mt}.sh ${__mt}.def
383     COMMAND sh ${__mt}.sh ${__mt}.h < ${__mt}.def
384     COMMENT "Generating ${__mt}.h from ${__mt}.def"
385 )
386 SET(__lt ${CMAKE_CURRENT_SOURCE_DIR}/lib-lua/lua-token)
387 ADD_CUSTOM_COMMAND(
388     OUTPUT ${__lt}.h
389     MAIN_DEPENDENCY ${__lt}.gperf
390     COMMAND sh ${__lt}.gperf ${__lt}.h || \(${RM} ${__lt}.h; exit 1\)
391     COMMENT "Generating ${__lt}.h from ${__lt}.gperf"
392 )
393 SET(__lm ${CMAKE_CURRENT_SOURCE_DIR}/lib-lua/madmutt)
394 ADD_CUSTOM_COMMAND(
395     OUTPUT ${__lm}.li
396     MAIN_DEPENDENCY ${__lm}.cpkg
397     COMMAND ${madmutt_SOURCE_DIR}/tools/cpkg2c -h ${__lm}.cpkg > ${__lm}.li || \(${RM} ${__lm}.li; exit 1\)
398     COMMENT "Generating ${__lm}.li from ${__lm}.cpkg"
399 )
400 ADD_CUSTOM_TARGET(
401     generate_files
402     DEPENDS
403         ${madmuttgen}
404         ${madmutt_SOURCE_DIR}/keymap_defs.h
405         ${madmutt_SOURCE_DIR}/charset.gperf
406         ${madmutt_SOURCE_DIR}/lib-mime/mime-token.h
407         ${madmutt_SOURCE_DIR}/lib-lua/lua-token.h
408         ${madmutt_SOURCE_DIR}/lib-lua/madmutt.li
409 )
410 ADD_DEPENDENCIES(madmutt generate_files)
411
412 # }}}