summaryrefslogtreecommitdiff
path: root/INSTALL
blob: 4b20c1bafafba47c758a165820eb36379e099f7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123

 Irssi installation instructions
 -------------------------------

To compile irssi you need:

- glib-2.6 or greater
- pkg-config
- openssl (for ssl support)
- perl-5.6 or greater (for perl support)

For most people, this should work just fine:

 ./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

  --prefix

  Specifies the path where irssi will be installed.
  YES, you can install irssi WITHOUT ROOT permissions
  by using --prefix=/home/dir

  --with-proxy

  Build the irssi proxy (see startup-HOWTO).

  --disable-ssl

  Disable SSL support.

  --with-perl=[yes|no|module]

  Enable Perl support
  yes    enable builtin (default)
  no     disable
  module enable as module

  --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

  --with-socks

  Build with socks library

  --with-bot

  Build irssi-bot

  --without-textui

  Build without text frontend

If ncurses is installed in a non-standard path you can specify it with
--with-ncurses=/path. If anything else is in non-standard path, you can just
give the paths in CPPFLAGS and LIBS environment variable, eg.:

  CPPFLAGS=-I/opt/openssl/include LDFLAGS=-L/opt/openssl/lib ./configure

Irssi doesn't really need curses anymore, by default it uses
terminfo/termcap directly. The functions for using terminfo/termcap
however are usually only in curses library, some systems use libtermcap
as well. If you want to use only curses calls for some reason, use
--without-terminfo.


 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, using the local::lib CPAN
   module is recommended. Read its docs, bootstrap it if needed, ensure that
   the environment variables are set before running the configure script, and
   append "--with-perl-lib=site" to the configure parameters to use it.

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
 ---------------------

 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