| 1 |
# Makefile for Services. |
| 2 |
# |
| 3 |
# IRC Services is copyright (c) 1996-2009 Andrew Church. |
| 4 |
# E-mail: <achurch@achurch.org> |
| 5 |
# Parts written by Andrew Kempe and others. |
| 6 |
# This program is free but copyrighted software; see the file GPL.txt for |
| 7 |
# details. |
| 8 |
|
| 9 |
|
| 10 |
include Makefile.inc |
| 11 |
TOPDIR=. |
| 12 |
|
| 13 |
default: all |
| 14 |
|
| 15 |
########################################################################### |
| 16 |
########################## Configuration section ########################## |
| 17 |
|
| 18 |
# NOTE: Compilation options (CLEAN_COMPILE, etc.) are now all controlled by |
| 19 |
# the configure script. |
| 20 |
|
| 21 |
# Add any extra flags you want here. The default line below enables |
| 22 |
# warnings and debugging symbols on GCC. If you have a non-GCC compiler, |
| 23 |
# you may want to comment it out or change it. ("icc" below is the Intel |
| 24 |
# C compiler for Linux, which doesn't understand GCC's -W/-f options.) |
| 25 |
|
| 26 |
ifeq ($(CC),icc) |
| 27 |
MORE_CFLAGS = -g |
| 28 |
else |
| 29 |
MORE_CFLAGS = -g -Wall -Wmissing-prototypes |
| 30 |
endif |
| 31 |
|
| 32 |
######################## End configuration section ######################## |
| 33 |
########################################################################### |
| 34 |
|
| 35 |
|
| 36 |
ifneq ($(STATIC_MODULES),) |
| 37 |
CDEFS += -DSTATIC_MODULES |
| 38 |
MODLIB = modules/modules.a |
| 39 |
endif |
| 40 |
|
| 41 |
CFLAGS = $(CDEFS) $(BASE_CFLAGS) $(MORE_CFLAGS) |
| 42 |
|
| 43 |
|
| 44 |
OBJS = actions.o channels.o commands.o compat.o conffile.o databases.o \ |
| 45 |
encrypt.o ignore.o init.o language.o log.o main.o memory.o \ |
| 46 |
messages.o misc.o modes.o modules.o process.o send.o servers.o \ |
| 47 |
signals.o sockets.o timeout.o users.o $(VSNPRINTF_O) |
| 48 |
|
| 49 |
.c.o: |
| 50 |
$(CC) $(CFLAGS) -c $< -o $@ |
| 51 |
|
| 52 |
########################################################################### |
| 53 |
|
| 54 |
.PHONY: default config-check all myall myclean clean spotless distclean \ |
| 55 |
install instbin instmod modules languages tools |
| 56 |
|
| 57 |
########################################################################### |
| 58 |
|
| 59 |
config-check: |
| 60 |
@if ./configure -check ; then : ; else \ |
| 61 |
echo 'Either you have not yet run the "configure" script, or the script has been' ; \ |
| 62 |
echo 'updated since you last ran it. Please run "./configure" before running' ; \ |
| 63 |
echo '"$(MAKE)".' ; \ |
| 64 |
exit 1 ; \ |
| 65 |
fi |
| 66 |
|
| 67 |
all: config-check myall |
| 68 |
@echo Now run \"$(MAKE) install\" to install Services. |
| 69 |
|
| 70 |
myall: $(PROGRAM) languages tools |
| 71 |
|
| 72 |
myclean: |
| 73 |
rm -f *.o $(PROGRAM) version.c.old |
| 74 |
|
| 75 |
clean: myclean |
| 76 |
$(MAKE) -C lang clean |
| 77 |
$(MAKE) -C modules clean |
| 78 |
$(MAKE) -C tools clean |
| 79 |
|
| 80 |
spotless distclean: myclean |
| 81 |
$(MAKE) -C lang spotless |
| 82 |
$(MAKE) -C modules spotless |
| 83 |
$(MAKE) -C tools spotless |
| 84 |
rm -rf config.cache config.h* configure.log conf-tmp Makefile.inc* \ |
| 85 |
langstrs.h version.c |
| 86 |
|
| 87 |
install: config-check myall myinstall |
| 88 |
@echo "" |
| 89 |
@echo "Don't forget to create/update your ircservices.conf and modules.conf files!" |
| 90 |
@echo "See the README for details." |
| 91 |
@echo "" |
| 92 |
|
| 93 |
myinstall: instdirs instbin instmod |
| 94 |
$(MAKE) -C lang install |
| 95 |
$(MAKE) -C tools install |
| 96 |
$(MAKE) -C data install |
| 97 |
|
| 98 |
instdirs: |
| 99 |
mkdir -p "$(INSTALL_PREFIX)$(BINDEST)" |
| 100 |
mkdir -p "$(INSTALL_PREFIX)$(DATDEST)" |
| 101 |
|
| 102 |
instbin: |
| 103 |
$(INSTALL_EXE) $(PROGRAM)$(EXE_SUFFIX) "$(INSTALL_PREFIX)$(BINDEST)/$(PROGRAM)$(EXE_SUFFIX)" |
| 104 |
|
| 105 |
ifneq ($(STATIC_MODULES),) |
| 106 |
instmod: |
| 107 |
else |
| 108 |
instmod: |
| 109 |
$(MAKE) -C modules install |
| 110 |
endif |
| 111 |
|
| 112 |
########################################################################### |
| 113 |
|
| 114 |
$(PROGRAM): $(OBJS) modules version.o |
| 115 |
$(CC) $(LFLAGS) $(OBJS) version.o $(MODLIB) $(LIBS) -o $@ |
| 116 |
|
| 117 |
ifneq ($(STATIC_MODULES),) |
| 118 |
modules: |
| 119 |
@$(MAKE) -C modules all-static CFLAGS="$(CFLAGS)" |
| 120 |
else |
| 121 |
modules: |
| 122 |
@$(MAKE) -C modules all-dynamic CFLAGS="$(CFLAGS)" |
| 123 |
endif |
| 124 |
|
| 125 |
languages: |
| 126 |
@$(MAKE) -C lang CFLAGS="$(CFLAGS)" |
| 127 |
|
| 128 |
tools: services.h |
| 129 |
@$(MAKE) -C tools CFLAGS="$(CFLAGS)" |
| 130 |
|
| 131 |
|
| 132 |
# Catch any changes in compilation options at the top of this file or the |
| 133 |
# configure output |
| 134 |
$(OBJS): Makefile Makefile.inc |
| 135 |
|
| 136 |
$(OBJS): services.h |
| 137 |
|
| 138 |
actions.o: actions.c language.h modules.h timeout.h |
| 139 |
channels.o: channels.c modules.h hash.h |
| 140 |
commands.o: commands.c modules.h commands.h language.h |
| 141 |
compat.o: compat.c |
| 142 |
conffile.o: conffile.c conffile.h |
| 143 |
databases.o: databases.c databases.h encrypt.h modules.h |
| 144 |
encrypt.o: encrypt.c encrypt.h |
| 145 |
ignore.o: ignore.c |
| 146 |
init.o: init.c conffile.h databases.h messages.h modules.h \ |
| 147 |
language.h version.h |
| 148 |
language.o: language.c language.h modules/nickserv/nickserv.h |
| 149 |
log.o: log.c |
| 150 |
main.o: main.c databases.h modules.h timeout.h |
| 151 |
memory.o: memory.c |
| 152 |
messages.o: messages.c messages.h language.h modules.h version.h \ |
| 153 |
modules/operserv/operserv.h |
| 154 |
misc.o: misc.c |
| 155 |
modes.o: modes.c |
| 156 |
modules.o: modules.c modules.h conffile.h |
| 157 |
process.o: process.c modules.h messages.h |
| 158 |
send.o: send.c modules.h language.h |
| 159 |
servers.o: servers.c modules.h hash.h |
| 160 |
signals.o: signals.c |
| 161 |
sockets.o: sockets.c |
| 162 |
timeout.o: timeout.c timeout.h |
| 163 |
users.o: users.c modules.h hash.h |
| 164 |
vsnprintf.o: vsnprintf.c |
| 165 |
|
| 166 |
|
| 167 |
services.h: config.h defs.h memory.h list-array.h log.h sockets.h \ |
| 168 |
send.h modes.h users.h channels.h servers.h extern.h |
| 169 |
-touch $@ |
| 170 |
|
| 171 |
version.c: $(OBJS) modules/.stamp |
| 172 |
sh version.sh |
| 173 |
modules/.stamp: modules |
| 174 |
|
| 175 |
databases.h: modules.h |
| 176 |
-touch $@ |
| 177 |
|
| 178 |
language.h: langstrs.h |
| 179 |
-touch $@ |
| 180 |
|
| 181 |
langstrs.h: lang/langstrs.h |
| 182 |
cp -p lang/langstrs.h . |
| 183 |
|
| 184 |
.PHONY: lang/langstrs.h |
| 185 |
lang/langstrs.h: |
| 186 |
$(MAKE) -C lang langstrs.h |
| 187 |
|
| 188 |
########################################################################### |