1 # Makefile for ctrlproxy
2 # Copyright (C) 2002-2008 Jelmer Vernooij <jelmer@samba.org>
3 # NOTE: This file is *NOT* autogenerated.
5 include Makefile.settings
7 BINS += ctrlproxy$(EXEEXT) ctrlproxyd$(EXEEXT)
16 LIBS += $(GNUTLS_LIBS)
17 CFLAGS += $(GNUTLS_CFLAGS)
19 CFLAGS+=-DHAVE_CONFIG_H -DSHAREDIR=\"$(cdatadir)\" -DDEFAULT_CONFIG_DIR=\"$(DEFAULT_CONFIG_DIR)\" -DHELPFILE=\"$(HELPFILE)\"
20 CFLAGS+=-ansi -Wall -DMODULESDIR=\"$(modulesdir)\" -DSTRICT_MEMORY_ALLOCS=
22 LIBIRC_STATIC = libirc.a
23 LIBIRC = $(LIBIRC_STATIC)
25 LIBIRC_SHARED = libirc.$(SHLIBEXT).$(PACKAGE_VERSION)
26 LIBIRC_SOVERSION = 1.0
27 LIBIRC_SONAME = libirc.$(SHLIBEXT).$(LIBIRC_SOVERSION)
29 .PHONY: all clean distclean install install-bin install-dirs install-doc install-data install-pkgconfig
61 src/linestack_file.o \
89 headers = src/admin.h \
99 dep_files = $(patsubst %.o, %.d, $(objs))
101 linestack-cmd$(EXEEXT): src/linestack-cmd.o $(objs) $(LIBIRC)
103 @$(LD) $(LIBS) -lreadline -rdynamic -o $@ $^
105 ctrlproxy$(EXEEXT): src/main.o $(objs) $(LIBIRC)
107 @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
109 daemon/main.o: CFLAGS+=-DDEFAULT_CONFIG_FILE=\"${sysconfdir}/ctrlproxyd.conf\" \
110 -DPIDFILE=\"${localstatedir}/run/ctrlproxyd.pid\"
112 ctrlproxyd$(EXEEXT): daemon/main.o $(objs) $(LIBIRC)
114 @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
116 ctrlproxy-admin$(EXEEXT): src/admin-cmd.o
118 @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
122 @$(CC) -I. -Ilib -Isrc $(CFLAGS) $(GCOV_CFLAGS) -c $< -o $@
125 @$(CC) -I. -Ilib -Isrc -M -MT $(<:.c=.o) $(CFLAGS) $< -o $@
127 # This looks a bit weird but is here to ensure that we never try to
128 # run ./autogen.sh outside of bzr checkouts
129 ifeq ($(BZR_CHECKOUT),yes)
130 configure: autogen.sh configure.ac acinclude.m4
137 ctrlproxy.pc Makefile.settings config.h: configure Makefile.settings.in ctrlproxy.pc.in
140 install: all install-dirs install-bin install-header install-data install-pkgconfig $(EXTRA_INSTALL_TARGETS)
142 $(INSTALL) -d $(DESTDIR)$(modulesdir)
144 uninstall: uninstall-bin uninstall-header uninstall-data uninstall-pkgconfig $(patsubst install-%,uninstall-%,$(EXTRA_INSTALL_TARGETS))
146 -rm -f $(DESTDIR)$(bindir)/ctrlproxy$(EXEEXT) \
147 $(DESTDIR)$(bindir)/ctrlproxy-admin$(EXEEXT)
148 -rmdir $(DESTDIR)$(bindir)
149 -rmdir $(DESTDIR)$(modulesdir)
152 $(INSTALL) -d $(DESTDIR)$(bindir)
153 $(INSTALL) $(BINS) $(DESTDIR)$(bindir)
156 -rm -f $(patsubst %,$(DESTDIR)$(destincludedir)/%,$(notdir $(headers) $(lib_headers)))
157 -rmdir $(DESTDIR)$(destincludedir)
160 $(INSTALL) -d $(DESTDIR)$(destincludedir)
161 $(INSTALL) -m 0644 $(lib_headers) $(headers) $(DESTDIR)$(destincludedir)
164 $(MAKE) -C doc PACKAGE_VERSION=$(PACKAGE_VERSION)
167 $(INSTALL) -d $(DESTDIR)$(docdir)
168 $(MAKE) -C doc install PACKAGE_VERSION=$(PACKAGE_VERSION)
171 $(MAKE) -C doc uninstall
172 -rmdir $(DESTDIR)$(docdir)
175 -rm -f $(DESTDIR)$(cdatadir)/motd
176 -rm -f $(DESTDIR)$(DEFAULT_CONFIG_DIR)/config
177 -rmdir $(DESTDIR)$(DEFAULT_CONFIG_DIR)
178 -rmdir $(DESTDIR)$(cdatadir)
181 $(INSTALL) -d $(DESTDIR)$(cdatadir)
182 $(INSTALL) -m 0644 motd $(DESTDIR)$(cdatadir)
183 $(INSTALL) -d $(DESTDIR)$(DEFAULT_CONFIG_DIR)
184 $(INSTALL) -d $(DESTDIR)$(DEFAULT_CONFIG_DIR)/networks
185 $(INSTALL) -m 0644 config.default $(DESTDIR)$(DEFAULT_CONFIG_DIR)/config
188 $(INSTALL) -d $(DESTDIR)$(libdir)/pkgconfig
189 $(INSTALL) -m 0644 ctrlproxy.pc $(DESTDIR)$(libdir)/pkgconfig
192 -rm -f $(DESTDIR)$(libdir)/pkgconfig/ctrlproxy.pc
193 -rmdir $(DESTDIR)$(libdir)/pkgconfig
196 $(GCOV) -f -p -o src/ src/*.c
199 lcov --base-directory `pwd` --directory . --capture --output-file ctrlproxy.info
200 genhtml -o coverage ctrlproxy.info
202 $(LIBIRC_STATIC): $(lib_objs)
206 $(LIBIRC_SHARED): $(lib_objs)
207 $(LD) -shared $(LDFLAGS) -Wl,-soname,$(LIBIRC_SONAME) -o $@ $^
213 @echo Removing dependency files
215 @echo Removing object files and executables
216 @rm -f src/*.o lib/*.o daemon/*.o testsuite/check ctrlproxy$(EXEEXT) testsuite/*.o *~
217 @rm -f linestack-cmd$(EXEEXT) ctrlproxy-admin$(EXEEXT)
218 @rm -f ctrlproxyd$(EXEEXT)
219 @rm -f $(LIBIRC_STATIC) $(LIBIRC_SHARED)
220 @echo Removing gcov output
221 @rm -f *.gcov *.gcno *.gcda */*.gcda */*.gcno */*.gcov
222 @echo Removing test output
228 dist: configure doc-dist distclean
231 rm -f build config.h ctrlproxy.pc *.log
232 rm -rf autom4te.cache/ config.log config.status
234 realclean:: distclean
235 @$(MAKE) -C doc clean
240 # RFC compliance testing using ircdtorture
242 TEST_SERVER := localhost
245 testsuite/ctrlproxyrc.torture: testsuite/ctrlproxyrc.torture.in
246 sed -e 's/@SERVER@/$(TEST_SERVER)/;s/@PORT@/$(TEST_PORT)/;' < $< > $@
248 rfctest: testsuite/ctrlproxyrc.torture
249 @$(IRCDTORTURE) -- ./ctrlproxy -d 0 -i TEST -r $<
252 check_objs = testsuite/test-cmp.o testsuite/test-user.o \
253 testsuite/test-admin.o testsuite/test-isupport.o \
254 testsuite/test-parser.o testsuite/test-state.o \
255 testsuite/test-util.o testsuite/test-line.o \
256 testsuite/torture.o testsuite/test-linestack.o \
257 testsuite/test-client.o testsuite/test-network.o \
258 testsuite/test-tls.o testsuite/test-redirect.o \
259 testsuite/test-networkinfo.o testsuite/test-ctcp.o \
260 testsuite/test-help.o testsuite/test-nickserv.o \
261 testsuite/test-url.o testsuite/test-motd.o \
262 testsuite/test-log-subst.o testsuite/test-transport.o
264 testsuite/check: $(check_objs) $(objs) $(LIBIRC)
266 @$(CC) $(LIBS) -o $@ $^ $(CHECK_LIBS)
268 check:: testsuite/check
269 @echo Running testsuite
270 @$(DEBUGGER) ./testsuite/check $(CHECK_OPTIONS)
273 $(MAKE) check CHECK_OPTIONS=-nsv
276 $(MAKE) check-nofork DEBUGGER="gdb --args"
278 -include $(dep_files)