Makefile 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. NAME = ebpf
  2. INI_DIR = /etc/php/7.4/cli/conf.d/
  3. EXTENSION_DIR = $(shell php-config --extension-dir)
  4. EXTENSION = ${NAME}.so
  5. INI = ${NAME}.ini
  6. COMPILER = g++
  7. LINKER = g++
  8. LIB_BCC = /opt/github/bcc/src
  9. COMPILER_FLAGS = -Wall -c -O2 -fpic -I${LIB_BCC}/cc -I${LIB_BCC}/cc/api -I${LIB_BCC}/cc/frontends/clang -I/usr/lib/llvm-14/include -DKERNEL_MODULES_DIR=\"/lib/modules/5.15.0-130-generic\" -o
  10. LINKER_FLAGS = -shared
  11. LINKER_DEPENDENCIES = -L/lib/llvm-14/lib /lib/libphpcpp.a /usr/lib/x86_64-linux-gnu/libbcc.a /usr/lib/x86_64-linux-gnu/libbcc-loader-static.a /usr/lib/x86_64-linux-gnu/libbcc_bpf.a -lclang-cpp
  12. RM = rm -f
  13. CP = cp -f
  14. MKDIR = mkdir -p
  15. SOURCES = $(wildcard src/*.cpp)
  16. OBJECTS = $(SOURCES:src/%.cpp=%.o)
  17. #
  18. # From here the build instructions start
  19. #
  20. BCC_SHARED_DIR=/opt/github/bcc/build/src/cc/CMakeFiles/bcc-shared.dir
  21. BCC1 = ${BCC_SHARED_DIR}/*.o
  22. all: ${OBJECTS} ${EXTENSION}
  23. ${EXTENSION}: ${OBJECTS}
  24. ${LINKER} ${LINKER_FLAGS} -o $@ ${OBJECTS} ${BCC} ${LINKER_DEPENDENCIES}
  25. ${OBJECTS}:
  26. ${COMPILER} ${COMPILER_FLAGS} $@ src/${@:%.o=%.cpp}
  27. install:
  28. ${CP} ${EXTENSION} ${EXTENSION_DIR}
  29. ${CP} ${INI} ${INI_DIR}
  30. clean:
  31. ${RM} ${EXTENSION} ${OBJECTS}