source: Makefile @ 17a6ee9

Last change on this file since 17a6ee9 was 17a6ee9, checked in by Wilmer van der Gaast <wilmer@…>, at 2010-04-11T14:37:06Z

Including DCC stuff again, with a wonderful extra layer of abstraction.
Some hooks are missing so sending files doesn't work yet. Receiving also
still seems to have some issues. On the plus side, at least the MSN/Jabber
modules work again.

  • Property mode set to 100644
File size: 3.7 KB
Line 
1###########################
2## Makefile for BitlBee  ##
3##                       ##
4## Copyright 2002 Lintux ##
5###########################
6
7### DEFINITIONS
8
9-include Makefile.settings
10
11# Program variables
12#objects = bitlbee.o chat.o dcc.o help.o ipc.o irc.o irc_commands.o nick.o query.o root_commands.o set.o storage.o $(STORAGE_OBJS)
13objects = bitlbee.o dcc.o help.o ipc.o irc.o irc_im.o irc_channel.o irc_commands.o irc_send.o irc_user.o nick.o root_commands.o set.o storage.o $(STORAGE_OBJS)
14headers = account.h bitlbee.h commands.h conf.h config.h help.h ipc.h irc.h log.h nick.h query.h set.h sock.h storage.h user.h lib/events.h lib/ftutil.h lib/http_client.h lib/ini.h lib/md5.h lib/misc.h lib/proxy.h lib/sha1.h lib/ssl_client.h lib/url.h protocols/ft.h protocols/nogaim.h
15subdirs = lib protocols
16
17ifeq ($(TARGET),i586-mingw32msvc)
18objects += win32.o
19LFLAGS+=-lws2_32
20EFLAGS+=-lsecur32
21OUTFILE=bitlbee.exe
22else
23objects += unix.o conf.o log.o
24OUTFILE=bitlbee
25endif
26
27# Expansion of variables
28subdirobjs = $(foreach dir,$(subdirs),$(dir)/$(dir).o)
29CFLAGS += -Wall
30
31all: $(OUTFILE)
32        $(MAKE) -C doc
33
34uninstall: uninstall-bin uninstall-doc
35        @echo -e '\nmake uninstall does not remove files in '$(DESTDIR)$(ETCDIR)', you can use make uninstall-etc to do that.\n'
36
37install: install-bin install-doc
38        @if ! [ -d $(DESTDIR)$(CONFIG) ]; then echo -e '\nThe configuration directory $(DESTDIR)$(CONFIG) does not exist yet, don'\''t forget to create it!'; fi
39        @if ! [ -e $(DESTDIR)$(ETCDIR)/bitlbee.conf ]; then echo -e '\nNo files are installed in '$(DESTDIR)$(ETCDIR)' by make install. Run make install-etc to do that.'; fi
40        @echo
41
42.PHONY:   install   install-bin   install-etc   install-doc \
43        uninstall uninstall-bin uninstall-etc uninstall-doc \
44        all clean distclean tar $(subdirs)
45
46Makefile.settings:
47        @echo
48        @echo Run ./configure to create Makefile.settings, then rerun make
49        @echo
50
51clean: $(subdirs)
52        rm -f *.o $(OUTFILE) core utils/bitlbeed
53        $(MAKE) -C tests clean
54
55distclean: clean $(subdirs)
56        rm -f Makefile.settings config.h bitlbee.pc
57        find . -name 'DEADJOE' -o -name '*.orig' -o -name '*.rej' -o -name '*~' -exec rm -f {} \;
58        $(MAKE) -C tests distclean
59
60check: all
61        $(MAKE) -C tests
62
63gcov: check
64        gcov *.c
65
66lcov: check
67        lcov --directory . --capture --output-file bitlbee.info
68        genhtml -o coverage bitlbee.info
69
70install-doc:
71        $(MAKE) -C doc install
72
73uninstall-doc:
74        $(MAKE) -C doc uninstall
75
76install-bin:
77        mkdir -p $(DESTDIR)$(BINDIR)
78        install -m 0755 $(OUTFILE) $(DESTDIR)$(BINDIR)/$(OUTFILE)
79
80uninstall-bin:
81        rm -f $(DESTDIR)$(BINDIR)/$(OUTFILE)
82
83install-dev:
84        mkdir -p $(DESTDIR)$(INCLUDEDIR)
85        install -m 0644 $(headers) $(DESTDIR)$(INCLUDEDIR)
86        mkdir -p $(DESTDIR)$(PCDIR)
87        install -m 0644 bitlbee.pc $(DESTDIR)$(PCDIR)
88
89uninstall-dev:
90        rm -f $(foreach hdr,$(headers),$(DESTDIR)$(INCLUDEDIR)/$(hdr))
91        -rmdir $(DESTDIR)$(INCLUDEDIR)
92        rm -f $(DESTDIR)$(PCDIR)/bitlbee.pc
93
94install-etc:
95        mkdir -p $(DESTDIR)$(ETCDIR)
96        install -m 0644 motd.txt $(DESTDIR)$(ETCDIR)/motd.txt
97        install -m 0644 bitlbee.conf $(DESTDIR)$(ETCDIR)/bitlbee.conf
98
99uninstall-etc:
100        rm -f $(DESTDIR)$(ETCDIR)/motd.txt
101        rm -f $(DESTDIR)$(ETCDIR)/bitlbee.conf
102        -rmdir $(DESTDIR)$(ETCDIR)
103
104tar:
105        fakeroot debian/rules clean || make distclean
106        x=$$(basename $$(pwd)); \
107        cd ..; \
108        tar czf $$x.tar.gz --exclude=debian --exclude=.bzr* $$x
109
110$(subdirs):
111        @$(MAKE) -C $@ $(MAKECMDGOALS)
112
113$(objects): %.o: %.c
114        @echo '*' Compiling $<
115        @$(CC) -c $(CFLAGS) $< -o $@
116
117$(objects): Makefile Makefile.settings config.h
118
119$(OUTFILE): $(objects) $(subdirs)
120        @echo '*' Linking $(OUTFILE)
121        @$(CC) $(objects) $(subdirobjs) -o $(OUTFILE) $(LFLAGS) $(EFLAGS)
122ifndef DEBUG
123        @echo '*' Stripping $(OUTFILE)
124        @-$(STRIP) $(OUTFILE)
125endif
126
127ctags: 
128        ctags `find . -name "*.c"` `find . -name "*.h"`
Note: See TracBrowser for help on using the repository browser.