WaveDecode_buildroot.mak 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. # ----------------------------------------------------------------------
  2. #
  3. # Project: C&M Video decoder sample
  4. #
  5. # ----------------------------------------------------------------------
  6. .PHONY: CREATE_DIR
  7. BUILD_CONFIGURATION := EmbeddedRiscvLinux
  8. PRODUCT := WAVE511
  9. #PRODUCT := WAVE521C
  10. $(shell cp sample_v2/component_list_decoder.h sample_v2/component/component_list.h)
  11. USE_PTHREAD = yes
  12. USE_RTL_SIM = no
  13. LINT_HOME = etc/lint
  14. UNAME = $(shell uname -a)
  15. ifneq (,$(findstring i386, $(UNAME)))
  16. USE_32BIT = yes
  17. endif
  18. ifeq ($(RTL_SIM), 1)
  19. USE_RTL_SIM = yes
  20. endif
  21. REFC := 0
  22. ifeq ($(USE_32BIT), yes)
  23. PLATFORM = nativelinux
  24. else
  25. PLATFORM = nativelinux_64bit
  26. endif
  27. CROSS_CC_PREFIX =
  28. VDI_C = vdi/linux/vdi.c
  29. VDI_OSAL_C = vdi/linux/vdi_osal.c
  30. MM_C =
  31. PLATFORM_FLAGS =
  32. VDI_VPATH = vdi/linux
  33. ifeq ("$(BUILD_CONFIGURATION)", "NonOS")
  34. CROSS_CC_PREFIX = arm-none-eabi-
  35. VDI_C = vdi/nonos/vdi.c
  36. VDI_OSAL_C = vdi/nonos/vdi_osal.c
  37. MM_C = vdi/mm.c
  38. USE_PTHREAD = no
  39. PLATFORM = none
  40. DEFINES = -DLIB_C_STUB
  41. PLATFORM_FLAGS =
  42. VDI_VPATH = vdi/nonos
  43. NONOS_RULE = options_nonos.lnt
  44. endif
  45. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  46. CROSS_CC_PREFIX = arm-none-linux-gnueabi-
  47. PLATFORM = armlinux
  48. endif
  49. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  50. CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  51. PLATFORM = riscvlinux
  52. endif
  53. CC = $(CROSS_CC_PREFIX)gcc
  54. CXX = $(CROSS_CC_PREFIX)g++
  55. LINKER=$(CC)
  56. AR = $(CROSS_CC_PREFIX)ar
  57. INCLUDES = -I./vpuapi -I./ffmpeg/include -I./sample_v2/helper -I./sample_v2/helper/misc -I./sample_v2/component -I./vdi -I../
  58. INCLUDES += -I./sample_v2/component_decoder
  59. ifeq ($(USE_RTL_SIM), yes)
  60. DEFINES += -DCNM_SIM_PLATFORM -DCNM_SIM_DPI_INTERFACE -DSUPPORT_DECODER
  61. DEFINES += -D$(PRODUCT) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  62. else
  63. DEFINES += -D$(PRODUCT) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  64. endif # USE_SIM_PLATFORM
  65. DEFINES += -DUSE_FEEDING_METHOD_BUFFER
  66. CFLAGS += -g -I. -Wl,--fatal-warning $(INCLUDES) $(DEFINES) $(PLATFORM_FLAGS)
  67. ifeq ($(USE_RTL_SIM), yes)
  68. ifeq ($(IUS), 1)
  69. CFLAGS += -fPIC # ncverilog is 64bit version
  70. endif
  71. endif
  72. ARFLAGS += cru
  73. LDFLAGS = $(PLATFORM_FLAGS)
  74. ifeq ($(USE_PTHREAD), yes)
  75. LDLIBS += -lpthread
  76. endif
  77. LDLIBS += -lm
  78. BUILDLIST=DECTEST
  79. MAKEFILE=WaveDecode.mak
  80. DECTEST=libsfdec.so
  81. OBJDIR=obj
  82. ALLOBJS=*.o
  83. ALLDEPS=*.dep
  84. ALLLIBS=*.a
  85. RM=rm -f
  86. MKDIR=mkdir -p
  87. SOURCES_COMMON =main_helper.c vpuhelper.c bitstreamfeeder.c \
  88. bitstreamreader.c bsfeeder_fixedsize_impl.c bsfeeder_framesize_impl.c \
  89. bsfeeder_size_plus_es_impl.c bin_comparator_impl.c comparator.c \
  90. md5_comparator_impl.c yuv_comparator_impl.c bsfeeder_buffer_impl.c \
  91. cfgParser.c decoder_listener.c \
  92. cnm_video_helper.c container.c \
  93. datastructure.c debug.c \
  94. bw_monitor.c pf_monitor.c \
  95. cnm_app.c cnm_task.c component.c \
  96. component_dec_decoder.c component_dec_feeder.c component_dec_renderer.c \
  97. product.c vpuapifunc.c vpuapi.c \
  98. coda9.c wave5.c \
  99. $(VDI_C) $(VDI_OSAL_C) $(MM_C)
  100. VPATH = sample_v2:
  101. VPATH += sample_v2/component_encoder:
  102. VPATH += sample_v2/component_decoder:
  103. VPATH += sample_v2/helper:
  104. VPATH += sample_v2/helper/bitstream:
  105. VPATH += sample_v2/helper/comparator:
  106. VPATH += sample_v2/helper/display:sample_v2/helper/misc:sample_v2/helper/yuv:sample_v2/component:
  107. VPATH += vdi:
  108. VPATH += $(VDI_VPATH):vpuapi:vpuapi/coda9:vpuapi/wave
  109. VPATH2=$(patsubst %,-I%,$(subst :, ,$(VPATH)))
  110. OBJECTNAMES_COMMON=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES_COMMON)))
  111. OBJECTPATHS_COMMON=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_COMMON)))
  112. SOURCES_DECTEST = sample_v2/main_dec_test.c
  113. ifeq ($(USE_RTL_SIM), yes)
  114. SOURCES_DECTEST += sample/main_sim.c
  115. endif
  116. OBJECTNAMES_DECTEST=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES_DECTEST)))
  117. OBJECTPATHS_DECTEST=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_DECTEST))) $(OBJECTPATHS_COMMON)
  118. all: $(BUILDLIST)
  119. ifeq ($(USE_RTL_SIM), yes)
  120. DECTEST: CREATE_DIR $(OBJECTPATHS_COMMON)
  121. else
  122. DECTEST: CREATE_DIR $(OBJECTPATHS_COMMON)
  123. $(LINKER) -fPIC -shared -o $(DECTEST) $(LDFLAGS) -Wl,-gc-section -Wl,--start-group $(OBJECTPATHS_COMMON) $(LDLIBS) -Wl,--end-group
  124. endif
  125. -include $(OBJECTPATHS:.o=.dep)
  126. clean:
  127. $(RM) $(DECTEST)
  128. $(RM) $(OBJDIR)/$(ALLOBJS)
  129. $(RM) $(OBJDIR)/$(ALLDEPS)
  130. CREATE_DIR:
  131. -mkdir -p $(OBJDIR)
  132. obj/%.o: %.c $(MAKEFILE)
  133. $(CC) -fPIC -shared $(CFLAGS) -Wall -Werror -c $< -o $@ -MD -MF $(@:.o=.dep)
  134. lint:
  135. "$(LINT_HOME)/flint" -i"$(LINT_HOME)" $(DEFINES) $(INCLUDES) $(VPATH2) linux_std.lnt $(HAPS_RULE) $(NONOS_RULE) $(SOURCES_COMMON)