Makefile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. CC := gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
  2. CFLAGS := -Wall -Wextra -fPIC -O3
  3. # -funroll-loops -finline-functions -flto -flto
  4. LDFLAGS := -shared -ldl -lm -lrt -lstdc++fs
  5. SRCDIR := src
  6. LIBDIR := lib
  7. BUILDDIR := build
  8. # 获取src目录下所有cpp文件
  9. SRCEXT := cpp
  10. SOURCES := $(wildcard $(SRCDIR)/*.$(SRCEXT))
  11. # 生成目标so文件的路径及名称
  12. TARGET_LIB := $(LIBDIR)/libasj_ai.so
  13. # 获取头文件路径
  14. INCLUDE := -I include
  15. ifeq ($(NPU_TYPE), EEASY)
  16. # 亿智库
  17. NPU_INCLUDE := -I npu/eeasy/include \
  18. -I npu/eeasy/include/mbase
  19. NPU_LDFLAGS := -L npu/eeasy/lib -lopenvx -lopenvx-nn -lnn -lnn_base -lmbase -lax -llog
  20. NPU_SOURCES := npu/eeasy/src/EeasyModel.cpp
  21. NPU_OBJECTS := $(BUILDDIR)/EeasyModel.o
  22. else ifeq ($(NPU_TYPE), AXERA)
  23. # 爱芯库
  24. NPU_INCLUDE := -I npu/axera/include \
  25. -I npu/axera/include/axera
  26. NPU_LDFLAGS := -L npu/axera/lib -lax_run_joint -lax_interpreter_external -lax_interpreter -lax_sys -lax_npu_cv_kit -ldl -lm -lrt -lstdc++fs
  27. NPU_SOURCES := npu/axera/src/AxeraModel.cpp
  28. NPU_OBJECTS := $(BUILDDIR)/AxeraModel.o
  29. CFLAGS += -DAXERA_TARGET_CHIP_AX620
  30. # else
  31. # $(error HJJ提示:写错或者不写平台,需要加 NPU_TYPE=EEASY 或 NPU_TYPE=AXERA)
  32. endif
  33. CFLAGS += -D$(NPU_TYPE)_CHIP
  34. # 生成中间目标文件的路径
  35. OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
  36. $(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
  37. @mkdir -p $(BUILDDIR)
  38. $(CC) $(CFLAGS) $(INCLUDE) $(NPU_INCLUDE) -c -o $@ $<
  39. $(BUILDDIR)/%.o: $(NPU_SOURCES)
  40. @mkdir -p $(BUILDDIR)
  41. $(CC) $(CFLAGS) $(INCLUDE) $(NPU_INCLUDE) -c -o $@ $<
  42. $(TARGET_LIB): $(OBJECTS) $(NPU_OBJECTS)
  43. @mkdir -p $(LIBDIR)
  44. $(CC) $^ $(LDFLAGS) $(NPU_LDFLAGS) -o $@
  45. clean:
  46. @rm -rf $(BUILDDIR) $(LIBDIR)
  47. @rm -rf main
  48. test:
  49. ifeq ($(NPU_TYPE), EEASY)
  50. $(CC) -o main main.cpp npu/eeasy/src/utils.cpp \
  51. $(INCLUDE) $(NPU_INCLUDE) \
  52. -L$(LIBDIR) -lasj_ai $(NPU_LDFLAGS) \
  53. $(CFLAGS)
  54. else ifeq ($(NPU_TYPE), AXERA)
  55. $(CC) -o main main.cpp \
  56. $(INCLUDE) $(NPU_INCLUDE) \
  57. -L$(LIBDIR) -lasj_ai $(NPU_LDFLAGS) \
  58. $(CFLAGS)
  59. # else
  60. # $(error HJJ提示:写错或者不写平台,需要加 NPU_TYPE=EEASY 或 NPU_TYPE=AXERA)
  61. endif
  62. print-% : ; @echo $* = $($*)