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 |
########################################################################### |