Makefile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. ##
  2. # Copyright (C) 2021 Alibaba Group Holding Limited
  3. # Author: LuChongzhi <chongzhi.lcz@alibaba-inc.com>
  4. #
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License version 2 as
  7. # published by the Free Software Foundation.
  8. ##
  9. DIR_TO_ROOT=../..
  10. include $(DIR_TO_ROOT)/build.param
  11. TARGET := libhal_camera.a
  12. TARGET_DYNAMIC := libhal_camera.so
  13. OUTPUT_DIR := $(DIR_TO_ROOT)/output/hal
  14. LIBS += -lcamera_action
  15. #CFLAGS = -Wall -g -O0
  16. INCLUDE += -I./camera_action/include
  17. SRCS = $(wildcard *.c)
  18. OBJS = $(SRCS:.c=.o)
  19. ifeq ($(PLATFORM),simulator)
  20. LIBOPENCV_INC = $(shell pkg-config --cflags opencv)
  21. LIBOPENCV_LIBS = $(shell pkg-config --libs opencv)
  22. LIBS += -lcamera_utilities $(LIBOPENCV_LIBS)
  23. CFLAGS += $(LIBOPENCV_INC)
  24. endif
  25. all: camera_action $(TARGET) $(TARGET_DYNAMIC)
  26. camera_action:
  27. make -C camera_action
  28. $(TARGET_DYNAMIC): $(OBJS) camera_action
  29. @mkdir -p $(OUTPUT_DIR)/$(SO_LIB_DIR)
  30. @echo "Linking" $@ "..."
  31. $(CC) -shared -fPIC -o $(OUTPUT_DIR)/$(SO_LIB_DIR)/$@ .obj/*.o $(CFLAGS) $(INCLUDE) \
  32. -L$(DIR_TO_ROOT)/output/common/ -L$(DIR_TO_ROOT)/output/hal/ \
  33. -lhal_common -lcamera_action $(LIBS)
  34. $(TARGET): $(OBJS)
  35. @mkdir -p $(OUTPUT_DIR)
  36. @echo "Linking" $@ "..."
  37. $(AR) -r -o $(OUTPUT_DIR)/$@ .obj/*.o
  38. $(OBJS): %.o:%.c
  39. @mkdir -p .obj
  40. @echo "Compiling" $< "..."
  41. ifeq ($(PLATFORM),light)
  42. $(CC) $(CFLAGS) $(INCLUDE) -fPIC -c -o .obj/$(notdir $@) $<
  43. else
  44. $(CC) $(CFLAGS) $(INCLUDE) -c -o .obj/$(notdir $@) $<
  45. endif
  46. clean:
  47. rm -rf .obj
  48. rm -f $(OUTPUT_DIR)/$(TARGET)
  49. rm -f $(OUTPUT_DIR)/$(SO_LIB_DIR)/$(TARGET_DYNAMIC)
  50. make -C camera_action clean
  51. .PHONY: clean all camera_action