]> jfr.im git - irc/evilnet/znc.git/blob - Makefile.in
change default flood rate to a more correct value
[irc/evilnet/znc.git] / Makefile.in
1 SHELL := @SHELL@
2
3 # Support out-of-tree builds
4 srcdir := @srcdir@
5 VPATH := @srcdir@
6
7 prefix := @prefix@
8 exec_prefix := @exec_prefix@
9 datarootdir := @datarootdir@
10 bindir := @bindir@
11 datadir := @datadir@
12 sysconfdir := @sysconfdir@
13 libdir := @libdir@
14 includedir := @includedir@
15 sbindir := @sbindir@
16 localstatedir := @localstatedir@
17 systemdsystemunitdir := @systemdsystemunitdir@
18 CXX := @CXX@
19 CXXFLAGS := -I$(srcdir)/include -Iinclude @CPPFLAGS@ @CXXFLAGS@
20 LDFLAGS := @LDFLAGS@
21 LIBS := @LIBS@
22 LIBZNC := @LIBZNC@
23 LIBZNCDIR:= @LIBZNCDIR@
24 MODDIR := @MODDIR@
25 DATADIR := @DATADIR@
26 PKGCONFIGDIR := $(libdir)/pkgconfig
27 INSTALL := @INSTALL@
28 INSTALL_PROGRAM := @INSTALL_PROGRAM@
29 INSTALL_SCRIPT := @INSTALL_SCRIPT@
30 INSTALL_DATA := @INSTALL_DATA@
31 GIT := @GIT@
32 SED := @SED@
33
34 GTEST_DOWNLOAD :=
35 GTEST_DIR := @GTEST_DIR@
36 ifeq "$(GTEST_DIR)" ""
37 GTEST_VER := 1.7.0
38 GTEST_DIR := test/googletest-release-$(GTEST_VER)
39 GTEST_DOWNLOAD := 1
40 endif
41
42 LIB_SRCS := ZNCString.cpp Csocket.cpp znc.cpp IRCNetwork.cpp User.cpp IRCSock.cpp \
43 Client.cpp Chan.cpp Nick.cpp Server.cpp Modules.cpp MD5.cpp Buffer.cpp Utils.cpp \
44 FileUtils.cpp HTTPSock.cpp Template.cpp ClientCommand.cpp Socket.cpp SHA256.cpp \
45 WebModules.cpp Listener.cpp Config.cpp ZNCDebug.cpp Threads.cpp version.cpp Query.cpp \
46 SSLVerifyHost.cpp
47 LIB_SRCS := $(addprefix src/,$(LIB_SRCS))
48 BIN_SRCS := src/main.cpp
49 LIB_OBJS := $(patsubst %cpp,%o,$(LIB_SRCS))
50 BIN_OBJS := $(patsubst %cpp,%o,$(BIN_SRCS))
51 TESTS := StringTest ConfigTest UtilsTest ThreadTest NickTest ClientTest NetworkTest
52 TESTS := $(addprefix test/,$(addsuffix .o,$(TESTS)))
53 CLEAN := znc src/*.o test/*.o core core.* .version_extra .depend modules/.depend unittest
54 DISTCLEAN := Makefile config.log config.status znc-buildmod include/znc/zncconfig.h \
55 modules/Makefile man/Makefile znc.pc znc-uninstalled.pc test/Makefile
56
57 CXXFLAGS += -D_MODDIR_=\"$(MODDIR)\" -D_DATADIR_=\"$(DATADIR)\"
58
59 ifneq "$(V)" ""
60 VERBOSE=1
61 endif
62 ifeq "$(VERBOSE)" ""
63 Q=@
64 E=@echo
65 C=-s
66 else
67 Q=
68 E=@\#
69 C=
70 endif
71
72 .PHONY: all man modules clean distclean install version_extra_recompile test
73 .SECONDARY:
74
75 all: znc man modules $(LIBZNC)
76 @echo ""
77 @echo " ZNC was successfully compiled."
78 @echo " Use '$(MAKE) install' to install ZNC to '$(prefix)'."
79
80 ifeq "$(LIBZNC)" ""
81 OBJS := $(BIN_OBJS) $(LIB_OBJS)
82
83 znc: $(OBJS)
84 $(E) Linking znc...
85 $(Q)$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
86
87 else
88 znc: $(BIN_OBJS) $(LIBZNC)
89 $(E) Linking znc...
90 $(Q)$(CXX) $(LDFLAGS) -o $@ $(BIN_OBJS) -L. -lznc -Wl,-rpath,$(LIBZNCDIR) $(LIBS)
91
92 $(LIBZNC): $(LIB_OBJS)
93 $(E) Linking $(LIBZNC)...
94 $(Q)$(CXX) $(LDFLAGS) -shared -o $@ $(LIB_OBJS) $(LIBS)
95 endif
96
97 unittest: $(LIB_OBJS) test/gtest-all.o test/gtest-main.o $(TESTS)
98 $(E) Linking unit test...
99 $(Q)$(CXX) $(LDFLAGS) -o $@ $(LIB_OBJS) test/gtest-all.o test/gtest-main.o $(TESTS) $(LIBS)
100
101 man:
102 @$(MAKE) -C man $(C)
103
104 modules: $(LIBZNC) include/znc/Csocket.h
105 @$(MAKE) -C modules $(C)
106
107 clean:
108 rm -rf $(CLEAN)
109 @$(MAKE) -C modules clean;
110 @$(MAKE) -C man clean
111
112 distclean: clean
113 rm -rf $(DISTCLEAN)
114
115 src/%.o: src/%.cpp Makefile include/znc/Csocket.h
116 @mkdir -p .depend src
117 $(E) Building core object $*...
118 $(Q)$(CXX) $(CXXFLAGS) -c -o $@ $< -MD -MF .depend/$*.dep -MT $@
119
120 test/%.o: test/%.cpp Makefile include/znc/Csocket.h
121 @mkdir -p .depend test
122 $(E) Building test object $*...
123 $(Q)$(CXX) $(CXXFLAGS) -I$(GTEST_DIR)/include -c -o $@ $< -MD -MF .depend/$*.test.dep -MT $@
124
125 test/gtest-all.o: $(GTEST_DIR)/src/gtest-all.cc Makefile
126 @mkdir -p .depend test
127 $(E) Building test object gtest-all...
128 $(Q)$(CXX) $(CXXFLAGS) -I$(GTEST_DIR)/include -I$(GTEST_DIR) -c -o $@ $< -MD -MF .depend/gtest-all.dep -MT $@
129
130 test/gtest-main.o: $(GTEST_DIR)/src/gtest_main.cc Makefile
131 @mkdir -p .depend test
132 $(E) Building test object gtest-main...
133 $(Q)$(CXX) $(CXXFLAGS) -I$(GTEST_DIR)/include -c -o $@ $< -MD -MF .depend/gtest-main.dep -MT $@
134
135 ifneq "$(GTEST_DOWNLOAD)" ""
136 test/gtest.zip:
137 @mkdir -p .depend test
138 $(E) Downloading GoogleTest $(GTEST_VER)
139 $(Q)wget https://github.com/google/googletest/archive/release-$(GTEST_VER).zip -O $@
140
141 $(GTEST_DIR)/src/gtest-all.cc $(GTEST_DIR)/src/gtest_main.cc $(GTEST_DIR)/include/gtest/gtest.h: test/gtest.zip
142 $(E) Unpacking GoogleTest $(GTEST_VER)
143 $(Q)test -r $@ || unzip $^ -d test/
144 $(Q)test -r $@
145 $(Q)touch -c $@
146 endif
147
148 ifneq "THIS_IS_NOT_TARBALL" ""
149 # If git commit was changed since previous build, add a phony target to dependencies, forcing version.o to be recompiled
150 # Nightlies have pregenerated version.cpp
151 src/version.cpp: Makefile version.sh $(shell if [ x`cat .version_extra 2> /dev/null` != x`$(srcdir)/version.sh $(GIT) 3>&2 2> /dev/null` ]; then echo version_extra_recompile; fi)
152 @mkdir -p .depend src
153 $(E) Building source file version.cpp...
154 $(Q)WRITE_OUTPUT=yes $(srcdir)/version.sh "$(GIT)" > .version_extra 2> /dev/null
155
156 CLEAN += src/version.cpp src/Csocket.cpp include/znc/Csocket.h
157
158 src/Csocket.cpp: third_party/Csocket/Csocket.cc
159 @rm -f $@
160 @mkdir -p src
161 @sed -e 's:#include "Csocket.h":#include <znc/Csocket.h>:' $^ > $@
162 include/znc/Csocket.h: third_party/Csocket/Csocket.h
163 @rm -f $@
164 @mkdir -p include/znc
165 @sed -e 's:#include "defines.h":#include <znc/defines.h>:' $^ > $@
166 third_party/Csocket/Csocket.h third_party/Csocket/Csocket.cc:
167 @echo It looks like git submodules are not initialized. Run: git submodule update --init --recursive
168 @exit 1
169 endif
170
171 install: znc $(LIBZNC)
172 test -d $(DESTDIR)$(bindir) || $(INSTALL) -d $(DESTDIR)$(bindir)
173 test -d $(DESTDIR)$(includedir)/znc || $(INSTALL) -d $(DESTDIR)$(includedir)/znc
174 test -d $(DESTDIR)$(PKGCONFIGDIR) || $(INSTALL) -d $(DESTDIR)$(PKGCONFIGDIR)
175 test -d $(DESTDIR)$(MODDIR) || $(INSTALL) -d $(DESTDIR)$(MODDIR)
176 test -d $(DESTDIR)$(DATADIR) || $(INSTALL) -d $(DESTDIR)$(DATADIR)
177 cp -R $(srcdir)/webskins $(DESTDIR)$(DATADIR)
178 find $(DESTDIR)$(DATADIR)/webskins -type d -exec chmod 0755 '{}' \;
179 find $(DESTDIR)$(DATADIR)/webskins -type f -exec chmod 0644 '{}' \;
180 $(INSTALL_PROGRAM) znc $(DESTDIR)$(bindir)
181 $(INSTALL_SCRIPT) znc-buildmod $(DESTDIR)$(bindir)
182 $(INSTALL_DATA) $(srcdir)/include/znc/*.h $(DESTDIR)$(includedir)/znc
183 $(INSTALL_DATA) include/znc/zncconfig.h $(DESTDIR)$(includedir)/znc
184 $(INSTALL_DATA) znc.pc $(DESTDIR)$(PKGCONFIGDIR)
185 @$(MAKE) -C modules install DESTDIR=$(DESTDIR);
186 if test -n "$(LIBZNC)"; then \
187 test -d $(DESTDIR)$(LIBZNCDIR) || $(INSTALL) -d $(DESTDIR)$(LIBZNCDIR) || exit 1 ; \
188 $(INSTALL_PROGRAM) $(LIBZNC) $(DESTDIR)$(LIBZNCDIR) || exit 1 ; \
189 fi
190 @$(MAKE) -C man install DESTDIR=$(DESTDIR)
191 @HAVE_SYSTEMD_TRUE@test -d $(DESTDIR)$(systemdsystemunitdir) || $(INSTALL) -d $(DESTDIR)$(systemdsystemunitdir)
192 @HAVE_SYSTEMD_TRUE@$(INSTALL_DATA) $(srcdir)/znc.service $(DESTDIR)$(systemdsystemunitdir)
193 @echo ""
194 @echo "******************************************************************"
195 @echo " ZNC was successfully installed."
196 @echo " You can use '$(bindir)/znc --makeconf'"
197 @echo " to generate a config file."
198 @echo ""
199 @echo " If you need help with using ZNC, please visit our wiki at:"
200 @echo " http://znc.in"
201
202 uninstall:
203 rm $(DESTDIR)$(bindir)/znc
204 rm $(DESTDIR)$(bindir)/znc-buildmod
205 rm $(DESTDIR)$(includedir)/znc/*.h
206 rm $(DESTDIR)$(PKGCONFIGDIR)/znc.pc
207 rm -rf $(DESTDIR)$(DATADIR)/webskins
208 if test -n "$(LIBZNC)"; then \
209 rm $(DESTDIR)$(LIBZNCDIR)/$(LIBZNC) || exit 1 ; \
210 rmdir $(DESTDIR)$(LIBZNCDIR) || exit 1 ; \
211 fi
212 @$(MAKE) -C man uninstall DESTDIR=$(DESTDIR)
213 @if test -n "modules"; then \
214 $(MAKE) -C modules uninstall DESTDIR=$(DESTDIR); \
215 fi
216 rmdir $(DESTDIR)$(bindir)
217 rmdir $(DESTDIR)$(includedir)/znc
218 rmdir $(DESTDIR)$(PKGCONFIGDIR)
219 @echo "Successfully uninstalled, but empty directories were left behind"
220
221 test: unittest
222 $(Q)./unittest
223
224 -include $(wildcard .depend/*.dep)