1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00
irssi/INSTALL
ailin-nemui 01ecb879a6 Add support for building in Termux-Android in meson
- introduce cross perl
- workaround for the android linker
2020-06-02 10:38:01 +02:00

147 lines
4.5 KiB
Plaintext

Irssi installation instructions
-------------------------------
To compile Irssi you need:
- meson-0.49 build system with ninja-1.5 or greater
- glib-2.28 or greater
- openssl (for ssl support)
- perl-5.6 or greater (for Perl support)
- terminfo or ncurses (for text frontend)
For most people, this should work just fine:
meson Build
ninja -C Build
su
ninja -C Build install
For the moment, autotools is also supported:
./autogen.sh (for people who just cloned the repository)
./configure (if this script already exists, skip ./autogen.sh)
make
su
make install (not _really_ required except for perl support)
configure options
These options can be given to meson or ./configure.
The first syntax is for meson, the 2nd for ./configure
For a complete list of options, run
meson configure / ./configure --help
--prefix
Specifies the path where Irssi will be installed.
YES, you can install Irssi WITHOUT ROOT permissions
by using --prefix=/home/dir
-Dwith-proxy=yes / --with-proxy
Build the Irssi proxy (see startup-HOWTO).
-Dwith-perl=[yes|no] / --with-perl=[yes|no|module]
Enable Perl support
yes enable builtin (default)
no disable
module enable as module
-Dwith-perl-lib=[site|vendor|DIR] / --with-perl-lib=[site|vendor|DIR]
Specify installation dir for Perl libraries
site install in dir for site-specific modules (default)
vendor install in dir for vendor-specific modules
DIR install in DIR
[N/A] / --with-socks
Build with socks library
-Dwith-bot=yes / --with-bot
Build irssi-bot
-Dwithout-textui=yes / --without-textui
Build without text frontend
If anything is in non-standard path, you can just give the paths in
the -Dc_args and -Dc_link_args options variable, eg.:
meson Build -Dc_args='-I/opt/openssl/include' -Dc_link_args='-L/opt/openssl/lib'
Perl problems
-------------
Perl support generates most of the problems. There's quite a many
things that can go wrong:
- Compiling fails if you compile irssi with GCC in a system that has
perl compiled with some other C compiler. Very common problem with
non-Linux/BSD systems. You'll need to edit src/perl/*/Makefile files
and remove the parameters that gcc doesn't like. Mostly you'll just
need to keep the -I and -D parameters and add -fPIC.
- If there's any weird crashing at startup, you might have older irssi's
perl libraries installed somewhere, and you should remove those.
- Dynamic libraries don't want to work with some systems, so if your
system complains about some missing symbol in Irssi.so file, configure
irssi with --with-perl-staticlib option (NOT same as --with-perl=static).
- If configure complains that it doesn't find some perl stuff, you're
probably missing libperl.so or libperl.a. In debian, you'll need to do
apt-get install libperl-dev
- For unprivileged home directory installations, you probably do not want
to specify --with-perl-lib=(site|vendor). Instead, you can use the
default perl installation target (below the irssi prefix). If you are
using local::lib you can also choose to install there by specifying
--with-perl-lib=$PERL_LOCAL_LIB_ROOT/lib/perl5
You can verify that the perl module is loaded and working with "/LOAD"
command. It should print something like:
Module Type Submodules
...
perl static core fe
System specific notes
---------------------
Android
When cross compiling Irssi for Android, you can specify the path of
the cross-perl in the cross file.
You may not have a cross-perl available. In that case, you will have
to manually supply the required Perl arguments in the cross file. See
the commented properties in the example cross file.
An example cross file can be found in the docs folder. To use it, you
would call:
meson Build --cross-file cross-android-aarch64.txt \
--prefix /data/data/com.termux/files/usr \
--libdir lib \
-Dfhs-prefix=/data/data/com.termux/files/usr \
Cygwin
Getting perl scripting to work needs a few things:
- configure with --with-perl-staticlib
- libperl.dll is required in linking and running irssi, it's normally
located somewhere around /usr/lib/perl5/5.6.1/cygwin/CORE/libperl5_6_1.dll
copy it to eg. /usr/bin/libperl.dll
- -DUSEIMPORTLIB is needed to be defined while compiling src/perl directory.
It doesn't hurt to be defined everywhere, so configure irssi with:
CFLAGS='-DUSEIMPORTLIB' ./configure --with-perl-staticlib