-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
48 lines (35 loc) · 1.12 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
# Usage:
# make # compile everything
# make clean # remove all binaries and objects
.PHONY: all setup clean cleanall debug install
COMP = g++
ODIR = obj
SDIR = src/cpp
BDIR = bin
EDIR = externals
BIN := ${BDIR}/pynat.so
SRC = sniffer.cpp pySniffer.cpp pynat.cpp packetPool.cpp coreFunctions.cpp packet.cpp pyCoreFunctions.cpp
SRC := ${SRC:%=${SDIR}/%}
DBIN := ${BDIR}/sniffer
DSRC = packet.cpp packetPool.cpp coreFunctions.cpp sniffer.cpp main.cpp
DOBJ := ${DSRC:%.cpp=${ODIR}/%.o}
all: setup ${BIN}
debug: setup ${DBIN}
setup: ${SDIR}/
@if [ ! -d "${ODIR}" ]; then mkdir ${ODIR}; fi
@if [ ! -d "${BDIR}" ]; then mkdir ${BDIR}; fi
${BIN}: ${SRC}
CC=g++ python3 setup.py build --build-temp=${ODIR} --build-lib=${BDIR} && \
mv ${BDIR}/pynat.cpython* ${BDIR}/pynat.so
${ODIR}/%.o: ${SDIR}/%.cpp
${COMP} -c $< -o $@ -I${EDIR}
${DBIN}: ${DOBJ}
${COMP} -o $@ $^ ${EDIR}/sqlite3.o -L${EDIR} -ltins -lpthread -ldl
clean:
@rm -rvf ${ODIR}
@find Plugins src -name __pycache__ -type d -exec rm -rvf '{}' +
cleanall: clean
@rm -rvf ${BDIR}
install:
cp ${EDIR}/libtins.so /usr/lib/
ln -s /usr/lib/libtins.so /usr/lib/libtins.so.4.3