changeset 1108:a09d4c9b8518

misc: improve meta files
author David Demelier <markand@malikania.fr>
date Wed, 20 Oct 2021 15:45:18 +0200
parents 02c1b78b9b58
children 251976043986
files .gitignore .hgignore INSTALL.md README.md
diffstat 4 files changed, 52 insertions(+), 58 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.gitignore	Wed Oct 20 15:45:18 2021 +0200
@@ -0,0 +1,10 @@
+# vim/emacs specific.
+tags
+tags.lock
+tags.temp
+cscope.out
+.swp
+.swo
+
+# macOS specific.
+.DS_Store
--- a/.hgignore	Wed Oct 20 15:07:37 2021 +0200
+++ b/.hgignore	Wed Oct 20 15:45:18 2021 +0200
@@ -1,6 +1,3 @@
-# CMake files.
-^build
-
 # vim/emacs specific.
 ^tags$
 ^tags\.lock$
--- a/INSTALL.md	Wed Oct 20 15:07:37 2021 +0200
+++ b/INSTALL.md	Wed Oct 20 15:45:18 2021 +0200
@@ -9,8 +9,8 @@
 Build dependencies:
 
 - C99 and few features from C11 (stdatomics.h, stdnoreturn.h).
-- [Bison][] and [Flex][]: For configuration files.
-- [GNU Make][]: The GNU make utility.
+- [Bison][] and [Flex][]: for configuration files.
+- [CMake][]: the cross platform build utility.
 
 Optional runtime dependencies:
 
@@ -22,63 +22,48 @@
 
 This is the quick way to install irccd.
 
-    tar xvzf irccd-x.y.z-tar.xz
-    cd irccd-x.y.z
-    make
-    sudo make install
-
-### Installing plugins
-
-And to install plugins you must build and use `plugins` and `install-plugins`
-targets:
+	tar xvzf irccd-x.y.z-tar.xz
+	cmake -S irccd-x.y.z -B build
+	cmake --build build --target all
+	sudo cmake --build build --target install
 
-    make plugins
-    sudo make install-plugins
+### Disabling plugins
 
-Alternatively you can build and install plugins manually using `plugin-NAME` and
-`install-plugin-NAME` to install only wanted plugins.
+For every plugin, an option `IRCCD_WITH_PLUGIN_<NAME>` is presented and set to
+on by default. Substitute `<NAME>` with the plugin uppercase name (e.g. `ASK`).
 
-Example:
-
-    make plugin-ask plugin-links
-    sudo make install-plugin-ask plugin-links
+	cmake build -DIRCCD_WITH_PLUGIN_ASK=Off
 
 ### Systemd service
 
-A systemd service is available through the `install-systemd` target. The service
-file is named `irccd.service`.
+The systemd service file is installed by default if the machine is running
+systemd, it's possible to force the option using `IRCCD_WITH_SYSTEMD` to `On` or
+`Off`.
 
-Options
--------
+	cmake build -DIRCCD_WITH_SYSTEMD=Off
 
-The following options are available at build time (make sure to run `make clean`
-when you change options).
+### Other options
+
+The following options are available:
 
-- `SSL`: set to 1 or 0 to enable/disable OpenSSL (default: 1).
-- `JS`: set to 1 or 0 to disable Javascript (default: 1).
-- `DEBUG`: set to 1 or 0 to build with debug symbols and optimizations disabled
-  (default: 0).
-- `USER`: user to use for transport and init scripts (default: nobody).
-- `GROUP`: group to use for transport and init scripts (default: nobody).
+- `IRCCD_WITH_MAN`: disable installation of manpages.
+- `IRCCD_WITH_JS`: disable Javascript support (and all Javascript plugins).
+- `IRCCD_WITH_SSL`: disable OpenSSL support.
+- `IRCCD_WITH_TESTS`: disable building of tests.
+- `IRCCD_WITH_EXAMPLES`: disable plugin templates.
 
-You can tweak the installation directories by changing the following variables
-(note: all paths must be absolute):
+The following options control installation directories.
 
-- `PREFIX`: root directory for installing (default: /usr/local).
-- `BINDIR`: binaries (default: ${PREFIX}/bin).
-- `ETCDIR`: config files (default: ${PREFIX}/etc).
-- `LIBDIR`: libraries (default: ${PREFIX}/lib).
-- `INCDIR`: header files (default: ${PREFIX}/include).
-- `SHAREDIR`: data files (default: ${PREFIX}/share).
-- `MANDIR`: path to manual pages (default: ${PREFIX}/share/man).
-- `VARDIR`: local cache files (default: ${PREFIX}/var).
-
-For any options, make sure to specify them for any make targets (e.g. `install`)
-because they can be translated at install time too.
+- `CMAKE_INSTALL_PREFIX`: root directory for installing (default: /usr/local).
+- `CMAKE_INSTALL_BINDIR`: binaries (default: ${CMAKE_INSTALL_PREFIX}/bin).
+- `CMAKE_INSTALL_SYSCONFDIR`: config files (default: ${CMAKE_INSTALL_PREFIX}/etc).
+- `CMAKE_INSTALL_LIBDIR`: libraries (default: ${CMAKE_INSTALL_PREFIX}/lib).
+- `CMAKE_INSTALL_INCLUDEDIR`: header files (default: ${CMAKE_INSTALL_PREFIX}/include).
+- `CMAKE_INSTALL_SHAREDIR`: data files (default: ${CMAKE_INSTALL_PREFIX}/share).
+- `CMAKE_INSTALL_MANDIR`: path to manual pages (default: ${CMAKE_INSTALL_PREFIX}/share/man).
 
 [Bison]: https://www.gnu.org/software/bison
-[GNU Make]: http://www.cmake.org
+[CMake]: http://www.cmake.org
 [CURL]: https://curl.se
 [Flex]: https://github.com/westes/flex
 [OpenSSL]: http://openssl.org
-[libbsd]: https://libbsd.freedesktop.org/wiki
--- a/README.md	Wed Oct 20 15:07:37 2021 +0200
+++ b/README.md	Wed Oct 20 15:45:18 2021 +0200
@@ -1,25 +1,27 @@
 IRC Client Daemon
 =================
 
-IRC Client Daemon aka irccd is a full featured IRC bot written in C. It runs as
-a daemon waiting for events. It's also possible to connect to more than one
-server.
+IRC Client Daemon aka irccd is a full featured IRC bot written in C.
+
+It runs as a daemon waiting for events. It's also possible to connect to more
+than one server with the same instance. It is designed in mind to be simple,
+fast and easy to use.
 
-Irccd is also able to use optional Javascript plugins to do specific actions on
-these events.
+Irccd is also able to use optional Javascript plugins to write convenient
+plugins with system sandboxing.
 
-Irccd is also controllable via unix sockets allowing you use irccd as a message
-relayer and such.
+Irccd is also controllable via unix sockets or through its dedicated `irccdctl`
+utility allowing you to use irccd as a message relayer and such.
 
 Features
 --------
 
+- Simple, fast, clean and lightweight,
 - Can use Javascript to create plugins,
 - Can connect to multiple servers,
 - Can be controlled by sockets and irccdctl,
 - Extremely well documented,
 - Clean and powerful Javascript API,
-- Very fast and light.
 
 Documentation
 -------------
@@ -30,4 +32,4 @@
 Author
 ------
 
-The irccd application was written by David Demelier <markand@malikania.fr>
+The irccd application was written by David Demelier <markand@malikania.fr>.