codaj12_buildroot.mak 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. # ----------------------------------------------------------------------
  2. #
  3. # codaj12
  4. #
  5. # ----------------------------------------------------------------------
  6. .PHONY: CREATE_DIR
  7. BUILD_CONFIGURATION := EmbeddedRiscvLinux
  8. PRODUCT := CODAJ12
  9. PRODUCT := CODDAJ12C
  10. USE_PTHREAD = yes
  11. USE_RTL_SIM = no
  12. LINT_HOME = etc/lint
  13. UNAME = $(shell uname -a)
  14. ifneq (,$(findstring i386, $(UNAME)))
  15. USE_32BIT = yes
  16. endif
  17. ifeq ($(RTL_SIM), 1)
  18. USE_RTL_SIM = yes
  19. endif
  20. REFC := 0
  21. ifeq ($(USE_32BIT), yes)
  22. PLATFORM = nativelinux
  23. else
  24. PLATFORM = nativelinux_64bit
  25. endif
  26. CROSS_CC_PREFIX =
  27. JDI_C = jdi/linux/jdi.c
  28. VDI_OSAL_C =
  29. MM_C =
  30. PLATFORM_FLAGS =
  31. JDI_VPATH = jdi/linux
  32. ifeq ("$(BUILD_CONFIGURATION)", "NonOS")
  33. CROSS_CC_PREFIX = arm-none-eabi-
  34. JDI_C = jdi/nonos/jdi.c
  35. VDI_OSAL_C =
  36. MM_C = jdi/mm.c
  37. USE_PTHREAD = no
  38. PLATFORM = none
  39. DEFINES = -DLIB_C_STUB
  40. PLATFORM_FLAGS =
  41. JDI_VPATH = jdi/nonos
  42. NONOS_RULE = options_nonos.lnt
  43. endif
  44. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  45. CROSS_CC_PREFIX = arm-none-linux-gnueabi-
  46. PLATFORM = armlinux
  47. endif
  48. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  49. CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  50. PLATFORM = riscvlinux
  51. endif
  52. CC = $(CROSS_CC_PREFIX)gcc
  53. CXX = $(CROSS_CC_PREFIX)g++
  54. LINKER=$(CC)
  55. AR = $(CROSS_CC_PREFIX)ar
  56. INCLUDES = -I./jpuapi -I./ffmpeg/include -I./sample/helper -I./sample -I./jdi -I../
  57. ifeq ($(USE_RTL_SIM), yes)
  58. DEFINES += -DCNM_SIM_PLATFORM -DCNM_SIM_DPI_INTERFACE -DSUPPORT_DECODER
  59. DEFINES += -D$(PRODUCT) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  60. else
  61. DEFINES += -D$(PRODUCT) -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
  62. endif # USE_SIM_PLATFORM
  63. DEFINES += -DUSE_FEEDING_METHOD_BUFFER
  64. CFLAGS += -g -I. -Wno-format-truncation -Wl,--fatal-warning $(INCLUDES) $(DEFINES) $(PLATFORM_FLAGS)
  65. ifeq ($(USE_RTL_SIM), yes)
  66. ifeq ($(IUS), 1)
  67. CFLAGS += -fPIC # ncverilog is 64bit version
  68. endif
  69. endif
  70. ARFLAGS += cru
  71. LDFLAGS = $(PLATFORM_FLAGS)
  72. ifeq ($(USE_PTHREAD), yes)
  73. LDLIBS += -lpthread
  74. endif
  75. LDLIBS += -lm -lrt
  76. BUILDLIST=DECTEST
  77. MAKEFILE=codaj12_buildroot.mak
  78. DECTEST=libcodadec.so
  79. OBJDIR=obj
  80. ALLOBJS=*.o
  81. ALLDEPS=*.dep
  82. ALLLIBS=*.a
  83. RM=rm -f
  84. MKDIR=mkdir -p
  85. SOURCES_COMMON = jpuapi.c jpuapifunc.c jpuhelper.c jpulog.c cnm_fpga.c main_jpg_dec_test.c \
  86. platform.c datastructure.c bitstreamfeeder.c bsfeeder_fixedsize_impl.c bsfeeder_buffer_impl.c\
  87. $(JDI_C) \
  88. $(VDI_OSAL_C) \
  89. $(MM_C)
  90. VPATH = jdi:
  91. VPATH += sample:
  92. VPATH += sample/helper:
  93. VPATH += $(JDI_VPATH):jpuapi
  94. VPATH2=$(patsubst %,-I%,$(subst :, ,$(VPATH)))
  95. OBJECTNAMES_COMMON=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES_COMMON)))
  96. OBJECTPATHS_COMMON=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_COMMON)))
  97. SOURCES_DECTEST = sample/main_jpg_dec_test.c
  98. ifeq ($(USE_RTL_SIM), yes)
  99. SOURCES_DECTEST += sample/main_sim.c
  100. endif
  101. OBJECTNAMES_DECTEST=$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCES_DECTEST)))
  102. OBJECTPATHS_DECTEST=$(addprefix $(OBJDIR)/,$(notdir $(OBJECTNAMES_DECTEST))) $(OBJECTPATHS_COMMON)
  103. all: $(BUILDLIST)
  104. ifeq ($(USE_RTL_SIM), yes)
  105. DECTEST: CREATE_DIR $(OBJECTPATHS_COMMON)
  106. else
  107. DECTEST: CREATE_DIR $(OBJECTPATHS_COMMON)
  108. $(LINKER) -g -fPIC -shared -o $(DECTEST) $(LDFLAGS) -Wl,-gc-section -Wl,--start-group $(OBJECTPATHS_COMMON) $(LDLIBS) -Wl,--end-group
  109. endif
  110. -include $(OBJECTPATHS:.o=.dep)
  111. clean:
  112. $(RM) $(DECTEST)
  113. $(RM) $(OBJDIR)/$(ALLOBJS)
  114. $(RM) $(OBJDIR)/$(ALLDEPS)
  115. CREATE_DIR:
  116. -mkdir -p $(OBJDIR)
  117. obj/%.o: %.c $(MAKEFILE)
  118. $(CC) -fPIC -shared $(CFLAGS) -Wall -Werror -c $< -o $@ -MD -MF $(@:.o=.dep)
  119. lint:
  120. "$(LINT_HOME)/flint" -i"$(LINT_HOME)" $(DEFINES) $(INCLUDES) $(VPATH2) linux_std.lnt $(HAPS_RULE) $(NONOS_RULE) $(SOURCES_COMMON)