mirror of https://github.com/pissnet/pissircd
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
272 lines
8.6 KiB
Makefile
272 lines
8.6 KiB
Makefile
#/************************************************************************
|
|
#* IRC - Internet Relay Chat, Makefile
|
|
#* Copyright (C) 1990, Jarkko Oikarinen
|
|
#*
|
|
#* This program is free software; you can redistribute it and/or modify
|
|
#* it under the terms of the GNU General Public License as published by
|
|
#* the Free Software Foundation; either version 1, or (at your option)
|
|
#* any later version.
|
|
#*
|
|
#* This program is distributed in the hope that it will be useful,
|
|
#* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
#* GNU General Public License for more details.
|
|
#*
|
|
#* You should have received a copy of the GNU General Public License
|
|
#* along with this program; if not, write to the Free Software
|
|
#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
#*
|
|
#* $Id$
|
|
#*/
|
|
|
|
CC=@CC@
|
|
INCLUDEDIR=@UNRLINCDIR@
|
|
NETWORKSDIR=
|
|
FROMDOS=/home/cmunk/bin/4dos
|
|
|
|
# [CHANGEME]
|
|
# Default flags:
|
|
# Change XCFLAGS if you don't like what Config puts there. Same with
|
|
# IRCDLIBS.
|
|
#
|
|
# If you are configuring by hand, try "-O -g" for XCFLAGS, and leave
|
|
# IRCDLIBS blank. If that fails, try recomendations below.
|
|
#
|
|
|
|
#XCFLAGS=-O -g -export-dynamic
|
|
IRCDLIBS=@IRCDLIBS@ @TRE_LIBS@ @PCRE2_LIBS@ @CARES_LIBS@ @PTHREAD_LIBS@
|
|
CRYPTOLIB=@CRYPTOLIB@
|
|
OPENSSLINCLUDES=
|
|
|
|
XCFLAGS=@PTHREAD_CFLAGS@ @TRE_CFLAGS@ @PCRE2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@
|
|
#
|
|
# use the following on MIPS:
|
|
#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR)
|
|
# For Irix 4.x (SGI), use the following:
|
|
#CFLAGS= -g -cckr -I$(INCLUDEDIR)
|
|
#
|
|
# on NEXT use:
|
|
#CFLAGS=-bsd -I$(INCLUDEDIR)
|
|
#on NeXT other than 2.0:
|
|
#IRCDLIBS=-lsys_s
|
|
#
|
|
# AIX 370 flags
|
|
#CFLAGS=-D_BSD -Hxa -I$(INCLUDEDIR)
|
|
#IRCDLIBS=-lbsd
|
|
#
|
|
# Dynix/ptx V2.0.x
|
|
#CFLAGS= -I$(INCLUDEDIR) -O -Xo
|
|
#IRCDLIBS= -lsocket -linet -lnsl -lseq
|
|
#
|
|
# Dynix/ptx V1.x.x
|
|
#IRCDLIBS= -lsocket -linet -lnsl -lseq
|
|
#
|
|
#use the following on SUN OS without nameserver libraries inside libc
|
|
#IRCDLIBS=-lresolv
|
|
#
|
|
# Solaris 2
|
|
#IRCDLIBS=-lsocket -lnsl -lresolv -L/usr/ucblib -R/usr/ucblib -lgen
|
|
#
|
|
# ESIX
|
|
#CFLAGS=-O -I$(INCLUDEDIR) -I/usr/ucbinclude
|
|
#IRCDLIBS=-L/usr/ucblib -L/usr/lib -lsocket -lucb -lns -lnsl
|
|
#
|
|
# LDFLAGS - flags to send the loader (ld). SunOS users may want to add
|
|
# -Bstatic here.
|
|
#
|
|
#LDFLAGS=-Bstatic
|
|
#
|
|
#Dell SVR4
|
|
#CC=gcc
|
|
#CFLAGS= -I$(INCLUDEDIR) -O2
|
|
#IRCDLIBS=-lsocket -lnsl -lucb
|
|
|
|
# [CHANGEME]
|
|
# IRCDMODE is the mode you want the binary to be.
|
|
# The 4 at the front is important (allows for setuidness)
|
|
#
|
|
# WARNING: if you are making ircd SUID or SGID, check config.h to make sure
|
|
# you are not defining CMDLINE_CONFIG
|
|
IRCDMODE = 711
|
|
|
|
# [CHANGEME]
|
|
# IRCDDIR must be the same as DPATH in include/config.h
|
|
#
|
|
IRCDDIR=@IRCDDIR@
|
|
|
|
|
|
URL=@URL@
|
|
|
|
# [CHANGEME]
|
|
# If you get a link-time error dealing with strtoul, comment out
|
|
# this line.
|
|
# STRTOUL= strtoul.o
|
|
STRTOUL=@STRTOUL@
|
|
|
|
# [CHANGEME]
|
|
# If you get crashes around a specific number of clients, and that
|
|
# client load comes close or a little over the system-defined value of
|
|
# FD_SETSIZE, override it here and see what happens. You may override
|
|
# the system FD_SETSIZE by setting the FD_SETSIZE Makefile variable to
|
|
# -DFD_SETSIZE=<some number>.
|
|
FD_SETSIZE=@FD_SETSIZE@
|
|
|
|
# Where is your openssl binary
|
|
OPENSSLPATH=@OPENSSLPATH@
|
|
|
|
CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) @LDFLAGS@ $(FD_SETSIZE)
|
|
|
|
SHELL=/bin/sh
|
|
SUBDIRS=src
|
|
BINDIR=@BINDIR@
|
|
INSTALL=@INSTALL@
|
|
RM=@RM@
|
|
CP=@CP@
|
|
TOUCH=@TOUCH@
|
|
RES=
|
|
all: build
|
|
|
|
MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
|
|
'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
|
|
'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
|
|
'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
|
|
'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
|
|
'SHELL=${SHELL}' 'STRTOUL=${STRTOUL}' \
|
|
'CRYPTOLIB=${CRYPTOLIB}' \
|
|
'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \
|
|
'URL=${URL}'
|
|
|
|
custommodule:
|
|
@if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi
|
|
+cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule
|
|
|
|
server: Makefile
|
|
build: Makefile
|
|
-@if [ ! -f include/setup.h ] ; then \
|
|
echo "Hmm...doesn't look like you've run Config..."; \
|
|
echo "Doing so now."; \
|
|
sh Config; \
|
|
fi
|
|
@+for i in $(SUBDIRS); do \
|
|
echo "Building $$i";\
|
|
( cd $$i; ${MAKE} ${MAKEARGS} build; ) \
|
|
done
|
|
@echo ''
|
|
@echo '* UnrealIRCd compiled succesfully'
|
|
@echo '* YOU ARE NOT DONE YET! Run "make install" to install UnrealIRCd !'
|
|
@echo ''
|
|
|
|
clean:
|
|
$(RM) -f *~ \#* core *.orig include/*.orig
|
|
@+for i in $(SUBDIRS); do \
|
|
echo "Cleaning $$i";\
|
|
( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \
|
|
done
|
|
-@if [ -f include/setup.h ] ; then \
|
|
echo "To really restart installation, remove include/setup.h" ; \
|
|
fi
|
|
|
|
cleandir: clean
|
|
rm -rf include/setup.h Makefile Settings
|
|
|
|
distclean: cleandir
|
|
rm -rf extras/*.bak extras/regexp extras/*.tar extras/c-ares
|
|
rm -rf extras/c-ares-* extras/tre-*
|
|
rm -rf config.log config.settings *.pem ircd.* unrealircd
|
|
rm -rf Makefile config.status
|
|
|
|
depend:
|
|
@+for i in $(SUBDIRS); do \
|
|
echo "Making dependencies in $$i";\
|
|
( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \
|
|
done
|
|
|
|
install: all
|
|
$(INSTALL) -m 0700 -d @BINDIR@
|
|
$(INSTALL) -m 0700 src/ircd @BINDIR@/unrealircd
|
|
$(INSTALL) -m 0700 -d @DOCDIR@
|
|
$(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc @DOCDIR@
|
|
$(INSTALL) -m 0700 -d @CONFDIR@
|
|
$(INSTALL) -m 0600 doc/conf/*.conf @CONFDIR@
|
|
$(INSTALL) -m 0700 -d @CONFDIR@/aliases
|
|
$(INSTALL) -m 0600 doc/conf/aliases/*.conf @CONFDIR@/aliases
|
|
$(INSTALL) -m 0700 -d @CONFDIR@/help
|
|
$(INSTALL) -m 0600 doc/conf/help/*.conf @CONFDIR@/help
|
|
$(INSTALL) -m 0700 -d @CONFDIR@/examples
|
|
$(INSTALL) -m 0600 doc/conf/examples/*.conf @CONFDIR@/examples
|
|
$(INSTALL) -m 0700 -d @CONFDIR@/ssl
|
|
$(INSTALL) -m 0600 doc/conf/ssl/curl-ca-bundle.crt @CONFDIR@/ssl
|
|
$(INSTALL) -m 0700 unrealircd @SCRIPTDIR@
|
|
$(INSTALL) -m 0700 -d @MODULESDIR@
|
|
$(INSTALL) -m 0700 src/modules/*.so @MODULESDIR@
|
|
$(INSTALL) -m 0700 -d @MODULESDIR@/usermodes
|
|
$(INSTALL) -m 0700 src/modules/usermodes/*.so @MODULESDIR@/usermodes
|
|
$(INSTALL) -m 0700 -d @MODULESDIR@/chanmodes
|
|
$(INSTALL) -m 0700 src/modules/chanmodes/*.so @MODULESDIR@/chanmodes
|
|
$(INSTALL) -m 0700 -d @MODULESDIR@/snomasks
|
|
$(INSTALL) -m 0700 src/modules/snomasks/*.so @MODULESDIR@/snomasks
|
|
$(INSTALL) -m 0700 -d @MODULESDIR@/extbans
|
|
$(INSTALL) -m 0700 src/modules/extbans/*.so @MODULESDIR@/extbans
|
|
$(INSTALL) -m 0700 -d @TMPDIR@
|
|
$(INSTALL) -m 0700 -d @CACHEDIR@
|
|
$(INSTALL) -m 0700 -d @PERMDATADIR@
|
|
$(INSTALL) -m 0700 -d @LOGDIR@
|
|
# TODO: ircdcron.. where?
|
|
-@if [ ! -f "@CONFDIR@/ssl/server.cert.pem" ] ; then \
|
|
$(INSTALL) -m 0600 server.req.pem @CONFDIR@/ssl ; \
|
|
$(INSTALL) -m 0600 server.key.pem @CONFDIR@/ssl ; \
|
|
$(INSTALL) -m 0600 server.cert.pem @CONFDIR@/ssl ; \
|
|
fi
|
|
@echo ''
|
|
@echo '* UnrealIRCd is now installed.'
|
|
|
|
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
|
echo '* Leave this directory and run "cd @SCRIPTDIR@" now' ; \
|
|
fi
|
|
@echo '* Directory layout:'
|
|
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
|
echo ' * Base directory: @SCRIPTDIR@' ; \
|
|
fi
|
|
@echo ' * Configuration files: @CONFDIR@'
|
|
@echo ' * Log files: @LOGDIR@'
|
|
@echo ' * Modules: @MODULESDIR@'
|
|
@echo '* To start/stop UnrealIRCd run: @SCRIPTDIR@/unrealircd"'
|
|
@echo ''
|
|
@echo '* Consult the documentation online at:'
|
|
@echo ' * https://www.unrealircd.org/docs/UnrealIRCd_3.4.x_documentation'
|
|
@echo ' * https://www.unrealircd.org/docs/FAQ'
|
|
@echo ''
|
|
-@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \
|
|
echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \
|
|
fi
|
|
|
|
### TODO: all the stuff below ;) ###
|
|
pem: src/ssl.cnf
|
|
@echo "Generating certificate request .. "
|
|
$(OPENSSLPATH) req -new \
|
|
-config src/ssl.cnf -sha256 -out server.req.pem \
|
|
-keyout server.key.pem -nodes
|
|
@echo "Generating self-signed certificate .. "
|
|
$(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \
|
|
-key server.key.pem -out server.cert.pem
|
|
@echo "Generating fingerprint .."
|
|
$(OPENSSLPATH) x509 -subject -dates -sha256 -fingerprint -noout \
|
|
-in server.cert.pem
|
|
@echo "Setting o-rwx & g-rwx for files... "
|
|
chmod o-rwx server.req.pem server.key.pem server.cert.pem
|
|
chmod g-rwx server.req.pem server.key.pem server.cert.pem
|
|
@echo "Done!. If you want to encrypt the private key, run"
|
|
@echo "make encpem"
|
|
|
|
encpem: server.key.pem
|
|
@echo "Encrypting server key .."
|
|
$(OPENSSLPATH) rsa -in server.key.pem -out server.key.c.pem -des3
|
|
-@if [ -f server.key.c.pem ] ; then \
|
|
echo "Replacing unencrypted with encrypted .." ; \
|
|
cp server.key.c.pem server.key.pem ; \
|
|
rm -f server.key.c.pem ; \
|
|
fi
|
|
|
|
Makefile: config.status Makefile.in
|
|
./config.status
|