summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <qball@gmpclient.org>2023-03-27 00:24:51 +0200
committerDave Davenport <qball@gmpclient.org>2023-03-27 00:24:51 +0200
commitfeb173a4ea10d166fec62bc4d7b0d1c43559d3f0 (patch)
tree3c3b2f9d2f1f78bbfcf3c361e7f2fd077b94fc85
parent9482f3c50807e5c2d853bb6ab76bb7b65eac20d4 (diff)
[DOC] Update INSTALL,md with remark-lint fixes.
-rw-r--r--INSTALL.md170
1 files changed, 124 insertions, 46 deletions
diff --git a/INSTALL.md b/INSTALL.md
index 4e305095..0a8870d6 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,6 +1,7 @@
# Installation guide
-This guide explains how to install rofi using its build system and how you can make debug builds.
+This guide explains how to install rofi using its build system and how you can
+make debug builds.
Rofi uses autotools (GNU Build system), for more information see
[here](https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html).
@@ -8,41 +9,64 @@ You can also use [Meson](https://mesonbuild.com/) as an alternative.
## DEPENDENCY
-### For building:
+### For building
-* C compiler that supports the c99 standard. (gcc or clang)
-* make
-* autoconf
-* automake (1.11.3 or up)
-* pkg-config
-* flex 2.5.39 or higher
-* bison
-* check (Can be disabled using the `--disable-check` configure flag)
+- C compiler that supports the c99 standard. (gcc or clang)
+
+- make
+
+- autoconf
+
+- automake (1.11.3 or up)
+
+- pkg-config
+
+- flex 2.5.39 or higher
+
+- bison
+
+- check (Can be disabled using the `--disable-check` configure flag)
check is used for build-time tests and does not affect functionality.
-* Developer packages of the external libraries
-* glib-compile-resources
+
+- Developer packages of the external libraries
+
+- glib-compile-resources
### External libraries
-* libpango >= 1.50
-* libpangocairo
-* libcairo
-* libcairo-xcb
-* libglib2.0 >= 2.68
- * gmodule-2.0
- * gio-unix-2.0
-* libgdk-pixbuf-2.0
-* libstartup-notification-1.0
-* libxkbcommon >= 0.4.1
-* libxkbcommon-x11
-* libxcb (sometimes split, you need libxcb, libxcb-xkb and libxcb-randr libxcb-xinerama)
-* xcb-util
-* xcb-util-wm (sometimes split as libxcb-ewmh and libxcb-icccm)
-* xcb-util-cursor
-* xcb-imdkit (optional, 1.0.3 or up preferred)
-
-On debian based systems, the developer packages are in the form of: `<package>-dev` on rpm based
-`<package>-devel`.
+- libpango >= 1.50
+
+- libpangocairo
+
+- libcairo
+
+- libcairo-xcb
+
+- libglib2.0 >= 2.68
+ - gmodule-2.0
+ - gio-unix-2.0
+
+- libgdk-pixbuf-2.0
+
+- libstartup-notification-1.0
+
+- libxkbcommon >= 0.4.1
+
+- libxkbcommon-x11
+
+- libxcb (sometimes split, you need libxcb, libxcb-xkb and libxcb-randr
+ libxcb-xinerama)
+
+- xcb-util
+
+- xcb-util-wm (sometimes split as libxcb-ewmh and libxcb-icccm)
+
+- xcb-util-cursor
+
+- xcb-imdkit (optional, 1.0.3 or up preferred)
+
+On debian based systems, the developer packages are in the form of:
+`<package>-dev` on rpm based `<package>-devel`.
## Install from a release
@@ -50,59 +74,79 @@ On debian based systems, the developer packages are in the form of: `<package>-d
Create a build directory and enter it:
+```bash
mkdir build && cd build
+```
Check dependencies and configure build system:
+```bash
../configure
+```
Build Rofi:
+```bash
make
+```
The actual install, execute as root (if needed):
+```bash
make install
+```
-The default installation prefix is: `/usr/local/` use `./configure --prefix={prefix}` to install into another location.
+The default installation prefix is: `/usr/local/` use `./configure
+--prefix={prefix}` to install into another location.
### Meson
Check dependencies and configure build system:
+```bash
meson setup build
+```
Build Rofi:
+```bash
ninja -C build
+```
The actual install, execute as root (if needed):
+```bash
ninja -C build install
+```
-The default installation prefix is: `/usr/local/` use `meson setup build --prefix={prefix}` to install into another location.
+The default installation prefix is: `/usr/local/` use `meson setup build
+--prefix={prefix}` to install into another location.
## Install a checkout from git
The GitHub Pages version of these directions may be out of date. Please use
[INSTALL.md from the online repo][master-install] or your local repository.
-[master-install]: https://github.com/DaveDavenport/rofi/blob/master/INSTALL.md#install-a-checkout-from-git
-
If you don't have a checkout:
+```bash
git clone --recursive https://github.com/DaveDavenport/rofi
cd rofi/
+```
If you already have a checkout:
+```bash
cd rofi/
git pull
git submodule update --init
+```
For Autotools you have an extra step, to generate build system:
+```bash
autoreconf -i
+```
From this point, use the same steps you use for a release.
@@ -112,36 +156,45 @@ When you run the configure step there are several options you can configure.
For Autotools, you can see the full list with `./configure --help`.
-For Meson, before the initial setup, you can see rofi options in `meson_options.txt` and Meson options with `meson setup --help`.
-Meson's built-in options can be set using regular command line arguments, like so: `meson setup build --option=value`.
-Rofi-specific options can be set using the `-D` argument, like so: `meson setup build -Doption=value`.
-After the build dir is set up by `meson setup build`, the `meson configure build` command can be used to configure options, by the same means.
+For Meson, before the initial setup, you can see rofi options in
+`meson_options.txt` and Meson options with `meson setup --help`. Meson's
+built-in options can be set using regular command line arguments, like so:
+`meson setup build --option=value`. Rofi-specific options can be set using the
+`-D` argument, like so: `meson setup build -Doption=value`. After the build dir
+is set up by `meson setup build`, the `meson configure build` command can be
+used to configure options, by the same means.
The most useful one to set is the installation prefix:
+```bash
# Autotools
../configure --prefix=<installation path>
# Meson
meson setup build --prefix <installation path>
+```
f.e.
+```bash
# Autotools
../configure --prefix=/usr/
# Meson
meson setup build --prefix /usr
+```
### Install locally
or to install locally:
+```bash
# Autotools
../configure --prefix=${HOME}/.local/
# Meson
meson setup build --prefix ${HOME}/.local
+```
## Options for make
@@ -151,38 +204,45 @@ When you run make you can tweak the build process a little.
Show the commands called:
+```bash
# Autotools
make V=1
# Meson
ninja -C build -v
+```
### Debug build
-Compile with debug symbols and no optimization, this is useful for making backtraces:
+Compile with debug symbols and no optimization, this is useful for making
+backtraces:
+```bash
# Autotools
make CFLAGS="-O0 -g3" clean rofi
# Meson
meson configure build --debug
ninja -C build
+```
### Get a backtrace
-Getting a backtrace using GDB is not very handy. Because if rofi get stuck, it grabs keyboard and
-mouse. So if it crashes in GDB you are stuck.
-The best way to go is to enable core file. (ulimit -c unlimited in bash) then make rofi crash. You
-can then load the core in GDB.
+Getting a backtrace using GDB is not very handy. Because if rofi get stuck, it
+grabs keyboard and mouse. So if it crashes in GDB you are stuck. The best way
+to go is to enable core file. (ulimit -c unlimited in bash) then make rofi
+crash. You can then load the core in GDB.
+```bash
# Autotools
gdb rofi core
# Meson (because it uses a separate build directory)
gdb build/rofi core
+```
-> Where the core file is located and what its exact name is different on each distributions. Please consult the
-> relevant documentation.
+> Where the core file is located and what its exact name is different on each
+> distributions. Please consult the relevant documentation.
For more information see the rofi-debugging(5) manpage.
@@ -190,26 +250,36 @@ For more information see the rofi-debugging(5) manpage.
### Debian or Ubuntu
+```bash
apt install rofi
+````
### Fedora
+```bash
dnf install rofi
+````
### ArchLinux
+```bash
pacman -S rofi
+````
### Gentoo
An ebuild is available, `x11-misc/rofi`. It's up to date, but you may need to
enable ~arch to get the latest release:
+```bash
echo 'x11-misc/rofi ~amd64' >> /etc/portage/package.accept_keywords
+````
for amd64 or:
+```bash
echo 'x11-misc/rofi ~x86' >> /etc/portage/package.accept_keywords
+````
for i386.
@@ -219,14 +289,22 @@ To install it, simply issue `emerge rofi`.
On both openSUSE Leap and openSUSE Tumbleweed rofi can be installed using:
+```bash
sudo zypper install rofi
+````
### FreeBSD
+```bash
sudo pkg install rofi
+````
### macOS
On macOS rofi can be installed via [MacPorts](https://www.macports.org):
+```bash
sudo port install rofi
+```
+
+[master-install]: https://github.com/DaveDavenport/rofi/blob/master/INSTALL.md#install-a-checkout-from-git