Makefile 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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/common
  20. $(warning "the value of LOCAL_PATH is$(STAGING_DIR)")
  21. INCLUDES += -I$(STAGING_DIR)/usr/include/wave511/sample_v2/component/
  22. INCLUDES += -I$(STAGING_DIR)/usr/include/wave511/sample_v2/component_encoder/
  23. INCLUDES += -I$(STAGING_DIR)/usr/include/wave511/sample_v2/component_decoder/
  24. INCLUDES += -I$(STAGING_DIR)/usr/include/wave511/
  25. INCLUDES += -I$(STAGING_DIR)/usr/include/wave511/vpuapi/
  26. INCLUDES += -I$(STAGING_DIR)/usr/include/wave511/sample_v2/helper/
  27. CFLAGS += -g -I. -Wno-implicit-function-declaration -Wno-format -Wl,--fatal-warning $(INCLUDES) $(DEFINES) $(PLATFORM_FLAGS)
  28. CFLAGS += -fpic
  29. ARFLAGS += cru
  30. LDFLAGS = -ldl -lpthread
  31. OBJDIR=obj
  32. ALLOBJS=*.o
  33. ALLDEPS=*.dep
  34. ALLLIBS=*.a
  35. RM=rm -f
  36. MKDIR=mkdir -p
  37. SOURCES_COMMON = SF_OMX_Core.c SF_OMX_video_common.c
  38. SOURCES_COMMON += SF_OMX_Vdec_decoder.c SF_OMX_Venc_encoder.c
  39. SOURCES_TESTS_WAVE521 = wave521test.c
  40. SOURCES_TESTS_WAVE511 = wave511test.c
  41. VPATH = component/video/common:
  42. VPATH += component/video/enc:
  43. VPATH += component/video/dec:
  44. VPATH += core:
  45. VPATH += tests:
  46. OBJECTNAMES_COMMON=$(patsubst %.c,%.o,$(SOURCES_COMMON))
  47. OBJECTPATHS_COMMON=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_COMMON)))
  48. OBJECTNAMES_WAVE521=$(patsubst %.c,%.o,$(SOURCES_TESTS_WAVE521))
  49. OBJECTPATHS_WAVE521=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_WAVE521)))
  50. OBJECTNAMES_WAVE511=$(patsubst %.c,%.o,$(SOURCES_TESTS_WAVE511))
  51. OBJECTPATHS_WAVE511=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_WAVE511)))
  52. all: CREATE_DIR $(OBJECTPATHS_COMMON)
  53. $(CC) -fPIC -shared -o libsf-omx-il.so $(LDFLAGS) $(OBJECTPATHS_COMMON)
  54. wave521-test: CREATE_DIR $(OBJECTPATHS_WAVE521)
  55. $(CC) -o wave521test $(LDFLAGS) $(OBJECTPATHS_WAVE521) -lsf-omx-il -L./
  56. wave511-test: CREATE_DIR $(OBJECTPATHS_WAVE511)
  57. $(CC) -o wave511test $(LDFLAGS) $(OBJECTPATHS_WAVE511) -lsf-omx-il -L./
  58. clean:
  59. CREATE_DIR:
  60. -mkdir -p $(OBJDIR)
  61. obj/%.o: %.c $(MAKEFILE)
  62. $(CC) $(CFLAGS) -Wall -c $< -o $@ -MD -MF $(@:.o=.dep)