mirror of
https://github.com/EnergyMech/energymech.git
synced 2025-12-29 16:14:43 +00:00
269 lines
7.6 KiB
Makefile
269 lines
7.6 KiB
Makefile
#
|
|
# EnergyMech, IRC bot software
|
|
# Copyright (c) 1997-2018 proton
|
|
#
|
|
# 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 2 of the License, 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.
|
|
#
|
|
|
|
INSTALLNAME = energymech
|
|
INSTALLDIR = ..
|
|
INSTALLMODE = 0700
|
|
|
|
LDSCRIPT = @ldscript@
|
|
CPROF = @cprof@
|
|
LPROF = @lprof@
|
|
LIBS = @libflags@
|
|
PIPEFLAG = @pipeflag@
|
|
GDBFLAG = @gdbflag@
|
|
WARNFLAG = @W_FLAGS@
|
|
OPTIMIZE = @O_FLAGS@
|
|
PYINCLUDE = @PYINCLUDE@
|
|
TCLINCLUDE = @TCLINCLUDE@
|
|
|
|
CFLAGS = $(PIPEFLAG) $(GDBFLAG) $(WARNFLAG) $(OPTIMIZE)
|
|
LFLAGS = $(PIPEFLAG) $(GDBFLAG)
|
|
|
|
CC = @CC@
|
|
MV = mv -f
|
|
RM = rm -f
|
|
CHMOD = chmod
|
|
|
|
INCS = config.h mcmd.h defines.h global.h h.h structs.h text.h
|
|
|
|
TESTFILES = aliastest safepathtest
|
|
|
|
OFILES = alias.o auth.o bounce.o chanban.o channel.o core.o \
|
|
ctcp.o debug.o dns.o dynamode.o function.o greet.o help.o hostinfo.o irc.o \
|
|
kicksay.o main.o net.o net_chan.o note.o notify.o ons.o parse.o \
|
|
perl.o prot.o python.o redirect.o reset.o seen.o shit.o socket.o \
|
|
spy.o stats.o tcl.o telnet.o toybox.o trivia.o uptime.o urlcap.o \
|
|
user.o vars.o web.o @MD5_O@ @SHA_O@
|
|
|
|
SRCFILES = alias.c auth.c bounce.c chanban.c channel.c core.c \
|
|
ctcp.c debug.c dns.c dynamode.c function.c greet.c help.c hostinfo.c irc.c \
|
|
kicksay.c main.c net.c net_chan.c note.c notify.c ons.c parse.c \
|
|
perl.c prot.c python.c redirect.c reset.c seen.c shit.c socket.c \
|
|
spy.c stats.c tcl.c telnet.c toybox.c trivia.c uptime.c urlcap.c \
|
|
user.c vars.c web.c
|
|
|
|
all: $(INSTALLNAME)
|
|
|
|
#
|
|
# mcmd.h is generated at compile time to wrap up all command attributes more efficiently,
|
|
# instead of doing extra parsing and handling while the bot is running.
|
|
#
|
|
|
|
gencmd: gencmd.c socket.c config.h structs.h
|
|
$(CC) $(LFLAGS) -o gencmd gencmd.c
|
|
|
|
mcmd.h: gencmd
|
|
./gencmd mcmd.h
|
|
|
|
usercombo.h: gencmd
|
|
./gencmd usercombo.h
|
|
|
|
install: $(INSTALLNAME)
|
|
$(CHMOD) $(INSTALLMODE) $(INSTALLNAME)
|
|
$(MV) $(INSTALLNAME) $(INSTALLDIR)
|
|
|
|
clean: FORCE
|
|
$(RM) $(INSTALLNAME) gencmd mcmd.h usercombo.h core $(TESTFILES) $(OFILES)
|
|
|
|
$(INSTALLNAME): $(OFILES)
|
|
$(CROSS_COMPILE)$(CC) $(LFLAGS) -o $(INSTALLNAME) $(OFILES) $(LPROF) $(LIBS) $(LDSCRIPT)
|
|
@oc@ $(CROSS_COMPILE)objcopy -R .note -R .comment $(INSTALLNAME)
|
|
@sz@ size $(INSTALLNAME)
|
|
|
|
$(INSTALLNAME)-static: $(OFILES)
|
|
$(CROSS_COMPILE)$(CC) $(LFLAGS) -o $(INSTALLNAME) $(OFILES) $(LPROF) $(LIBS) $(LDSCRIPT) -static
|
|
@oc@ $(CROSS_COMPILE)objcopy -R .note -R .comment $(INSTALLNAME)
|
|
@sz@ size $(INSTALLNAME)
|
|
|
|
|
|
#
|
|
# 'mega' versions
|
|
# compiling the C files all at once (having all the code "visible" during the whole process) enables GCC to make more optimizations,
|
|
# resulting in a smaller, more efficient, binary. this process uses lots more memory at compile time.
|
|
#
|
|
|
|
mega-install: mega $(SRCFILES) $(INCS) usage.h
|
|
$(CHMOD) $(INSTALLMODE) $(INSTALLNAME)
|
|
$(MV) $(INSTALLNAME) $(INSTALLDIR)
|
|
|
|
mega: $(SRCFILES) $(INCS) usage.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -o $(INSTALLNAME) mega.c $(LPROF) $(LIBS) $(LDSCRIPT) $(PYINCLUDE) $(TCLINCLUDE)
|
|
@oc@ $(CROSS_COMPILE)objcopy -R .note -R .comment $(INSTALLNAME)
|
|
@sz@ size $(INSTALLNAME)
|
|
|
|
mega-static: $(SRCFILES) $(INCS) usage.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -o $(INSTALLNAME) mega.c $(LPROF) $(LIBS) $(LDSCRIPT) $(PYINCLUDE) $(TCLINCLUDE) -static
|
|
@oc@ $(CROSS_COMPILE)objcopy -R .note -R .comment $(INSTALLNAME)
|
|
@sz@ size $(INSTALLNAME)
|
|
|
|
#
|
|
# testing stuff
|
|
#
|
|
|
|
test: $(TESTFILES)
|
|
./aliastest
|
|
./safepathtest
|
|
|
|
aliastest: alias.c
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -o aliastest $< $(LPROF) $(LIBS) $(LDSCRIPT) -DTEST
|
|
|
|
safepathtest: function.c
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -o safepathtest $< $(LPROF) $(LIBS) $(LDSCRIPT) -DTEST
|
|
|
|
commands:
|
|
grep -E '(void do_.*\(COMMAND_ARGS\)|/*---Help:)' *c
|
|
|
|
#
|
|
#
|
|
#
|
|
|
|
alias.o: alias.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
auth.o: auth.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
bounce.o: bounce.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
chanban.o: chanban.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
channel.o: channel.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
core.o: core.c $(INCS) settings.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
ctcp.o: ctcp.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
debug.o: debug.c $(INCS) settings.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF) $(PYINCLUDE)
|
|
|
|
dns.o: dns.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
dynamode.o: dynamode.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
function.o: function.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
greet.o: greet.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
help.o: help.c $(INCS) usage.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
hostinfo.o: hostinfo.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
irc.o: irc.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
kicksay.o: kicksay.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
main.o: main.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF) $(PYINCLUDE)
|
|
|
|
net.o: net.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
net_chan.o: net_chan.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
note.o: note.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
notify.o: notify.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
ons.o: ons.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
parse.o: parse.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
perl.o: perl.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
prot.o: prot.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
python.o: python.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF) $(PYINCLUDE)
|
|
|
|
redirect.o: redirect.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
reset.o: reset.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
seen.o: seen.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
shit.o: shit.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
socket.o: socket.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
spy.o: spy.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
stats.o: stats.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
tcl.o: tcl.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF) $(TCLINCLUDE)
|
|
|
|
telnet.o: telnet.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
toybox.o: toybox.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
trivia.o: trivia.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
uptime.o: uptime.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
urlcap.o: urlcap.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
user.o: user.c $(INCS) usercombo.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
vars.o: vars.c $(INCS) settings.h
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
web.o: web.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< $(CPROF)
|
|
|
|
md5/md5.o: md5/md5.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< -o $@ -Imd5 $(CPROF)
|
|
|
|
sha/sha1.o: sha/sha1.c $(INCS)
|
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) -c $< -o $@ -Isha1 $(CPROF)
|
|
|
|
FORCE:
|