Default compiler optimization to -O2
authorRemco Rijnders <remmy@serenity-irc.net>
Sat, 7 Mar 2026 17:17:36 +0000 (12:17 -0500)
committerRemco Rijnders <remmy@serenity-irc.net>
Sat, 7 Mar 2026 17:17:36 +0000 (12:17 -0500)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Makefile [new file with mode: 0755]

diff --git a/Makefile b/Makefile
new file mode 100755 (executable)
index 0000000..f252051
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,106 @@
+#/************************************************************************
+#*   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.
+#*/
+
+CC=gcc
+INCLUDEDIR=../include
+
+# [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=-O2
+IRCDLIBS=-lcrypt -lresolv -lz
+
+# [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=/usr/local/lib/ircd
+
+CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) $(NEED_U_INT32_T)
+
+SHELL=/bin/sh
+SUBDIRS=src
+BINDIR=$(IRCDDIR)
+MANDIR=/usr/local/man
+INSTALL=/usr/bin/install
+RM=rm
+CP=cp
+TOUCH=touch
+
+all:   build
+
+MAKEARGS =     'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \
+               'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \
+               'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \
+               'INCLUDEDIR=${INCLUDEDIR}' 'IRCDDIR=${IRCDDIR}' \
+               'MANDIR=${MANDIR}' 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \
+               'RES=${RES}' 'SHELL=${SHELL}'
+
+server:
+
+build:
+       -@if [ ! -f include/setup.h ] ; then \
+               echo "You have not 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 'Serene IRCD compiled!'
+       @echo ''
+
+clean:
+       @echo 'Cleaning Serene IRCD'
+       @for i in $(SUBDIRS); do \
+               echo "Cleaning $$i";\
+               ( cd $$i; ${MAKE} ${MAKEARGS} clean; ) ; \
+       done
+       @echo ''
+       @echo 'Cleaning complete.'
+       @echo ''
+
+distclean: clean
+       rm -rf include/setup.h Makefile Options .install
+       @echo ''
+       @echo 'Distribution is now fully cleaned.'
+       @echo ''
+depend:
+       @for i in $(SUBDIRS); do \
+               echo "Making dependencies in $$i";\
+               ( cd $$i; ${MAKE} ${MAKEARGS} depend; ) ; \
+       done
+
+install: all
+       @echo "Copying ircd to the right location."
+       ./.install