]> jfr.im git - irc/unrealircd/unrealircd.git/blame - Makefile.in
Fix rare crash if deleting spamfilter by id that isn't a spamfilter.
[irc/unrealircd/unrealircd.git] / Makefile.in
CommitLineData
aa5ee8b7 1#/************************************************************************
2#* IRC - Internet Relay Chat, Makefile
3#* Copyright (C) 1990, Jarkko Oikarinen
4#*
5#* This program is free software; you can redistribute it and/or modify
6#* it under the terms of the GNU General Public License as published by
7#* the Free Software Foundation; either version 1, or (at your option)
8#* any later version.
9#*
10#* This program is distributed in the hope that it will be useful,
11#* but WITHOUT ANY WARRANTY; without even the implied warranty of
12#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13#* GNU General Public License for more details.
14#*
15#* You should have received a copy of the GNU General Public License
16#* along with this program; if not, write to the Free Software
17#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18#*
19#* $Id$
20#*/
21
22CC=@CC@
101d2dd6 23INCLUDEDIR=@UNRLINCDIR@
aa5ee8b7 24NETWORKSDIR=
25FROMDOS=/home/cmunk/bin/4dos
26
27# [CHANGEME]
28# Default flags:
29# Change XCFLAGS if you don't like what Config puts there. Same with
30# IRCDLIBS.
31#
32# If you are configuring by hand, try "-O -g" for XCFLAGS, and leave
33# IRCDLIBS blank. If that fails, try recomendations below.
34#
35
40f4bb7e 36#XCFLAGS=-O -g -export-dynamic
f81d2207 37IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @PCRE2_LIBS@ @CARES_LIBS@ @PTHREAD_LIBS@
aa5ee8b7 38CRYPTOLIB=@CRYPTOLIB@
39OPENSSLINCLUDES=
40
bae1dcf1 41XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@
aa5ee8b7 42#
43# use the following on MIPS:
44#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
45# For Irix 4.x (SGI), use the following:
46#CFLAGS= -g -cckr -I$(INCLUDEDIR)
47#
48# on NEXT use:
49#CFLAGS=-bsd -I$(INCLUDEDIR)
50#on NeXT other than 2.0:
51#IRCDLIBS=-lsys_s
52#
53# AIX 370 flags
54#CFLAGS=-D_BSD -Hxa -I$(INCLUDEDIR)
55#IRCDLIBS=-lbsd
56#
57# Dynix/ptx V2.0.x
58#CFLAGS= -I$(INCLUDEDIR) -O -Xo
59#IRCDLIBS= -lsocket -linet -lnsl -lseq
60#
61# Dynix/ptx V1.x.x
62#IRCDLIBS= -lsocket -linet -lnsl -lseq
63#
64#use the following on SUN OS without nameserver libraries inside libc
65#IRCDLIBS=-lresolv
66#
67# Solaris 2
68#IRCDLIBS=-lsocket -lnsl -lresolv -L/usr/ucblib -R/usr/ucblib -lgen
69#
70# ESIX
71#CFLAGS=-O -I$(INCLUDEDIR) -I/usr/ucbinclude
72#IRCDLIBS=-L/usr/ucblib -L/usr/lib -lsocket -lucb -lns -lnsl
73#
74# LDFLAGS - flags to send the loader (ld). SunOS users may want to add
75# -Bstatic here.
76#
77#LDFLAGS=-Bstatic
78#
79#Dell SVR4
80#CC=gcc
81#CFLAGS= -I$(INCLUDEDIR) -O2
82#IRCDLIBS=-lsocket -lnsl -lucb
83
84# [CHANGEME]
85# IRCDMODE is the mode you want the binary to be.
86# The 4 at the front is important (allows for setuidness)
87#
88# WARNING: if you are making ircd SUID or SGID, check config.h to make sure
89# you are not defining CMDLINE_CONFIG
90IRCDMODE = 711
91
3be92d02 92URL=@URL@
93
aa5ee8b7 94# [CHANGEME]
95# If you get a link-time error dealing with strtoul, comment out
96# this line.
97# STRTOUL= strtoul.o
98STRTOUL=@STRTOUL@
99
100# [CHANGEME]
805f1988 101# If you get crashes around a specific number of clients, and that
102# client load comes close or a little over the system-defined value of
103# FD_SETSIZE, override it here and see what happens. You may override
104# the system FD_SETSIZE by setting the FD_SETSIZE Makefile variable to
105# -DFD_SETSIZE=<some number>.
aa5ee8b7 106FD_SETSIZE=@FD_SETSIZE@
107
108# Where is your openssl binary
109OPENSSLPATH=@OPENSSLPATH@
110
fd35f965 111CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(FD_SETSIZE)
9252ce30 112LDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@
aa5ee8b7 113
114SHELL=/bin/sh
115SUBDIRS=src
29b7ea7e 116BINDIR=@BINDIR@
117INSTALL=@INSTALL@
aa5ee8b7 118RM=@RM@
119CP=@CP@
120TOUCH=@TOUCH@
121RES=
122all: build
123
124MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
125 'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
126 'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
68ba94c1 127 'INCLUDEDIR=${INCLUDEDIR}' \
29b7ea7e 128 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
aa5ee8b7 129 'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
3dd67bf2 130 'CRYPTOLIB=${CRYPTOLIB}' \
d1b7ac4e 131 'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
d1b7ac4e 132 'URL=${URL}'
aa5ee8b7 133
afcb0b2a 134custommodule:
45aeb1e6 135 @if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi
9299b781 136 +cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
afcb0b2a 137
cc5e2bc4
NPB
138server: Makefile
139build: Makefile
aa5ee8b7 140 -@if [ ! -f include/setup.h ] ; then \
141 echo "Hmm...doesn't look like you've run Config..."; \
142 echo "Doing so now."; \
143 sh Config; \
144 fi
9299b781 145 @+for i in $(SUBDIRS); do \
aa5ee8b7 146 echo "Building $$i";\
147 ( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
148 done
5e94fc9c 149 @echo ''
7f07c3f7 150 @echo '* UnrealIRCd compiled successfully'
5e94fc9c
BM
151 @echo '* YOU ARE NOT DONE YET! Run "make install" to install UnrealIRCd !'
152 @echo ''
aa5ee8b7 153
154clean:
155 $(RM) -f *~ \#* core *.orig include/*.orig
9299b781 156 @+for i in $(SUBDIRS); do \
aa5ee8b7 157 echo "Cleaning $$i";\
158 ( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
159 done
160 -@if [ -f include/setup.h ] ; then \
161 echo "To really restart installation, remove include/setup.h" ; \
162 fi
163
164cleandir: clean
7ad515fb 165 rm -rf include/setup.h Makefile Settings
aa5ee8b7 166
0c091e94
WP
167distclean: cleandir
168 rm -rf extras/*.bak extras/regexp extras/*.tar extras/c-ares
169 rm -rf extras/c-ares-* extras/tre-*
5e94fc9c 170 rm -rf config.log config.settings *.pem ircd.* unrealircd
0c091e94
WP
171 rm -rf Makefile config.status
172
aa5ee8b7 173depend:
9299b781 174 @+for i in $(SUBDIRS); do \
aa5ee8b7 175 echo "Making dependencies in $$i";\
176 ( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
177 done
178
179install: all
5e94fc9c
BM
180 $(INSTALL) -m 0700 -d @BINDIR@
181 $(INSTALL) -m 0700 src/ircd @BINDIR@/unrealircd
182 $(INSTALL) -m 0700 -d @DOCDIR@
183 $(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc @DOCDIR@
184 $(INSTALL) -m 0700 -d @CONFDIR@
ea3ac462 185 $(INSTALL) -m 0600 doc/conf/*.default.conf @CONFDIR@
50801f50 186 $(INSTALL) -m 0600 doc/conf/*.optional.conf @CONFDIR@
ea3ac462
BM
187 -@if [ ! -f "@CONFDIR@/spamfilter.conf" ] ; then \
188 $(INSTALL) -m 0600 doc/conf/spamfilter.conf @CONFDIR@ ; \
189 fi
190 -@if [ ! -f "@CONFDIR@/badwords.conf" ] ; then \
191 $(INSTALL) -m 0600 doc/conf/badwords.conf @CONFDIR@ ; \
192 fi
193 -@if [ ! -f "@CONFDIR@/dccallow.conf" ] ; then \
194 $(INSTALL) -m 0600 doc/conf/dccallow.conf @CONFDIR@ ; \
195 fi
5e94fc9c
BM
196 $(INSTALL) -m 0700 -d @CONFDIR@/aliases
197 $(INSTALL) -m 0600 doc/conf/aliases/*.conf @CONFDIR@/aliases
d99d01e3
BM
198 $(INSTALL) -m 0700 -d @CONFDIR@/help
199 $(INSTALL) -m 0600 doc/conf/help/*.conf @CONFDIR@/help
200 $(INSTALL) -m 0700 -d @CONFDIR@/examples
201 $(INSTALL) -m 0600 doc/conf/examples/*.conf @CONFDIR@/examples
5e94fc9c
BM
202 $(INSTALL) -m 0700 -d @CONFDIR@/ssl
203 $(INSTALL) -m 0600 doc/conf/ssl/curl-ca-bundle.crt @CONFDIR@/ssl
204 $(INSTALL) -m 0700 unrealircd @SCRIPTDIR@
205 $(INSTALL) -m 0700 -d @MODULESDIR@
206 $(INSTALL) -m 0700 src/modules/*.so @MODULESDIR@
207 $(INSTALL) -m 0700 -d @MODULESDIR@/usermodes
208 $(INSTALL) -m 0700 src/modules/usermodes/*.so @MODULESDIR@/usermodes
209 $(INSTALL) -m 0700 -d @MODULESDIR@/chanmodes
210 $(INSTALL) -m 0700 src/modules/chanmodes/*.so @MODULESDIR@/chanmodes
c0f18b3e
BM
211 $(INSTALL) -m 0700 -d @MODULESDIR@/snomasks
212 $(INSTALL) -m 0700 src/modules/snomasks/*.so @MODULESDIR@/snomasks
5e94fc9c
BM
213 $(INSTALL) -m 0700 -d @MODULESDIR@/extbans
214 $(INSTALL) -m 0700 src/modules/extbans/*.so @MODULESDIR@/extbans
ea651384
BM
215 $(INSTALL) -m 0700 -d @MODULESDIR@/cap
216 $(INSTALL) -m 0700 src/modules/cap/*.so @MODULESDIR@/cap
bd21ea90
BM
217 $(INSTALL) -m 0700 -d @MODULESDIR@/third
218 @#Ugly stuff to detect 0 files in this directory:
219 @+for f in src/modules/third/*.so; do \
d9756b82 220 [ -e $f ] && $(INSTALL) -m 0700 src/modules/third/*.so @MODULESDIR@/third || echo; \
bd21ea90 221 done
5e94fc9c
BM
222 $(INSTALL) -m 0700 -d @TMPDIR@
223 $(INSTALL) -m 0700 -d @CACHEDIR@
e5ec2a64 224 $(INSTALL) -m 0700 -d @PERMDATADIR@
5e94fc9c 225 $(INSTALL) -m 0700 -d @LOGDIR@
5e94fc9c
BM
226 -@if [ ! -f "@CONFDIR@/ssl/server.cert.pem" ] ; then \
227 $(INSTALL) -m 0600 server.req.pem @CONFDIR@/ssl ; \
228 $(INSTALL) -m 0600 server.key.pem @CONFDIR@/ssl ; \
229 $(INSTALL) -m 0600 server.cert.pem @CONFDIR@/ssl ; \
c916651e 230 fi
5e94fc9c
BM
231 @echo ''
232 @echo '* UnrealIRCd is now installed.'
233
234 -@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
235 echo '* Leave this directory and run "cd @SCRIPTDIR@" now' ; \
236 fi
237 @echo '* Directory layout:'
238 -@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
239 echo ' * Base directory: @SCRIPTDIR@' ; \
240 fi
241 @echo ' * Configuration files: @CONFDIR@'
242 @echo ' * Log files: @LOGDIR@'
243 @echo ' * Modules: @MODULESDIR@'
244 @echo '* To start/stop UnrealIRCd run: @SCRIPTDIR@/unrealircd"'
245 @echo ''
246 @echo '* Consult the documentation online at:'
507d88cf 247 @echo ' * https://www.unrealircd.org/docs/UnrealIRCd_4_documentation'
5e94fc9c 248 @echo ' * https://www.unrealircd.org/docs/FAQ'
d41d7bdc
BM
249 @echo '* You may also wish to install a cron job to ensure UnrealIRCd is always running:'
250 @echo ' * https://www.unrealircd.org/docs/Cron_job'
5e94fc9c
BM
251 @echo ''
252 -@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
253 echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \
1418ea87 254 fi
29b7ea7e 255
5e94fc9c 256### TODO: all the stuff below ;) ###
bebebf6c 257pem: src/ssl.cnf
aa5ee8b7 258 @echo "Generating certificate request .. "
259 $(OPENSSLPATH) req -new \
a5dc1600 260 -config src/ssl.cnf -sha256 -out server.req.pem \
aa5ee8b7 261 -keyout server.key.pem -nodes
262 @echo "Generating self-signed certificate .. "
a5dc1600 263 $(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \
aa5ee8b7 264 -key server.key.pem -out server.cert.pem
265 @echo "Generating fingerprint .."
a5dc1600 266 $(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
aa5ee8b7 267 -in server.cert.pem
268 @echo "Setting o-rwx & g-rwx for files... "
269 chmod o-rwx server.req.pem server.key.pem server.cert.pem
270 chmod g-rwx server.req.pem server.key.pem server.cert.pem
bebebf6c 271 @echo "Done!. If you want to encrypt the private key, run"
272 @echo "make encpem"
273
274encpem: server.key.pem
275 @echo "Encrypting server key .."
276 $(OPENSSLPATH) rsa -in server.key.pem -out server.key.c.pem -des3
277 -@if [ -f server.key.c.pem ] ; then \
278 echo "Replacing unencrypted with encrypted .." ; \
279 cp server.key.c.pem server.key.pem ; \
280 rm -f server.key.c.pem ; \
281 fi
282
9299b781 283Makefile: config.status Makefile.in
cc5e2bc4 284 ./config.status