Makefile 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. # SPDX-License-Identifier: GPL-2.0
  2. #
  3. # Copyright (C) 2021 StarFive Technology Co., Ltd.
  4. #
  5. # Project: Starfive Openmax IL Shimlayer
  6. #
  7. .PHONY: CREATE_DIR
  8. BUILD_CONFIGURATION := EmbeddedRiscvLinux
  9. PRODUCT := OMX_IL
  10. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  11. CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  12. PLATFORM = riscvlinux
  13. endif
  14. CC = $(CROSS_CC_PREFIX)gcc
  15. CXX = $(CROSS_CC_PREFIX)g++
  16. LINKER=$(CC)
  17. AR = $(CROSS_CC_PREFIX)ar
  18. DEFINES = -DUSE_FEEDING_METHOD_BUFFER
  19. INCLUDES = -I./include/khronos -I./core -I./component/video/wave5/common -I./component/video/wave4 -I./component/helper
  20. $(warning "the value of LOCAL_PATH is$(STAGING_DIR)")
  21. INCLUDES += -I$(STAGING_DIR)/usr/include/
  22. INCLUDES += -I$(STAGING_DIR)/usr/include/wave420l/
  23. INCLUDES += -I$(STAGING_DIR)/usr/include/wave420l/vpuapi/
  24. INCLUDES += -I$(STAGING_DIR)/usr/include/wave420l/sample/helper/
  25. #INCLUDES += -I$(STAGING_DIR)/usr/include/wave420l/sample/helper/misc/
  26. #mjpeg
  27. INCLUDES += -I./component/image/common
  28. CFLAGS += -g -I. $(INCLUDES) $(DEFINES) $(PLATFORM_FLAGS)
  29. CFLAGS += -fpic
  30. ARFLAGS += cru
  31. LDFLAGS = -ldl -lpthread -Wl,--fatal-warning
  32. LDFLAGS_FFMPEG = -lavformat -lavcodec -lavutil -lswresample
  33. OBJDIR=obj
  34. ALLOBJS=*.o
  35. ALLDEPS=*.dep
  36. ALLLIBS=*.a
  37. RM=rm -f
  38. MKDIR=mkdir -p
  39. #vpu
  40. SOURCES_COMMON = SF_OMX_Core.c SF_OMX_video_common.c
  41. SOURCES_COMMON += SF_OMX_Vdec_decoder.c
  42. SOURCES_COMMON += SF_OMX_Wave420L_encoder.c
  43. SOURCES_COMMON += sf_queue.c
  44. SOURCES_COMMON += sf_thread.c
  45. SOURCES_COMMON += sf_semaphore.c
  46. #mjpeg
  47. SOURCES_COMMON += SF_OMX_mjpeg_common.c SF_OMX_Mjpeg_decoder.c
  48. #test
  49. SOURCES_DEC_TEST = dec_test.c
  50. SOURCES_ENC_TEST = enc_test.c
  51. MJPET_SOURCES_DEC_TEST = mjpeg_dec_test.c
  52. VPATH = component/video/wave5/common:
  53. #VPATH += component/video/enc:
  54. VPATH += component/video/wave5/dec:
  55. VPATH += component/video/wave4:
  56. VPATH += component/helper:
  57. VPATH += core:
  58. VPATH += tests:
  59. #mjpeg
  60. VPATH += component/image/common:
  61. VPATH += component/image/dec:
  62. OBJECTNAMES_COMMON=$(patsubst %.c,%.o,$(SOURCES_COMMON))
  63. OBJECTPATHS_COMMON=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_COMMON)))
  64. OBJECTNAMES_DEC_TEST=$(patsubst %.c,%.o,$(SOURCES_DEC_TEST))
  65. OBJECTPATHS_DEC_TEST=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_DEC_TEST)))
  66. OBJECTNAMES_ENC_TEST=$(patsubst %.c,%.o,$(SOURCES_ENC_TEST))
  67. OBJECTPATHS_ENC_TEST=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_ENC_TEST)))
  68. OBJECTNAMES_MJPEG_DEC_TEST=$(patsubst %.c,%.o,$(MJPET_SOURCES_DEC_TEST))
  69. OBJECTPATHS_MJPEG_DEC_TEST=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_MJPEG_DEC_TEST)))
  70. all: omx-il
  71. omx-il: CREATE_DIR $(OBJECTPATHS_COMMON)
  72. $(CC) -g -fPIC -shared -o libsf-omx-il.so $(OBJECTPATHS_COMMON)
  73. test: video-dec-test video-enc-test mjpeg-dec-test
  74. video-dec-test: CREATE_DIR $(OBJECTPATHS_DEC_TEST)
  75. $(CC) -o video_dec_test $(LDFLAGS) $(LDFLAGS_FFMPEG) -lsf-omx-il $(OBJECTPATHS_DEC_TEST) -L./
  76. video-enc-test: CREATE_DIR $(OBJECTPATHS_ENC_TEST)
  77. $(CC) -o video_enc_test $(LDFLAGS) $(LDFLAGS_FFMPEG) -lsf-omx-il $(OBJECTPATHS_ENC_TEST) -L./
  78. mjpeg-dec-test: CREATE_DIR $(OBJECTPATHS_MJPEG_DEC_TEST)
  79. $(CC) -g -o mjpeg_dec_test $(LDFLAGS) $(LDFLAGS_FFMPEG) -lsf-omx-il $(OBJECTPATHS_MJPEG_DEC_TEST) -L./
  80. clean:
  81. CREATE_DIR:
  82. -mkdir -p $(OBJDIR)
  83. obj/%.o: %.c $(MAKEFILE)
  84. $(CC) $(CFLAGS) -Wall -Werror -c $< -o $@ -MD -MF $(@:.o=.dep)