forked from abhijit13/Notification-Junction
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
144 lines (110 loc) · 3.34 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#CC variable contains the compiler that we want to use
CC=gcc
NJDESTDIR=/usr/bin
NJCOMMANDDIR=/usr/local/bin
NJLIBDIR=/usr/lib
NJAPPDIR=/usr/local/nj
all: nj libinotify np_register dummyapp stats app_register app_unregister np_unregister app_getnotify nj_nonblocklib.so libtcpdump dummyappnonblock libnj_nonblocklib.so
nj: nj.o app_dcll.o np_dcll.o rdwr_lock.o
$(CC) -g -Wall nj.o app_dcll.o np_dcll.o rdwr_lock.o -lpthread -o nj -ldl
nj.o: nj.c nj.h
$(CC) -g -Wall -c nj.c -o nj.o
app_dcll.o: app_dcll.c app_dcll.h
$(CC) -g -Wall -c app_dcll.c -o app_dcll.o
np_dcll.o: np_dcll.c np_dcll.h
$(CC) -g -Wall -c np_dcll.c -o np_dcll.o
rdwr_lock.o : rdwr_lock.c rdwr_lock.h
$(CC) -Wall -g -c rdwr_lock.c -o rdwr_lock.o
#Target 2
clean:
#commands
rm *.o
rm nj
rm libnpinotify.so
rm dummyapp
rm np_register
rm stats
rm app_getnotify
rm app_register
rm app_unregister
rm np_unregister
#socket files
rm app_reg_sock
rm app_unreg_sock
rm np_reg_sock
rm np_unreg_sock
rm app_getn_sock
rm statsock
#other files
rm File_PIDS.txt
rm dummyapp2
rm *.txt
#Target 3
libinotify: inotify.o
$(CC) -Wall -g inotify.o -shared -o libnpinotify.so
inotify.o: inotify.c inotify.h
$(CC) -Wall -g -c -fPIC inotify.c -o inotify.o
libtcpdump: tcpdump.o
$(CC) -Wall -g tcpdump.o -shared -o libnptcpdump.so -lpcap
tcpdump.o: tcpdump.c tcpdump.h
$(CC) -Wall -g -c -fPIC tcpdump.c -o tcpdump.o -lpcap
#Target 4
np_register:
$(CC) -Wall -g np_register.c -o np_register
#Target 4
dummyappnonblock: dummyappnonblock.o nj_nonblocklib.o
$(CC) -Wall -g dummyappnonblock.o nj_nonblocklib.o -o dummyappnonblock
dummyappnonblock.o: dummyappnonblock.c
$(CC) -Wall -c -g dummyappnonblock.c -o dummyappnonblock.o
dummyapp: dummyapp.o nj_nonblocklib.o
$(CC) -Wall -g dummyapp.o nj_nonblocklib.o -o dummyapp
dummyapp.o: dummyapp.c
$(CC) -Wall -c -g dummyapp.c -o dummyapp.o
nj_nonblocklib.o: nj_nonblocklib.c lib.h
$(CC) -Wall -c -g -fPIC nj_nonblocklib.c -o nj_nonblocklib.o
libnj_nonblocklib.so: nj_nonblocklib.o
$(CC) -Wall -g nj_nonblocklib.o -shared -o libnj_nonblocklib.so
nj_nonblocklib.so: nj_nonblocklib.o
$(CC) -Wall -g nj_nonblocklib.o -shared -o nj_nonblocklib.so
#Target 5
stats: stats.o
$(CC) -g stats.o -o stats
stats.o:
$(CC) -g -c stats.c -o stats.o
#Target 6
app_register: app_register.c
$(CC) -Wall -g app_register.c -o app_register
#Target 7
app_unregister: app_unregister.c
$(CC) -Wall -g app_unregister.c -o app_unregister
#Target 8
np_unregister: np_unregister.c
$(CC) -Wall -g np_unregister.c -o np_unregister
#Target 9
app_getnotify: app_getnotify.c
$(CC) -Wall -g app_getnotify.c -o app_getnotify
#Target 10 for installation
install: all
mkdir /usr/local/nj
install nj $(NJDESTDIR)
install np_register $(NJCOMMANDDIR)
install np_unregister $(NJCOMMANDDIR)
install app_register $(NJCOMMANDDIR)
install app_unregister $(NJCOMMANDDIR)
install stats $(NJCOMMANDDIR)
install libnpinotify.so $(NJLIBDIR)
install libnptcpdump.so $(NJLIBDIR)
install libnj_nonblocklib.so $(NJLIBDIR)
install dummyapp $(NJAPPDIR)
uninstall:
rm -rf /usr/local/nj
rm $(NJDESTDIR)/nj
rm $(NJCOMMANDDIR)/np_register
rm $(NJCOMMANDDIR)/np_unregister
rm $(NJCOMMANDDIR)/app_register
rm $(NJCOMMANDDIR)/app_unregister
rm $(NJCOMMANDDIR)/stats
rm $(NJLIBDIR)/libnpinotify.so
rm $(NJLIBDIR)/libnptcpdump.so
rm $(NJLIBDIR)/libnj_nonblocklib.so
rm $(NJAPPDIR)/dummyapp