100 lines
2.6 KiB
Makefile
100 lines
2.6 KiB
Makefile
prefix := /usr/local
|
|
libdir := $(prefix)/lib
|
|
incdir := $(prefix)/include
|
|
|
|
all: libnethogs.so
|
|
|
|
LDFLAGS:= -shared
|
|
CXXINCLUDES :=
|
|
VISIBILITY=-fvisibility=hidden
|
|
ODIR_BASE := obj
|
|
|
|
ifeq ($(DEBUG),1)
|
|
# Debug mode options
|
|
$(info Bulding debug version)
|
|
ODIR:=$(ODIR_BASE)/lib/debug
|
|
CFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY)
|
|
CXXFLAGS?=-Wall --std=c++0x -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES)
|
|
else
|
|
# Release mode options
|
|
ODIR:=$(ODIR_BASE)/lib/release
|
|
CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY)
|
|
CXXFLAGS?=-Wall --std=c++0x -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES)
|
|
endif
|
|
|
|
OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o
|
|
OBJS=$(addprefix $(ODIR)/,$(OBJ_NAMES))
|
|
|
|
#$(info $(OBJS))
|
|
|
|
.PHONY: tgz
|
|
|
|
.PHONY: uninstall
|
|
|
|
install: libnethogs.so
|
|
install -d -m 755 $(DESTDIR)$(libdir)
|
|
install -m 755 libnethogs.so $(DESTDIR)$(libdir)
|
|
@echo
|
|
@echo "Installed libnethogs.so to $(DESTDIR)$(libdir)"
|
|
@echo
|
|
install -d -m 755 $(DESTDIR)$(incdir)
|
|
install -m 755 libnethogs.h $(DESTDIR)$(incdir)
|
|
@echo
|
|
@echo "Installed libnethogs.h to $(DESTDIR)$(incdir)"
|
|
@echo
|
|
ldconfig
|
|
|
|
uninstall:
|
|
rm $(DESTDIR)$(libdir)/libnethogs.so
|
|
rm $(DESTDIR)$(incdir)/libnethogs.h
|
|
ldconfig
|
|
|
|
libnethogs.so: $(OBJS)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(OBJS) -o $@ -lpcap
|
|
|
|
#-lefence
|
|
|
|
$(ODIR)/refresh.o: refresh.cpp refresh.h nethogs.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c refresh.cpp
|
|
|
|
$(ODIR)/process.o: process.cpp process.h nethogs.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c process.cpp
|
|
|
|
$(ODIR)/packet.o: packet.cpp packet.h nethogs.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c packet.cpp
|
|
|
|
$(ODIR)/connection.o: connection.cpp connection.h nethogs.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c connection.cpp
|
|
|
|
$(ODIR)/decpcap.o: decpcap.c decpcap.h
|
|
@mkdir -p $(ODIR)
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c decpcap.c
|
|
|
|
$(ODIR)/inode2prog.o: inode2prog.cpp inode2prog.h nethogs.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c inode2prog.cpp
|
|
|
|
$(ODIR)/conninode.o: conninode.cpp nethogs.h conninode.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ -c conninode.cpp
|
|
|
|
$(ODIR)/devices.o: devices.cpp devices.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CXXFLAGS) -o $@ -c devices.cpp
|
|
|
|
$(ODIR)/libnethogs.o: libnethogs.cpp libnethogs.h
|
|
@mkdir -p $(ODIR)
|
|
$(CXX) $(CXXFLAGS) -o $@ -c libnethogs.cpp -DVERSION=\"$(VERSION)\" -DSUBVERSION=\"$(SUBVERSION)\" -DMINORVERSION=\"$(MINORVERSION)\"
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f $(OBJS)
|
|
rm -f libnethogs.so
|
|
mkdir -p $(ODIR)
|
|
rmdir -p --ignore-fail-on-non-empty $(ODIR)
|
|
|