Merge fix for logging of mode changes by charly.
[jelmer/ctrlproxy.git] / Makefile
index 5251332957f20b54cc2416d8a9887e13222d671f..121e5f31218e1f4ecc9af11561be650e5731053a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 # Makefile for ctrlproxy
-# Copyright (C) 2002-2008 Jelmer Vernooij <jelmer@samba.org>
+# Copyright (C) 2002-2009 Jelmer Vernooij <jelmer@samba.org>
 # NOTE: This file is *NOT* autogenerated.
 
 include Makefile.settings
@@ -18,14 +18,7 @@ LIBS += $(GNUTLS_LIBS)
 CFLAGS += $(GNUTLS_CFLAGS)
 
 CFLAGS+=-DHAVE_CONFIG_H -DDEFAULT_CONFIG_DIR=\"$(DEFAULT_CONFIG_DIR)\" -DHELPFILE=\"$(HELPFILE)\"
-CFLAGS+=-ansi -Wall -DMODULESDIR=\"$(modulesdir)\" -DSTRICT_MEMORY_ALLOCS=
-
-LIBIRC_STATIC = libirc.a
-LIBIRC = $(LIBIRC_STATIC)
-
-LIBIRC_SHARED = libirc.$(SHLIBEXT).$(PACKAGE_VERSION)
-LIBIRC_SOVERSION = 1.0
-LIBIRC_SONAME = libirc.$(SHLIBEXT).$(LIBIRC_SOVERSION)
+CFLAGS+=-DMODULESDIR=\"$(modulesdir)\" -DSTRICT_MEMORY_ALLOCS=
 
 .PHONY: all clean distclean install install-bin install-dirs install-doc install-data install-pkgconfig
 
@@ -41,31 +34,20 @@ experimental:: all
 doxygen:
        doxygen
 
-lib_objs = \
-          lib/state.o \
-          lib/client.o \
-          lib/transport.o \
-          lib/line.o \
-          lib/isupport.o \
-          lib/connection.o \
-          lib/url.o \
-          lib/util.o \
-          lib/listener.o
-all_objs += $(lib_objs)
+libircdir = libirc
+include $(libircdir)/Makefile
 
 objs = src/posix.o \
+          src/redirect.o \
           src/cache.o \
           src/util.o \
           src/hooks.o \
-          src/linestack.o \
           src/plugins.o \
           src/settings.o \
           src/log.o \
           src/client.o \
-          src/redirect.o \
           src/gen_config.o \
           src/repl.o \
-          src/linestack_file.o \
           src/ctcp_redirect.o \
           src/ctcp.o \
           src/motd.o \
@@ -81,25 +63,13 @@ objs = src/posix.o \
           src/log_subst.o \
           src/auto_away.o \
           src/network.o \
-          $(SSL_OBJS)
+          $(CTRLPROXY_SSL_OBJS)
 all_objs += $(objs)
 
-lib_headers = \
-                 lib/state.h \
-                 lib/client.h \
-                 lib/line.h \
-                 lib/isupport.h \
-                 lib/irc.h \
-                 lib/connection.h \
-                 lib/url.h \
-                 lib/listener.h \
-                 lib/util.h
-
 headers = src/admin.h \
                  src/ctcp.h \
                  src/ctrlproxy.h \
                  src/hooks.h \
-                 src/linestack.h \
                  src/log_support.h \
                  src/repl.h \
                  src/settings.h \
@@ -108,13 +78,9 @@ headers = src/admin.h \
                  src/cache.h
 dep_files = $(patsubst %.o, %.d, $(objs))
 
-linestack-cmd$(EXEEXT): src/linestack-cmd.o $(objs) $(LIBIRC)
-       @echo Linking $@
-       @$(LD) $(LIBS) -lreadline -rdynamic -o $@ $^
-
 ctrlproxy$(EXEEXT): src/main.o $(objs) $(LIBIRC)
-       @echo Linking $@
-       @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @echo Linking $@: $(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @$(LD) $(LDFLAGS) $(DYNAMIC) -o $@ $^ $(LIBS)
 
 src/settings.o: CFLAGS+=-DSYSCONFDIR=\"${sysconfdir}\"
 
@@ -126,18 +92,18 @@ daemon_objs += daemon/main.o daemon/user.o daemon/client.o daemon/backend.o
 
 ctrlproxyd$(EXEEXT): $(daemon_objs) $(objs) $(LIBIRC)
        @echo Linking $@
-       @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @$(CC) $(LDFLAGS) $(DYNAMIC) -o $@ $^ $(LIBS)
 
 ctrlproxy-admin$(EXEEXT): src/admin-cmd.o
        @echo Linking $@
-       @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @$(CC) $(LDFLAGS) $(DYNAMIC) -o $@ $^ $(LIBS)
 
 %.o: %.c
        @echo Compiling $<
-       @$(CC) -I. -Ilib -Isrc $(CFLAGS) $(GCOV_CFLAGS) -c $< -o $@
+       @$(CC) -I. -I$(libircdir) -Isrc $(CFLAGS) $(GCOV_CFLAGS) -c $< -o $@
 
 %.d: %.c config.h
-       @$(CC) -I. -Ilib -Isrc -M -MT $(<:.c=.o) $(CFLAGS) $(PYTHON_CFLAGS) $< -o $@
+       @$(CC) -I. -I$(libircdir) -Isrc -M -MT $(<:.c=.o) $(CFLAGS) $(PYTHON_CFLAGS) $< -o $@
 
 # This looks a bit weird but is here to ensure that we never try to 
 # run ./autogen.sh outside of bzr checkouts
@@ -172,12 +138,12 @@ install-bin:
        $(INSTALL) $(SBINS) $(DESTDIR)$(sbindir)
 
 uninstall-header:
-       -rm -f $(patsubst %,$(DESTDIR)$(destincludedir)/%,$(notdir $(headers) $(lib_headers)))
+       -rm -f $(patsubst %,$(DESTDIR)$(destincludedir)/%,$(notdir $(headers) $(libirc_headers)))
        -rmdir $(DESTDIR)$(destincludedir)
 
 install-header::
        $(INSTALL) -d $(DESTDIR)$(destincludedir)
-       $(INSTALL) -m 0644 $(lib_headers) $(headers) $(DESTDIR)$(destincludedir)
+       $(INSTALL) -m 0644 $(libirc_headers) $(headers) $(DESTDIR)$(destincludedir)
 
 doc::
        $(MAKE) -C doc PACKAGE_VERSION=$(PACKAGE_VERSION)
@@ -217,25 +183,19 @@ lcov:
        lcov --base-directory `pwd` --directory . --capture --output-file ctrlproxy.info
        genhtml -o coverage ctrlproxy.info
 
-$(LIBIRC_STATIC): $(lib_objs)
-       @echo Linking $@
-       @ar -rcs $@ $^
-
-$(LIBIRC_SHARED): $(lib_objs)
-       $(LD) -shared $(LDFLAGS) -Wl,-soname,$(LIBIRC_SONAME) -o $@ $^
-
 %.$(SHLIBEXT):
-       $(LD) -shared $(LDFLAGS) -o $@ $^
+       @echo Linking $@
+       @$(CC) -shared $(LDFLAGS) -o $@ $^
 
 cscope.out::
        cscope -b -R
 
 clean::
        @echo Removing object files and executables
-       @rm -f src/*.o lib/*.o daemon/*.o testsuite/check ctrlproxy$(EXEEXT) testsuite/*.o *~
-       @rm -f linestack-cmd$(EXEEXT) ctrlproxy-admin$(EXEEXT)
+       @rm -f src/*.o daemon/*.o python/*.o testsuite/check ctrlproxy$(EXEEXT) testsuite/*.o *~
+       @rm -f ctrlproxy-admin$(EXEEXT)
        @rm -f ctrlproxyd$(EXEEXT)
-       @rm -f $(LIBIRC_STATIC) $(LIBIRC_SHARED)
+       @rm -f mods/*.$(SHLIBEXT) mods/*.o
        @echo Removing gcov output
        @rm -f *.gcov *.gcno *.gcda  */*.gcda */*.gcno */*.gcov
        @echo Removing test output
@@ -258,32 +218,22 @@ ctags:
 
 # Python specific stuff below this line
 mods/python.o python/ctrlproxy.o: CFLAGS+=$(PYTHON_CFLAGS)
-mods/libpython.so: mods/python.o python/ctrlproxy.o python/irc.o
+mods/python.o python/ctrlproxy.o: CFLAGS+=-fPIC
+mods/libpython.so: mods/python.o python/ctrlproxy.o $(pyirc_objs)
 mods/libpython.so: LDFLAGS+=$(PYTHON_LDFLAGS)
 
-.PRECIOUS: python/irc.c python/ctrlproxy.c
-
-python/irc.o: CFLAGS+=$(PYTHON_CFLAGS)
-python/irc.$(SHLIBEXT): python/irc.o $(LIBIRC)
-python/irc.$(SHLIBEXT): LDFLAGS+=$(PYTHON_LDFLAGS) $(LIBS)
-
 ifeq ($(HAVE_PYTHON),yes)
-all_objs += python/irc.o mods/python.o python/ctrlproxy.o
+all_objs += $(pyirc_objs) mods/python.o python/ctrlproxy.o
 endif
 
-python:: python/irc.$(SHLIBEXT) mods/libpython.$(SHLIBEXT)
-
-check-python:: python/irc.$(SHLIBEXT)
-       PYTHONPATH=python trial tests.test_irc
+python:: mods/libpython.$(SHLIBEXT)
 
 install-python: all
        $(PYTHON) setup.py install --root="$(DESTDIR)"
 
 clean::
-       rm -f *.pyc
-       rm -f ctrlproxy.py listener.py
+       @rm -f python/tests/*.pyc
 #      $(PYTHON) setup.py clean
-       rm -rf build/
 
 # RFC compliance testing using ircdtorture
 
@@ -323,8 +273,21 @@ check-nofork::
 check-gdb: 
        $(MAKE) check-nofork DEBUGGER="gdb --args"
 
-dep_files = $(patsubst %.o,%d,$(all_objs))
 clean::
        @echo Removing dependency files
        @rm -f $(dep_files)
+
+examples:: example/libfoo.$(SHLIBEXT) example/libirc-simple
+
+example/libfoo.$(SHLIBEXT): example/foo.o
+example/foo.o: CFLAGS+=-I$(libircdir)
+
+example/libirc-simple: example/irc_simple.o $(LIBIRC)
+       @Linking $@
+       @$(CC) -o $@ $^
+
+example/irc_simple.o: CFLAGS+=-I$(libircdir)
+
+ifeq ($(GCC),yes)
 -include $(dep_files)
+endif