--- a/Makefile Fri Mar 13 17:38:23 2009 +0200
+++ b/Makefile Sun Mar 15 01:17:22 2009 +0200
@@ -34,25 +34,28 @@
# modules
module_objs = $(patsubst src/%.c,obj/%.o,$(wildcard src/$(1)/*.c))
-CORE_OBJS = obj/error.o obj/log.o obj/chain.o obj/signals.o
+CORE_OBJS = obj/error.o obj/log.o obj/chain.o
SOCK_OBJS = obj/sock.o obj/sock_tcp.o
SOCK_TEST_OBJS = obj/sock_test.o
SOCK_GNUTLS_OBJS = obj/sock_gnutls.o
LINEPROTO_OBJS = obj/line_proto.o
IRC_OBJS = obj/irc_line.o obj/irc_conn.o obj/irc_net.o obj/irc_chan.o obj/irc_cmd.o obj/irc_proto.o obj/irc_client.o
+NEXUS_OBJS = obj/signals.o obj/module.o
IRC_LOG_OBJS = obj/irc_log.o
# XXX: not yet there
#CORE_OBJS = obj/lib/log.o obj/lib/signals.o
# first target
-all: ${BIN_PATHS}
+all: ${BIN_PATHS} modules/irc_log.so
# binaries
-bin/nexus: ${CORE_OBJS} ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS} ${LINEPROTO_OBJS} ${IRC_OBJS} ${IRC_LOG_OBJS}
+bin/nexus: ${CORE_OBJS} ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS} ${LINEPROTO_OBJS} ${IRC_OBJS} ${IRC_LOG_OBJS} ${NEXUS_OBJS}
bin/test: ${CORE_OBJS} ${SOCK_OBJS} ${SOCK_GNUTLS_OBJS} ${SOCK_TEST_OBJS} ${LINEPROTO_OBJS} ${IRC_OBJS}
+modules/irc_log.so: ${CORE_OBJS} ${IRC_OBJS}
+
# computed
CFLAGS = ${MODE_CFLAGS} ${FIXED_CFLAGS} ${LIBEVENT_CFLAGS} ${GNUTLS_CFLAGS} ${EVSQL_CFLAGS}
LDFLAGS = ${LIBEVENT_LDFLAGS} ${GNUTLS_LDFLAGS} ${EVSQL_LDFLAGS}
@@ -89,11 +92,14 @@
# XXX: removed $(CPPFLAGS)
obj/%.o : src/%.c
- $(CC) -c $(CFLAGS) $< -o $@
+ $(CC) -fpic -c $(CFLAGS) $< -o $@
bin/% : obj/%.o
$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
+modules/%.so : obj/%.o
+ $(CC) -shared -Wl,-soname,$(basename %@) -o $@ $+ -lc
+
# documentation
DOXYGEN_PATH = /usr/bin/doxygen
DOXYGEN_CONF_PATH = doc/doxygen.conf