0808d2190fe03c347d99f7a85e5f8fcafdaa18b5
[OpenSRF.git] / src / extras / Makefile.install
1 # ---------------------------------------------------------------------
2 # Author: Bill Erickson <erickson@esilibrary.com>
3 # Author: Dan Scott <dscott@laurentian.ca>
4 #
5 # Makefile to install prerequisites for OpenSRF
6 #
7 # Currently supports Debian (jessie/stretch) and Ubuntu
8 # (xenial/bionic/focal)
9 #
10 # Installs Perl prereqs, libjs with Perl wrapper
11 #
12 # usage:
13 #       make -f Makefile.install debian-buster
14 #       - or -
15 #       make -f Makefile.install debian-stretch
16 #       - or -
17 #       make -f Makefile.install debian-jessie
18 #       - or -
19 #       make -f Makefile.install ubuntu-xenial
20 #   - or -
21 #   make -f Makefile.install ubuntu-bionic
22 #       - or -
23 #   make -f Makefile.install ubuntu-focal
24 #       - or -
25 #       make -f Makefile.install fedora
26 #
27 # ---------------------------------------------------------------------
28
29 # Make any assumptions about the shell being used explicit
30 SHELL=/bin/bash 
31
32 # 64 or 32 bit os?
33 LBITS=$(shell getconf LONG_BIT)
34
35 APT_TOOL=apt-get -yq
36
37 # Debian dependencies
38 DEBS =  \
39         autoconf\
40         automake\
41         build-essential\
42         check\
43         ejabberd\
44         less\
45         libapache2-mod-perl2\
46         libcache-memcached-perl\
47         libclass-dbi-abstractsearch-perl\
48         libclass-dbi-sqlite-perl\
49         libdatetime-format-builder-perl\
50         libdatetime-format-mail-perl\
51         libdatetime-perl\
52         libdatetime-timezone-perl\
53         liberror-perl\
54         libexpat1-dev\
55         libfile-find-rule-perl\
56         libgcrypt20-dev \
57         libgdbm-dev \
58         liblog-log4perl-perl\
59         libmemcached-dev \
60         libmemcached-tools \
61         libmodule-build-perl\
62         libnet-dns-perl\
63         libperl-dev\
64         libreadline-dev\
65         libtemplate-perl\
66         libtest-pod-perl\
67         libtie-ixhash-perl\
68         libtool\
69         libuniversal-require-perl\
70         libunix-syslog-perl\
71         libwww-perl\
72         libxml2-dev\
73         libxml-libxml-perl\
74         libxml-libxslt-perl\
75         libxml-simple-perl\
76         libxslt1-dev\
77         memcached\
78         pkg-config\
79         psmisc\
80         tar\
81         unzip\
82         zip\
83         zlib1g-dev
84
85 FEDORAS = \
86         autoconf \
87         automake \
88         check \
89         check-devel \
90         ejabberd \
91         expat-devel \
92         gcc \
93         gdbm-devel \
94         httpd \
95         httpd-devel \
96         less \
97         libgcrypt-devel \
98         libmemcached \
99         libmemcached-devel \
100         libtool \
101         libxml-libxml-perl \
102         libxml-libxslt-perl \
103         libxml2-devel \
104         libxslt-devel \
105         make \
106         memcached \
107         mod_perl \
108         perl-Cache-Memcached \
109         perl-Class-DBI \
110         perl-Class-DBI-AbstractSearch \
111         perl-Class-DBI-SQLite \
112         perl-DateTime-Format-Builder \
113         perl-DateTime-Format-ISO8601 \
114         perl-DateTime-Format-Mail \
115         perl-DateTime-Set \
116         perl-devel \
117         perl-Error \
118         perl-File-Find-Rule \
119         perl-JSON-XS \
120         perl-libwww-perl \
121         perl-Log-Log4perl \
122         perl-Module-Build \
123         perl-Net-DNS \
124         perl-Net-Server \
125         perl-SQL-Abstract-Limit \
126         perl-Template-Toolkit \
127         perl-Test-Deep \
128         perl-Test-Exception \
129         perl-Test-Pod \
130         perl-Tie-IxHash \
131         perl-UNIVERSAL-require \
132         perl-Unix-Syslog \
133         perl-XML-LibXML \
134         perl-XML-LibXSLT \
135         perl-XML-Simple \
136         psmisc \
137         readline-devel \
138         tar
139
140 DEB_APACHE_MODS = \
141         ssl
142
143 EXTRA_DEBS = \
144         libdatetime-format-iso8601-perl \
145         libjson-xs-perl \
146         libnet-server-perl
147
148 EXTRA_DEBS_JESSIE = \
149         apache2-mpm-prefork \
150         apache2-prefork-dev \
151         libncurses5-dev
152
153 EXTRA_DEBS_DEBIAN_BUSTER = \
154         apache2 \
155         apache2-dev \
156         libncurses5-dev
157
158 EXTRA_DEBS_DEBIAN_STRETCH = \
159         apache2 \
160         apache2-dev \
161         libncurses5-dev
162
163 EXTRA_DEBS_UBUNTU = \
164         apache2 \
165         apache2-dev \
166         libncurses5-dev
167
168 # ----------------------------------------------------------------------------
169
170 all: 
171         @echo "please specify an OS" && exit 0
172
173
174 debian-buster: generic_debian buster apache_mpm_prefork_mods apache_perl_mod
175 debian-stretch: generic_debian stretch apache_mpm_prefork_mods apache_perl_mod
176 debian-jessie: generic_debian jessie apache_mpm_prefork_mods
177 buster: install_extra_debs install_extra_debs_buster debian_sys_config
178 stretch: install_extra_debs install_extra_debs_stretch debian_sys_config
179 jessie: install_extra_debs_jessie debian_sys_config
180 generic_debian: install_debs
181
182 fedora: install_fedora_rpms
183
184 ubuntu-xenial: generic_ubuntu
185 ubuntu-bionic: generic_ubuntu
186 ubuntu-focal: generic_ubuntu
187 generic_ubuntu: install_debs install_extra_debs install_extra_debs_ubuntu \
188                 debian_sys_config apache_mpm_prefork_mods apache_perl_mod
189
190 # ------------------------------------------------------------------
191 # - DEBIAN ---------------------------------------------------------
192
193 debian_sys_config: 
194         # link the apache modules in
195         for m in $(DEB_APACHE_MODS); do a2enmod $$m; done;
196
197 # Install the debian-specific dependencies
198 install_debs:
199         $(APT_TOOL) install $(DEBS)
200
201 # Install the debian-specific dependencies for more modern distros
202 install_extra_debs:
203         $(APT_TOOL) install $(EXTRA_DEBS)
204
205 install_extra_debs_buster:
206         $(APT_TOOL) install $(EXTRA_DEBS_DEBIAN_BUSTER)
207
208 install_extra_debs_stretch:
209         $(APT_TOOL) install $(EXTRA_DEBS_DEBIAN_STRETCH)
210
211 install_extra_debs_jessie: install_extra_debs
212         $(APT_TOOL) install $(EXTRA_DEBS_JESSIE)
213
214 # Install even more packaged dependencies on modern distros
215 install_extra_debs_ubuntu:
216         $(APT_TOOL) install $(EXTRA_DEBS_UBUNTU)
217
218
219 # Some OSes activate the Apache mpm_event module by default.
220 # OpenSRF requires prefork.
221 apache_mpm_prefork_mods:
222         a2dismod mpm_event
223         a2enmod mpm_prefork
224
225 # Need to activate mod_perl on some O/S.
226 apache_perl_mod:
227         a2enmod perl
228
229 # Fedora
230 install_fedora_rpms:
231         yum -y install $(FEDORAS)
232
233 # vim:noet:sw=4:ts=4: