small updates.
[apps/madmutt.git] / CMakeLists.txt
index 25ded1b..c4570ac 100644 (file)
@@ -1,10 +1,12 @@
 PROJECT(madmutt C)
+SET(PACKAGE madmutt)
 SET(CMAKE_MODULE_PATH  ${madmutt_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
 
 # TODO {{{
 # USE_SETGID
 # DOTLOCK_{GROUP,PERMISSION}
-# HAVE_DIRENT_D_INO
+# ENABLE_NLS
+SET(ENABLE_NLS 1)
 # }}}
 
 INCLUDE(CMakeDetermineCCompiler)
@@ -16,6 +18,7 @@ ADD_DEFINITIONS(-D_GNU_SOURCE)
 INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR} ${madmutt_SOURCE_DIR})
 
 SET(BINDIR     "${CMAKE_INSTALL_PREFIX}/bin")
+SET(DATADIR    "${CMAKE_INSTALL_PREFIX}/share")
 SET(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/madmutt")
 SET(PKGDOCDIR  "${CMAKE_INSTALL_PREFIX}/share/doc/madmutt")
 SET(SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/etc")
@@ -27,8 +30,9 @@ ADD_DEFINITIONS("-DPKGDATADIR=\\\"${PKGDATADIR}\\\"")
 ADD_DEFINITIONS("-DPKGDOCDIR=\\\"${PKGDOCDIR}\\\"")
 ADD_DEFINITIONS("-DSYSCONFDIR=\\\"${SYSCONFDIR}\\\"")
 ADD_DEFINITIONS("-DVERSION=\\\"${VERSION}\\\"")
+ADD_DEFINITIONS("-DMUTTLOCALEDIR=\\\"${DATADIR}/locale\\\"")
 
-OPTION(WITH_MAILPATH "Where new mail is spooled")
+SET(MAILPATH         CACHE STRING "Where new mail is spooled")
 OPTION(WITH_GPGME    "Use GPGME [default: on]" ON)
 OPTION(WITH_NNTP     "Build NNTP support [default: off]")
 OPTION(WITH_IDN      "Use GNU libidn for domain names [default: off]")
@@ -39,21 +43,28 @@ OPTION(USE_FLOCK     "Use flock to lock files [default: off]")
 OPTION(USE_FCNTL     "Use fcntl to lock files [default: on]" ON)
 OPTION(USE_HCACHE    "Enable headers caching  [default: off]")
 
-FIND_FILE(GPERF gperf)
-FIND_FILE(SENDMAIL sendmail PATHS /usr/sbin /sbin /usr/lib)
-FIND_FILE(MIXMASTER mixmaster)
-
-IF(WITH_MAILPATH)
-    SET(MAILPATH ${WITH_MAILPATH})
-ELSEIF(EXISTS /var/mail)
-    SET(MAILPATH "/var/mail")
-ELSEIF(EXISTS /var/spool/mail)
-    SET(MAILPATH "/var/spool/mail")
-ELSEIF(EXISTS /usr/spool/mail)
-    SET(MAILPATH "/usr/spool/mail")
-ELSEIF(EXISTS /usr/mail)
-    SET(MAILPATH "/usr/mail")
-ENDIF(WITH_MAILPATH)
+FIND_FILE(SENDMAIL sendmail
+    PATHS /usr/sbin /sbin /usr/lib
+    DOC   "path to sendmail executable"
+)
+FIND_FILE(MIXMASTER mixmaster DOC "path to mixmaster")
+IF(NOT MIXMASTER)
+    SET(MIXMASTER "mixmaster")
+ENDIF(NOT MIXMASTER)
+
+IF(NOT MAILPATH)
+    IF(EXISTS /var/mail)
+        SET(MAILPATH "/var/mail")
+    ELSEIF(EXISTS /var/spool/mail)
+        SET(MAILPATH "/var/spool/mail")
+    ELSEIF(EXISTS /usr/spool/mail)
+        SET(MAILPATH "/usr/spool/mail")
+    ELSEIF(EXISTS /usr/mail)
+        SET(MAILPATH "/usr/mail")
+    ELSE(EXISTS /var/mail)
+        MESSAGE(FATAL_ERROR "Unable to determine MAILPATH")
+    ENDIF(EXISTS /var/mail)
+ENDIF(NOT MAILPATH)
 
 # headers {{{
 INCLUDE(CheckIncludeFile)
@@ -94,12 +105,20 @@ IF(NOT HAVE_ICONV_H)
     MESSAGE(FATAL_ERROR "inconv.h not found")
 ENDIF(NOT HAVE_ICONV_H)
 
+# }}}
+# types {{{
+
+INCLUDE(CheckStructMember)
+
+CHECK_STRUCT_MEMBER("struct dirent" "d_ino" "dirent.h" HAVE_DIRENT_D_INO)
+
 # }}}
 # functions {{{
 INCLUDE (CheckFunctionExists)
 
 CHECK_FUNCTION_EXISTS(strlimit    HAVE_SETRLIMIT)
 CHECK_FUNCTION_EXISTS(getsid      HAVE_GETSID)
+CHECK_FUNCTION_EXISTS(setegid     HAVE_SETEGID)
 CHECK_FUNCTION_EXISTS(isctype     HAVE_ISCTYPE)
 CHECK_FUNCTION_EXISTS(getopt      HAVE_GETOPT)
 CHECK_FUNCTION_EXISTS(regcomp     HAVE_REGCOMP)
@@ -169,6 +188,7 @@ IF(WITH_GPGME)
     INCLUDE_DIRECTORIES(${gpgme_INCDIR})
     ADD_DEFINITIONS(${gpgme_CFLAGS})
     SET(MUTTLIBS "${MUTTLIBS} ${gpgme_LDFLAGS}")
+    SET(HAVE_GPGME 1)
 ENDIF(WITH_GPGME)
 
 XCONFIG(libgnutls-config gnutls_INCDIR gnutls_LINKDIR gnutls_LDFLAGS gnutls_CFLAGS)
@@ -227,10 +247,10 @@ IF(WITH_LIBESMTP)
     SET(MUTTLIBS "${MUTTLIBS} -lesmtp")
 ENDIF(WITH_LIBESMTP)
 
-IF(WITH_NNTP)
+IF(WITH_NNTP AND NOT USE_NNTP)
     SET(USE_NNTP 1)
     MESSAGE(STATUS "building NNTP support")
-ENDIF(WITH_NNTP)
+ENDIF(WITH_NNTP AND NOT USE_NNTP)
 
 # }}}
 # C flags {{{
@@ -353,7 +373,7 @@ TARGET_LINK_LIBRARIES(madmutt_dotlock lib)
 
 ADD_CUSTOM_COMMAND(
     OUTPUT  ${madmutt_SOURCE_DIR}/keymap_defs.h
-    DEPENDS ${madmutt_SOURCE_DIR}/OPS
+    DEPENDS ${madmutt_SOURCE_DIR}/OPS ${madmutt_SOURCE_DIR}/gen_defs
     COMMAND ${madmutt_SOURCE_DIR}/gen_defs ${madmutt_SOURCE_DIR}/OPS > ${madmutt_SOURCE_DIR}/keymap_defs.h
     COMMENT "Generating ${madmutt_SOURCE_DIR}/keymap_defs.h from ${madmutt_SOURCE_DIR}/OPS"
 )
@@ -363,21 +383,21 @@ ADD_CUSTOM_COMMAND(
     COMMAND sh ${madmutt_SOURCE_DIR}/charset.def > ${madmutt_SOURCE_DIR}/charset.gperf
     COMMENT "Generating ${madmutt_SOURCE_DIR}/charset.gperf from ${madmutt_SOURCE_DIR}/charset.def"
 )
-SET(__mt ${CMAKE_CURRENT_SOURCE_DIR}/lib-mime/mime-token)
+SET(__mt ${madmutt_SOURCE_DIR}/lib-mime/mime-token)
 ADD_CUSTOM_COMMAND(
     OUTPUT ${__mt}.h
     MAIN_DEPENDENCY ${__mt}.sh ${__mt}.def
     COMMAND sh ${__mt}.sh ${__mt}.h < ${__mt}.def
     COMMENT "Generating ${__mt}.h from ${__mt}.def"
 )
-SET(__lt ${CMAKE_CURRENT_SOURCE_DIR}/lib-lua/lua-token)
+SET(__lt ${madmutt_SOURCE_DIR}/lib-lua/lua-token)
 ADD_CUSTOM_COMMAND(
     OUTPUT ${__lt}.h
     MAIN_DEPENDENCY ${__lt}.gperf
     COMMAND sh ${__lt}.gperf ${__lt}.h || \(${RM} ${__lt}.h; exit 1\)
     COMMENT "Generating ${__lt}.h from ${__lt}.gperf"
 )
-SET(__lm ${CMAKE_CURRENT_SOURCE_DIR}/lib-lua/madmutt)
+SET(__lm ${madmutt_SOURCE_DIR}/lib-lua/madmutt)
 ADD_CUSTOM_COMMAND(
     OUTPUT ${__lm}.li
     MAIN_DEPENDENCY ${__lm}.cpkg