]> jfr.im git - irc/evilnet/znc.git/blame - Makefile.in
Initial commit for evilnet modifications to znc 1.6.2
[irc/evilnet/znc.git] / Makefile.in
CommitLineData
84ae0f2e 1SHELL := @SHELL@
2
ecd50392 3# Support out-of-tree builds
4srcdir := @srcdir@
5VPATH := @srcdir@
6
608fbdbd 7prefix := @prefix@
8exec_prefix := @exec_prefix@
9datarootdir := @datarootdir@
10bindir := @bindir@
11datadir := @datadir@
12sysconfdir := @sysconfdir@
13libdir := @libdir@
a5f6bc36 14includedir := @includedir@
608fbdbd 15sbindir := @sbindir@
16localstatedir := @localstatedir@
40641b40 17systemdsystemunitdir := @systemdsystemunitdir@
8100ef94 18CXX := @CXX@
8af35e1f 19CXXFLAGS := -I$(srcdir)/include -Iinclude @CPPFLAGS@ @CXXFLAGS@
8100ef94 20LDFLAGS := @LDFLAGS@
8100ef94 21LIBS := @LIBS@
432a04e5 22LIBZNC := @LIBZNC@
23LIBZNCDIR:= @LIBZNCDIR@
5a2844f9 24MODDIR := @MODDIR@
fbe5dd10 25DATADIR := @DATADIR@
64fbd545 26PKGCONFIGDIR := $(libdir)/pkgconfig
eb307ddc 27INSTALL := @INSTALL@
28INSTALL_PROGRAM := @INSTALL_PROGRAM@
29INSTALL_SCRIPT := @INSTALL_SCRIPT@
30INSTALL_DATA := @INSTALL_DATA@
a1311277
AS
31GIT := @GIT@
32SED := @SED@
d9591e95 33
17907784
AS
34GTEST_DOWNLOAD :=
35GTEST_DIR := @GTEST_DIR@
36ifeq "$(GTEST_DIR)" ""
37GTEST_VER := 1.7.0
38GTEST_DIR := test/gtest-$(GTEST_VER)
39GTEST_DOWNLOAD := 1
40endif
41
fec1a3fe
KF
42LIB_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 \
eb449190 44 FileUtils.cpp HTTPSock.cpp Template.cpp ClientCommand.cpp Socket.cpp SHA256.cpp \
4442af72
AS
45 WebModules.cpp Listener.cpp Config.cpp ZNCDebug.cpp Threads.cpp version.cpp Query.cpp \
46 SSLVerifyHost.cpp
afeab4a9
AS
47LIB_SRCS := $(addprefix src/,$(LIB_SRCS))
48BIN_SRCS := src/main.cpp
432a04e5 49LIB_OBJS := $(patsubst %cpp,%o,$(LIB_SRCS))
50BIN_OBJS := $(patsubst %cpp,%o,$(BIN_SRCS))
7345a6ee 51TESTS := StringTest ConfigTest UtilsTest ThreadTest NickTest ClientTest NetworkTest
e13bfa11 52TESTS := $(addprefix test/,$(addsuffix .o,$(TESTS)))
0696a6ed 53CLEAN := znc src/*.o test/*.o core core.* .version_extra .depend modules/.depend unittest
2f058fcc 54DISTCLEAN := Makefile config.log config.status znc-buildmod include/znc/zncconfig.h \
6aaf0770 55 modules/Makefile man/Makefile znc.pc znc-uninstalled.pc test/Makefile
d9591e95 56
aeeb1eb3 57CXXFLAGS += -D_MODDIR_=\"$(MODDIR)\" -D_DATADIR_=\"$(DATADIR)\"
58
877c5775 59ifneq "$(V)" ""
60VERBOSE=1
61endif
c91d032e 62ifeq "$(VERBOSE)" ""
63Q=@
64E=@echo
65C=-s
66else
67Q=
68E=@\#
69C=
70endif
71
e13bfa11 72.PHONY: all man modules clean distclean install version_extra_recompile test
897806a8 73.SECONDARY:
d9591e95 74
f72e2f8a 75all: znc man modules $(LIBZNC)
8b5ba0f1 76 @echo ""
1f9b20a9
AS
77 @echo " ZNC was successfully compiled."
78 @echo " Use '$(MAKE) install' to install ZNC to '$(prefix)'."
432a04e5 79
80ifeq "$(LIBZNC)" ""
81OBJS := $(BIN_OBJS) $(LIB_OBJS)
6169df3f 82
d9591e95 83znc: $(OBJS)
c91d032e 84 $(E) Linking znc...
85 $(Q)$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
e13bfa11 86
432a04e5 87else
88znc: $(BIN_OBJS) $(LIBZNC)
c91d032e 89 $(E) Linking znc...
90 $(Q)$(CXX) $(LDFLAGS) -o $@ $(BIN_OBJS) -L. -lznc -Wl,-rpath,$(LIBZNCDIR) $(LIBS)
432a04e5 91
92$(LIBZNC): $(LIB_OBJS)
c91d032e 93 $(E) Linking $(LIBZNC)...
94 $(Q)$(CXX) $(LDFLAGS) -shared -o $@ $(LIB_OBJS) $(LIBS)
432a04e5 95endif
d9591e95 96
91c07d5a
AS
97unittest: $(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
f59b7122 101man:
c91d032e 102 @$(MAKE) -C man $(C)
f59b7122 103
9166e6ed 104modules: $(LIBZNC) include/znc/Csocket.h
84ec4978 105 @$(MAKE) -C modules $(C)
d280f386 106
d9591e95 107clean:
6169df3f 108 rm -rf $(CLEAN)
f72e2f8a 109 @$(MAKE) -C modules clean;
f59b7122 110 @$(MAKE) -C man clean
d9591e95 111
44431c46 112distclean: clean
6169df3f 113 rm -rf $(DISTCLEAN)
d9591e95 114
9166e6ed 115src/%.o: src/%.cpp Makefile include/znc/Csocket.h
afeab4a9
AS
116 @mkdir -p .depend src
117 $(E) Building core object $*...
34d0da20 118 $(Q)$(CXX) $(CXXFLAGS) -c -o $@ $< -MD -MF .depend/$*.dep -MT $@
b6fadce9 119
9166e6ed 120test/%.o: test/%.cpp Makefile include/znc/Csocket.h
e13bfa11
AS
121 @mkdir -p .depend test
122 $(E) Building test object $*...
17907784 123 $(Q)$(CXX) $(CXXFLAGS) -I$(GTEST_DIR)/include -c -o $@ $< -MD -MF .depend/$*.test.dep -MT $@
e13bfa11 124
17907784 125test/gtest-all.o: $(GTEST_DIR)/src/gtest-all.cc Makefile
e13bfa11
AS
126 @mkdir -p .depend test
127 $(E) Building test object gtest-all...
17907784 128 $(Q)$(CXX) $(CXXFLAGS) -I$(GTEST_DIR)/include -I$(GTEST_DIR) -c -o $@ $< -MD -MF .depend/gtest-all.dep -MT $@
e13bfa11 129
17907784 130test/gtest-main.o: $(GTEST_DIR)/src/gtest_main.cc Makefile
e13bfa11
AS
131 @mkdir -p .depend test
132 $(E) Building test object gtest-main...
17907784 133 $(Q)$(CXX) $(CXXFLAGS) -I$(GTEST_DIR)/include -c -o $@ $< -MD -MF .depend/gtest-main.dep -MT $@
e13bfa11 134
17907784 135ifneq "$(GTEST_DOWNLOAD)" ""
e13bfa11 136test/gtest.zip:
17907784 137 @mkdir -p .depend test
e13bfa11
AS
138 $(E) Downloading GoogleTest $(GTEST_VER)
139 $(Q)wget http://googletest.googlecode.com/files/gtest-$(GTEST_VER).zip -O $@
140
17907784 141$(GTEST_DIR)/src/gtest-all.cc $(GTEST_DIR)/src/gtest_main.cc $(GTEST_DIR)/include/gtest/gtest.h: test/gtest.zip
e13bfa11 142 $(E) Unpacking GoogleTest $(GTEST_VER)
627b53b4
AS
143 $(Q)test -r $@ || unzip $^ -d test/
144 $(Q)test -r $@
145 $(Q)touch -c $@
17907784 146endif
e13bfa11 147
90b4c882 148ifneq "THIS_IS_NOT_TARBALL" ""
bbde9ab4
AS
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
ce1543c5 151src/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)
a1311277 152 @mkdir -p .depend src
58a34fa5 153 $(E) Building source file version.cpp...
3a7dc7aa 154 $(Q)WRITE_OUTPUT=yes $(srcdir)/version.sh "$(GIT)" > .version_extra 2> /dev/null
cc279666 155
9166e6ed
AS
156CLEAN += src/version.cpp src/Csocket.cpp include/znc/Csocket.h
157
158src/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>:' $^ > $@
162include/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>:' $^ > $@
ffd1352f
AS
166third_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
bbde9ab4 169endif
a1311277 170
432a04e5 171install: znc $(LIBZNC)
a08ec52d
US
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)
4c7808c5 177 cp -R $(srcdir)/webskins $(DESTDIR)$(DATADIR)
0cc8bebd 178 find $(DESTDIR)$(DATADIR)/webskins -type d -exec chmod 0755 '{}' \;
179 find $(DESTDIR)$(DATADIR)/webskins -type f -exec chmod 0644 '{}' \;
eb307ddc 180 $(INSTALL_PROGRAM) znc $(DESTDIR)$(bindir)
eb307ddc 181 $(INSTALL_SCRIPT) znc-buildmod $(DESTDIR)$(bindir)
afeab4a9
AS
182 $(INSTALL_DATA) $(srcdir)/include/znc/*.h $(DESTDIR)$(includedir)/znc
183 $(INSTALL_DATA) include/znc/zncconfig.h $(DESTDIR)$(includedir)/znc
eb307ddc 184 $(INSTALL_DATA) znc.pc $(DESTDIR)$(PKGCONFIGDIR)
84ec4978 185 @$(MAKE) -C modules install DESTDIR=$(DESTDIR);
bec75207 186 if test -n "$(LIBZNC)"; then \
a08ec52d 187 test -d $(DESTDIR)$(LIBZNCDIR) || $(INSTALL) -d $(DESTDIR)$(LIBZNCDIR) || exit 1 ; \
eb307ddc 188 $(INSTALL_PROGRAM) $(LIBZNC) $(DESTDIR)$(LIBZNCDIR) || exit 1 ; \
bec75207 189 fi
f59b7122 190 @$(MAKE) -C man install DESTDIR=$(DESTDIR)
701c0f35
AS
191 @HAVE_SYSTEMD_TRUE@test -d $(DESTDIR)$(systemdsystemunitdir) || $(INSTALL) -d $(DESTDIR)$(systemdsystemunitdir)
192 @HAVE_SYSTEMD_TRUE@$(INSTALL_DATA) $(srcdir)/znc.service $(DESTDIR)$(systemdsystemunitdir)
1f9b20a9 193 @echo ""
f1932b93 194 @echo "******************************************************************"
1f9b20a9
AS
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"
6169df3f 201
bec75207 202uninstall:
203 rm $(DESTDIR)$(bindir)/znc
bec75207 204 rm $(DESTDIR)$(bindir)/znc-buildmod
205 rm $(DESTDIR)$(includedir)/znc/*.h
206 rm $(DESTDIR)$(PKGCONFIGDIR)/znc.pc
0cc8bebd 207 rm -rf $(DESTDIR)$(DATADIR)/webskins
bec75207 208 if test -n "$(LIBZNC)"; then \
73ba0488 209 rm $(DESTDIR)$(LIBZNCDIR)/$(LIBZNC) || exit 1 ; \
bec75207 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)
5a2844f9 219 @echo "Successfully uninstalled, but empty directories were left behind"
bec75207 220
e13bfa11
AS
221test: unittest
222 $(Q)./unittest
223
3637091b 224-include $(wildcard .depend/*.dep)