Updated init script.
[dtbartle/bnbt.git] / Makefile
1 SHELL = /bin/sh
2 SYSTEM = $(shell uname)
3 C++ = g++
4 DFLAGS =
5 OFLAGS = -O2 -w
6 LFLAGS = -L. -lz
7 CFLAGS =
8
9 ifeq ($(SYSTEM),Linux) 
10 DFLAGS += -D__LINUX__ 
11 endif 
12  
13 ifeq ($(SYSTEM),Darwin)
14 DFLAGS += -D__APPLE__
15 OFLAGS += -flat_namespace
16 LFLAGS += -lpthread
17 else
18 LFLAGS += -pthread
19 CFLAGS += -pthread
20 endif
21
22 ifeq ($(SYSTEM),FreeBSD)
23 DFLAGS += -D__FREEBSD__
24 LFLAGS = -L. -lz -lpthread
25 CFLAGS = 
26 endif
27
28 ifeq ($(SYSTEM),SunOS)
29 DFLAGS += -D__SOLARIS__
30 LFLAGS = -lresolv -lsocket -lnsl -lpthread
31 CFLAGS =
32 endif
33
34 CFLAGS += $(OFLAGS) $(DFLAGS) -I.
35
36 OBJS = atom.o base64.o bencode.o client.o config.o link.o md5.o server.o sha1.o sort.o tracker_admin.o tracker_comments.o tracker_file.o tracker_index.o tracker_info.o tracker_login.o tracker_signup.o tracker_stats.o tracker_torrent.o tracker_upload.o tracker_users.o util.o
37 OBJS_BNBT = bnbt.o tracker.o tracker_announce.o tracker_scrape.o
38 OBJS_BNBTMYSQL = bnbt.mysql.o bnbt_mysql.mysql.o tracker.mysql.o tracker_announce.mysql.o tracker_scrape.mysql.o
39
40 #PROGS = ./bnbt ./bnbtmysql
41 PROGS = ./bnbt
42
43 all: $(PROGS)
44
45 ./bnbt: $(OBJS) $(OBJS_BNBT)
46         $(C++) -o ./bnbt $(OBJS) $(OBJS_BNBT) $(LFLAGS)
47
48 ./bnbtmysql: $(OBJS) $(OBJS_BNBTMYSQL)
49         $(C++) -o ./bnbtmysql $(OBJS) $(OBJS_BNBTMYSQL) $(LFLAGS) -L/usr/lib/mysql -lmysqlclient
50
51 clean:
52         rm -f $(OBJS) $(OBJS_BNBT) $(OBJS_BNBTMYSQL) $(PROGS)
53
54 %.o: %.cpp
55         $(C++) -o $@ $(CFLAGS) -c $<
56
57 %.mysql.o: %.cpp
58         $(C++) -o $@ $(CFLAGS) -DBNBT_MYSQL -c $<
59
60 ./bnbt: $(OBJS) $(OBJS_BNBT)
61
62 ./bnbtmysql: $(OBJS) $(OBJS_BNBTMYSQL)
63
64 all: $(PROGS)
65
66 atom.o: bnbt.h atom.h util.h
67 base64.o: base64.h
68 bencode.o: bnbt.h atom.h bencode.h util.h
69 bnbt.o: bnbt.h config.h link.h server.h util.h
70 client.o: bnbt.h atom.h base64.h client.h md5.h server.h tracker.h util.h
71 config.o: bnbt.h atom.h config.h tracker.h util.h
72 link.o: bnbt.h atom.h bencode.h config.h link.h md5.h server.h tracker.h util.h
73 md5.o: md5.h
74 server.o: bnbt.h client.h config.h server.h tracker.h util.h
75 sha1.o: sha1.h
76 sort.o: bnbt.h sort.h tracker.h util.h
77 tracker.o: bnbt.h atom.h bencode.h config.h md5.h server.h sort.h tracker.h util.h
78 tracker_admin.o: bnbt.h atom.h link.h tracker.h server.h util.h
79 tracker_announce.o: bnbt.h atom.h bencode.h link.h tracker.h util.h
80 tracker_comments.o: bnbt.h atom.h tracker.h util.h
81 tracker_file.o: bnbt.h atom.h tracker.h util.h
82 tracker_index.o: bnbt.h atom.h sort.h tracker.h util.h
83 tracker_info.o: bnbt.h atom.h bencode.h tracker.h util.h
84 tracker_login.o: bnbt.h atom.h tracker.h util.h
85 tracker_scrape.o: bnbt.h atom.h bencode.h tracker.h util.h
86 tracker_signup.o: bnbt.h atom.h tracker.h util.h
87 tracker_stats.o: bnbt.h atom.h bencode.h sort.h tracker.h util.h
88 tracker_torrent.o: bnbt.h atom.h bencode.h tracker.h util.h
89 tracker_upload.o: bnbt.h atom.h bencode.h client.h tracker.h util.h
90 tracker_users.o: bnbt.h atom.h md5.h sort.h tracker.h util.h
91 util.o: bnbt.h atom.h bencode.h sha1.h tracker.h util.h
92
93 bnbt.mysql.o: bnbt.h bnbt_mysql.h config.h link.h server.h util.h
94 bnbt_mysql.mysql.o: bnbt.h bnbt_mysql.h util.h
95 tracker.mysql.o: bnbt.h bnbt_mysql.h atom.h bencode.h config.h md5.h server.h sort.h tracker.h util.h
96 tracker_announce.mysql.o: bnbt.h bnbt_mysql.h atom.h bencode.h link.h tracker.h util.h
97 tracker_scrape.mysql.o: bnbt.h bnbt_mysql.h atom.h bencode.h tracker.h util.h
98
99 install: $(PROGS)
100         install -m 755 bnbt $(DESTDIR)/usr/sbin
101 #       install -m 755 bnbtmysql $(DESTDIR)/bin
102         install -m 644 bnbt.cfg $(DESTDIR)/etc/bnbt.cfg