WaveDecodeMult.mak 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. # ----------------------------------------------------------------------
  2. #
  3. # Project: C&M Video multi instance sample
  4. #
  5. # ----------------------------------------------------------------------
  6. .PHONY: CREATE_DIR LIBTHEORA clean all
  7. BUILD_CONFIGURATION := EmbeddedRiscvLinux
  8. PRODUCT := WAVE511
  9. #PRODUCT := WAVE521C
  10. $(shell cp sample_v2/component_list_all.h sample_v2/component/component_list.h)
  11. USE_FFMPEG = no
  12. USE_PTHREAD = yes
  13. USE_RTL_SIM = no
  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. ifeq ($(SINGLE_THREAD), 1)
  22. USE_SINGLE_THREAD=yes
  23. endif
  24. ifeq ($(PRODUCT), CODA960)
  25. USE_LIBTHEORA=yes
  26. endif
  27. ifeq ($(PRODUCT), CODA980)
  28. USE_LIBTHEORA=yes
  29. endif
  30. ifeq ($(USE_32BIT), yes)
  31. PLATFORM = nativelinux
  32. else
  33. PLATFORM = nativelinux_64bit
  34. endif
  35. CROSS_CC_PREFIX =
  36. VDI_C = vdi/linux/vdi.c
  37. VDI_OSAL_C = vdi/linux/vdi_osal.c
  38. MM_C =
  39. PLATFORM_FLAGS =
  40. VDI_VPATH = vdi/linux
  41. ifeq ("$(BUILD_CONFIGURATION)", "NonOS")
  42. CROSS_CC_PREFIX = arm-none-eabi-
  43. VDI_C = vdi/nonos/vdi.c
  44. VDI_OSAL_C = vdi/nonos/vdi_osal.c
  45. MM_C = vdi/mm.c
  46. USE_FFMPEG = no
  47. USE_PTHREAD = no
  48. PLATFORM = none
  49. DEFINES = -DLIB_C_STUB
  50. PLATFORM_FLAGS =
  51. VDI_VPATH = vdi/nonos
  52. endif
  53. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  54. CROSS_CC_PREFIX = arm-none-linux-gnueabi-
  55. PLATFORM = armlinux
  56. endif
  57. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  58. CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  59. PLATFORM = riscvlinux
  60. endif
  61. CC = $(CROSS_CC_PREFIX)gcc
  62. CXX = $(CROSS_CC_PREFIX)g++
  63. LINKER=$(CC)
  64. AR = $(CROSS_CC_PREFIX)ar
  65. INCLUDES = -I./theoraparser/include -I./vpuapi -I./ffmpeg/include -I./sample_v2/helper -I./sample_v2/helper/misc -I./sample_v2/component -I./vdi
  66. INCLUDES += -I./sample_v2/component_decoder -I./sample_v2/component_encoder
  67. DEFINES += -D$(PRODUCT) -DSUPPORT_MULTI_INSTANCE_TEST
  68. ifeq ($(PRODUCT), WAVE521)
  69. DEFINES += -DSUPPORT_ENCODER
  70. endif
  71. ifeq ($(PRODUCT), WAVE517)
  72. DEFINES += -DSUPPORT_ENCODER
  73. endif
  74. ifeq ($(SCALER), 1)
  75. DEFINES += -DSUPPORT_MINI_PIPPEN
  76. endif
  77. ifeq ($(USE_RTL_SIM), yes)
  78. DEFINES += -DCNM_SIM_PLATFORM -DCNM_SIM_DPI_INTERFACE -DSUPPORT_MULTI_INSTANCE_TEST -DUSE_SINGLE_THREAD
  79. USE_SINGLE_THREAD=yes
  80. MM_C = vdi/mm.c
  81. else # USE_RTL_SIM
  82. endif # USE_RTL_SIM
  83. ifeq ($(USE_SINGLE_THREAD), yes)
  84. DEFINES += -DUSE_SINGLE_THREAD
  85. endif
  86. ifeq ($(GDI),1)
  87. DEFINES += -DSUPPORT_WAVE511_GDI
  88. endif
  89. DEFINES += $(USER_DEFINES)
  90. CFLAGS += -g -I. -Wno-implicit-function-declaration -Wno-format -Wl,--fatal-warning $(INCLUDES) $(DEFINES) $(PLATFORM_FLAGS)
  91. ifeq ($(USE_RTL_SIM), yes)
  92. ifeq ($(IUS), 1)
  93. CFLAGS += -fPIC # ncverilog is 64bit version
  94. endif
  95. endif
  96. ARFLAGS += cru
  97. ifeq ($(USE_LIBTHEORA), yes)
  98. LDFLAGS += $(PLATFORM_FLAGS) -L./theoraparser/
  99. LDLIBS += -ltheoraparser
  100. endif
  101. ifeq ($(USE_FFMPEG), yes)
  102. LDLIBS += -lavformat -lavcodec -lavutil -lswresample -laom
  103. LDFLAGS += -L./ffmpeg/lib/$(PLATFORM)
  104. ifneq ($(USE_32BIT), yes)
  105. LDLIBS += -lz
  106. endif #USE_32BIT
  107. endif #USE_FFMPEG
  108. ifeq ($(USE_PTHREAD), yes)
  109. LDLIBS += -lpthread
  110. endif
  111. LDLIBS += -lm -lrt
  112. TARGET=multi_instance_dec_test
  113. MAKEFILE=WaveDecodeMult.mak
  114. OBJDIR=obj
  115. ALLOBJS=*.o
  116. ALLDEPS=*.dep
  117. ALLLIBS=*.a
  118. RM=rm -f
  119. MKDIR=mkdir -p
  120. SOURCES = main_multi_instance_test.c
  121. SOURCES += component_enc_encoder.c \
  122. component_enc_feeder.c \
  123. component_enc_reader.c \
  124. encoder_listener.c \
  125. yuvfeeder.c \
  126. yuvLoaderfeeder.c \
  127. yuvCfbcfeeder.c
  128. SOURCES += component_dec_decoder.c \
  129. component_dec_feeder.c \
  130. component_dec_renderer.c \
  131. decoder_listener.c \
  132. cnm_app.c \
  133. cnm_task.c \
  134. component.c \
  135. main_helper.c \
  136. vpuhelper.c \
  137. bitstreamfeeder.c \
  138. bitstreamreader.c \
  139. bsfeeder_fixedsize_impl.c \
  140. bsfeeder_framesize_impl.c \
  141. bsfeeder_size_plus_es_impl.c \
  142. bin_comparator_impl.c \
  143. comparator.c \
  144. md5_comparator_impl.c \
  145. yuv_comparator_impl.c \
  146. cfgParser.c \
  147. cnm_video_helper.c \
  148. container.c \
  149. datastructure.c \
  150. debug.c \
  151. bw_monitor.c \
  152. pf_monitor.c
  153. SOURCES += $(VDI_C) \
  154. $(VDI_OSAL_C) \
  155. $(MM_C) \
  156. vpuapi/product.c \
  157. vpuapi/vpuapifunc.c \
  158. vpuapi/vpuapi.c \
  159. vpuapi/coda9/coda9.c \
  160. vpuapi/wave/wave5.c
  161. VPATH = sample_v2:
  162. VPATH += sample_v2/component_encoder:
  163. VPATH += sample_v2/component_decoder:
  164. VPATH += sample_v2/helper:
  165. VPATH += sample_v2/helper/bitstream:
  166. VPATH += sample_v2/helper/comparator:
  167. VPATH += sample_v2/helper/display:sample_v2/helper/misc:sample_v2/helper/yuv:sample_v2/component:
  168. VPATH += vdi:
  169. ifeq ($(HAPS), 1)
  170. VPATH += vdi/haps
  171. endif
  172. ifeq ($(HAPS), 2)
  173. VPATH += vdi/haps
  174. endif
  175. VPATH += $(VDI_VPATH):vpuapi:vpuapi/coda9:vpuapi/wave
  176. OBJECTNAMES=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
  177. OBJECTPATHS=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES)))
  178. target_list = CREATE_DIR $(OBJECTPATHS)
  179. ifeq ($(USE_LIBTHEORA), yes)
  180. target_list += LIBTHEORA
  181. endif
  182. ifeq ($(USE_RTL_SIM), yes)
  183. all: $(target_list)
  184. else
  185. all: $(target_list)
  186. $(LINKER) -o $(TARGET) $(LDFLAGS) -Wl,-gc-section -Wl,--start-group $(OBJECTPATHS) $(LDLIBS) -Wl,--end-group
  187. endif
  188. -include $(OBJECTPATHS:.o=.dep)
  189. clean:
  190. $(RM) $(TARGET)
  191. $(RM) $(OBJDIR)/$(ALLOBJS)
  192. $(RM) $(OBJDIR)/$(ALLDEPS)
  193. $(RM) theoraparser/$(ALLOBJS)
  194. $(RM) theoraparser/$(ALLLIBS)
  195. $(RM) theoraparser/$(ALLDEPS)
  196. LIBTHEORA:
  197. cd theoraparser; make clean; make
  198. CREATE_DIR:
  199. -mkdir -p $(OBJDIR)
  200. obj/%.o: %.c $(MAKEFILE)
  201. $(CC) $(CFLAGS) -Wall -Werror -c $< -o $@ -MD -MF $(@:.o=.dep)