WaveEncoder_buildroot.mak 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. # ----------------------------------------------------------------------
  2. #
  3. # Project: C&M Video encoder sample
  4. #
  5. # ----------------------------------------------------------------------
  6. .PHONY: CREATE_DIR clean all
  7. PRODUCT := WAVE521C
  8. $(shell cp sample_v2/component_list_encoder.h sample_v2/component/component_list.h)
  9. USE_FFMPEG ?= no
  10. USE_PTHREAD = yes
  11. USE_RTL_SIM = no
  12. LINT_HOME = etc/lint
  13. TARGET = libsfenc.so
  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 ($(USE_32BIT), yes)
  22. PLATFORM = nativelinux
  23. else
  24. PLATFORM = riscvlinux
  25. endif
  26. CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  27. VDI_C = vdi/linux/vdi.c
  28. VDI_OSAL_C = vdi/linux/vdi_osal.c
  29. MM_C =
  30. PLATFORM_FLAGS =
  31. VDI_VPATH = vdi/linux
  32. ifeq ("$(BUILD_CONFIGURATION)", "NonOS")
  33. CROSS_CC_PREFIX = arm-none-eabi-
  34. VDI_C = vdi/nonos/vdi.c
  35. VDI_OSAL_C = vdi/nonos/vdi_osal.c
  36. MM_C = vdi/mm.c
  37. USE_FFMPEG = no
  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 = riscv64-buildroot-linux-gnu-
  47. PLATFORM = riscvlinux
  48. endif
  49. CC = $(CROSS_CC_PREFIX)gcc
  50. CXX = $(CROSS_CC_PREFIX)g++
  51. LINKER=$(CC)
  52. AR = $(CROSS_CC_PREFIX)ar
  53. INCLUDES = -I./vpuapi -I./ffmpeg/include -I./sample_v2/helper -I./sample_v2/helper/misc -I./sample_v2/component -I./vdi
  54. INCLUDES += -I./sample_v2/component_encoder
  55. DEFINES += -D$(PRODUCT)
  56. ifeq ($(USE_RTL_SIM), yes)
  57. DEFINES += -DCNM_SIM_PLATFORM -DCNM_SIM_DPI_INTERFACE -DSUPPORT_ENCODER
  58. MM_C = vdi/mm.c
  59. else
  60. endif #USE_RTL_SIM
  61. DEFINES += $(USER_DEFINES)
  62. DEFINES += -DUSE_FEEDING_METHOD_BUFFER
  63. CFLAGS += -g -I. -Wl,--fatal-warning $(INCLUDES) $(DEFINES) $(PLATFORM_FLAGS)
  64. ifeq ($(USE_RTL_SIM), yes)
  65. ifeq ($(IUS), 1)
  66. CFLAGS += -fPIC # ncverilog is 64bit version
  67. endif
  68. endif
  69. ARFLAGS += cru
  70. LDFLAGS += $(PLATFORM_FLAGS)
  71. ifeq ($(USE_FFMPEG), yes)
  72. CFLAGS += -DSUPPORT_FFMPEG_DEMUX
  73. INCLUDES += -I./ffmpeg/include
  74. LDLIBS += -lavformat -lavcodec -lavutil
  75. LDFLAGS += -L./ffmpeg/lib/$(PLATFORM)
  76. TARGET = libsfenc.so
  77. ifneq ($(USE_32BIT), yes)
  78. LDLIBS += -lz
  79. endif #USE_32BIT
  80. endif #USE_FFMPEG
  81. ifeq ($(USE_PTHREAD), yes)
  82. LDLIBS += -lpthread
  83. endif
  84. LDLIBS += -lm
  85. MAKEFILE=Wave5xxEncV2.mak
  86. OBJDIR=obj
  87. ALLOBJS=*.o
  88. ALLDEPS=*.dep
  89. ALLLIBS=*.a
  90. RM=rm -f
  91. MKDIR=mkdir -p
  92. SOURCES = component_enc_encoder.c \
  93. component_enc_feeder.c \
  94. component_enc_reader.c \
  95. encoder_listener.c \
  96. component_dec_decoder.c \
  97. component_dec_feeder.c \
  98. component_dec_renderer.c \
  99. decoder_listener.c \
  100. cnm_app.c \
  101. cnm_task.c \
  102. component.c \
  103. main_helper.c \
  104. vpuhelper.c \
  105. bitstreamfeeder.c \
  106. bsfeeder_fixedsize_impl.c \
  107. bsfeeder_framesize_impl.c \
  108. bsfeeder_size_plus_es_impl.c \
  109. bitstreamreader.c \
  110. bin_comparator_impl.c \
  111. comparator.c \
  112. md5_comparator_impl.c \
  113. yuv_comparator_impl.c \
  114. cfgParser.c \
  115. cnm_video_helper.c \
  116. container.c \
  117. datastructure.c \
  118. debug.c \
  119. yuvfeeder.c \
  120. yuvLoaderfeeder.c \
  121. yuvBufferFeeder.c \
  122. yuvCfbcfeeder.c \
  123. bw_monitor.c \
  124. pf_monitor.c
  125. SOURCES += $(VDI_C) \
  126. $(VDI_OSAL_C) \
  127. $(MM_C) \
  128. vpuapi/product.c \
  129. vpuapi/vpuapifunc.c \
  130. vpuapi/vpuapi.c \
  131. vpuapi/coda9/coda9.c \
  132. vpuapi/wave/wave5.c
  133. ifeq ($(USE_RTL_SIM), yes)
  134. SOURCES += sample/main_sim.c
  135. endif
  136. VPATH = sample_v2:
  137. VPATH += sample_v2/component_encoder:
  138. VPATH += sample_v2/component_decoder:
  139. VPATH += sample_v2/helper:
  140. VPATH += sample_v2/helper/bitstream:
  141. VPATH += sample_v2/helper/comparator:
  142. VPATH += sample_v2/helper/display:sample_v2/helper/misc:sample_v2/helper/yuv:sample_v2/component:
  143. VPATH += vdi:
  144. VPATH += $(VDI_VPATH):vpuapi:vpuapi/coda9:vpuapi/wave
  145. OBJECTNAMES=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES)))
  146. OBJECTPATHS=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES)))
  147. LINT_SRC_INCLUDES = -I./sample_v2 -I./sample_v2/component -I./sample_v2/component_decoder -I./sample_v2/component_encoder
  148. LINT_SRC_INCLUDES += -I./sample_v2/helper -I./sample_v2/helper/bitstream -I./sample_v2/helper/comparator -I./sample_v2/helper/display
  149. LINT_SRC_INCLUDES += -I./sample_v2/helper/misc -I./sample_v2/helper/yuv
  150. ifeq ($(USE_RTL_SIM), yes)
  151. all: CREATE_DIR $(OBJECTPATHS)
  152. else
  153. all: CREATE_DIR $(OBJECTPATHS)
  154. $(LINKER) -fPIC -shared -o $(TARGET) $(LDFLAGS) -Wl,-gc-section -Wl,--start-group $(OBJECTPATHS) $(LDLIBS) -Wl,--end-group
  155. endif
  156. -include $(OBJECTPATHS:.o=.dep)
  157. clean:
  158. $(RM) $(TARGET)
  159. $(RM) $(OBJDIR)/$(ALLOBJS)
  160. $(RM) $(OBJDIR)/$(ALLDEPS)
  161. CREATE_DIR:
  162. -mkdir -p $(OBJDIR)
  163. obj/%.o: %.c $(MAKEFILE)
  164. $(CC) -fPIC -shared $(CFLAGS) -Wall -Werror -c $< -o $@ -MD -MF $(@:.o=.dep)
  165. lint:
  166. "$(LINT_HOME)/flint" -i"$(LINT_HOME)" $(DEFINES) $(INCLUDES) $(LINT_SRC_INCLUDES) linux_std.lnt $(HAPS_RULE) $(NONOS_RULE) $(SOURCES)