mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
Add the missing module metadata for the executable ELF helpers used by the package fixture flow so the generated artifacts describe their target and type consistently. Also fix the existing embedlog spelling issue that is picked up by the current apps check, keeping this branch clean under CI. Signed-off-by: aviralgarg05 <gargaviral99@gmail.com>
284 lines
8.3 KiB
Makefile
284 lines
8.3 KiB
Makefile
############################################################################
|
|
# apps/videoutils/x264/Makefile
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership. The
|
|
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance with the
|
|
# License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
############################################################################
|
|
|
|
ifeq ($(DST_PATH),)
|
|
include $(APPDIR)/Make.defs
|
|
# configure in place
|
|
DST_PATH := x264
|
|
else
|
|
# configure out of tree
|
|
DST_PATH := $(realpath $(DST_PATH))
|
|
include $(DST_PATH)/Make.defs
|
|
BIN := $(DST_PATH)/libx264.a
|
|
# enable Application.mk PREFIX
|
|
PREFIX := $(DST_PATH)$(DELIM)
|
|
|
|
CFLAGS += $(INCDIR_PREFIX)$(DST_PATH)
|
|
ASFLAGS += $(INCDIR_PREFIX)$(DST_PATH)
|
|
endif
|
|
|
|
X264_CONFIG_SCRIPT := $(CURDIR)$(DELIM)x264$(DELIM)configure
|
|
|
|
SRCPATH:=x264
|
|
|
|
-include $(DST_PATH)/config.mak
|
|
|
|
ifneq ($(CONFIG_ARCH),sim)
|
|
CFG_CMDS += --host=$(CONFIG_ARCH)-unknown-linux-gnu
|
|
CFG_CMDS += --cross-prefix=$(CROSSDEV)
|
|
else
|
|
ifeq ($(CONFIG_SIM_M32),y)
|
|
CFG_CMDS += --host=i386-unknown-linux-gnu
|
|
else
|
|
CFG_CMDS += --host=x86_64-unknown-linux-gnu
|
|
endif
|
|
endif
|
|
|
|
# suppress -Wundef -Wno-format
|
|
CFLAGS += -Wno-undef -Wno-format -fno-var-tracking-assignments \
|
|
-Wno-unused-but-set-variable -Wno-cpp \
|
|
-Wno-dangling-pointer -Wno-array-bounds
|
|
|
|
SRCS = common/osdep.c common/base.c common/cpu.c common/tables.c \
|
|
encoder/api.c
|
|
|
|
SRCS_X = common/mc.c common/predict.c common/pixel.c common/macroblock.c \
|
|
common/frame.c common/dct.c common/cabac.c \
|
|
common/common.c common/rectangle.c \
|
|
common/set.c common/quant.c common/deblock.c common/vlc.c \
|
|
common/mvpred.c common/bitstream.c \
|
|
encoder/analyse.c encoder/me.c encoder/ratecontrol.c \
|
|
encoder/set.c encoder/macroblock.c encoder/cabac.c \
|
|
encoder/cavlc.c encoder/encoder.c encoder/lookahead.c
|
|
|
|
SRCCLI = autocomplete.c input/input.c input/timecode.c input/raw.c \
|
|
input/y4m.c output/raw.c output/matroska.c output/matroska_ebml.c \
|
|
output/flv.c output/flv_bytestream.c filters/filters.c \
|
|
filters/video/video.c filters/video/source.c filters/video/internal.c \
|
|
filters/video/resize.c filters/video/fix_vfr_pts.c \
|
|
filters/video/select_every.c filters/video/crop.c
|
|
|
|
SRCCLI_X = filters/video/cache.c filters/video/depth.c
|
|
|
|
CONFIG := $(shell cat $(DST_PATH)/config.h)
|
|
|
|
# Optional module sources
|
|
ifneq ($(findstring HAVE_AVS 1, $(CONFIG)),)
|
|
SRCCLI += input/avs.c
|
|
endif
|
|
|
|
ifneq ($(findstring HAVE_THREAD 1, $(CONFIG)),)
|
|
SRCS_X += common/threadpool.c
|
|
SRCCLI_X += input/thread.c
|
|
endif
|
|
|
|
ifneq ($(findstring HAVE_WIN32THREAD 1, $(CONFIG)),)
|
|
SRCS += common/win32thread.c
|
|
endif
|
|
|
|
ifneq ($(findstring HAVE_LAVF 1, $(CONFIG)),)
|
|
SRCCLI += input/lavf.c
|
|
endif
|
|
|
|
ifneq ($(findstring HAVE_FFMS 1, $(CONFIG)),)
|
|
SRCCLI += input/ffms.c
|
|
endif
|
|
|
|
ifneq ($(findstring HAVE_GPAC 1, $(CONFIG)),)
|
|
SRCCLI += output/mp4.c
|
|
endif
|
|
|
|
ifneq ($(findstring HAVE_LSMASH 1, $(CONFIG)),)
|
|
SRCCLI += output/mp4_lsmash.c
|
|
endif
|
|
|
|
SRCASM_X =
|
|
SRCASM_8 =
|
|
SRCASM_G =
|
|
|
|
# MMX/SSE optims
|
|
ifeq ($(SYS_ARCH),X86)
|
|
ARCH_X86 = yes
|
|
SRCASM_X += common/x86/dct-32.asm \
|
|
common/x86/pixel-32.asm
|
|
endif
|
|
ifeq ($(SYS_ARCH),X86_64)
|
|
ARCH_X86 = yes
|
|
SRCASM_X += common/x86/dct-64.asm \
|
|
common/x86/trellis-64.asm
|
|
endif
|
|
ifdef ARCH_X86
|
|
SRCASM_X += common/x86/bitstream-a.asm \
|
|
common/x86/const-a.asm \
|
|
common/x86/cabac-a.asm \
|
|
common/x86/dct-a.asm \
|
|
common/x86/deblock-a.asm \
|
|
common/x86/mc-a.asm \
|
|
common/x86/mc-a2.asm \
|
|
common/x86/pixel-a.asm \
|
|
common/x86/predict-a.asm \
|
|
common/x86/quant-a.asm
|
|
SRCS_X += common/x86/mc-c.c \
|
|
common/x86/predict-c.c
|
|
|
|
SRCASM_G += common/x86/cpu-a.asm
|
|
ifneq ($(findstring HAVE_BITDEPTH8 1, $(CONFIG)),)
|
|
SRCASM_8 += common/x86/sad-a.asm
|
|
endif
|
|
endif
|
|
|
|
|
|
# AltiVec optims
|
|
ifeq ($(SYS_ARCH),PPC)
|
|
SRCS_X += common/ppc/dct.c \
|
|
common/ppc/deblock.c \
|
|
common/ppc/mc.c \
|
|
common/ppc/pixel.c \
|
|
common/ppc/predict.c \
|
|
common/ppc/quant.c
|
|
endif
|
|
|
|
|
|
# NEON optims
|
|
ifeq ($(SYS_ARCH),ARM)
|
|
SRCASM_X = common/arm/bitstream-a.S \
|
|
common/arm/dct-a.S \
|
|
common/arm/deblock-a.S \
|
|
common/arm/mc-a.S \
|
|
common/arm/pixel-a.S \
|
|
common/arm/predict-a.S \
|
|
common/arm/quant-a.S
|
|
SRCS_X += common/arm/mc-c.c \
|
|
common/arm/predict-c.c
|
|
|
|
SRCASM_G += common/arm/cpu-a.S
|
|
endif
|
|
|
|
|
|
# AArch64 NEON optims
|
|
ifeq ($(SYS_ARCH),AARCH64)
|
|
SRCASM_X = common/aarch64/bitstream-a.S \
|
|
common/aarch64/cabac-a.S \
|
|
common/aarch64/dct-a.S \
|
|
common/aarch64/deblock-a.S \
|
|
common/aarch64/mc-a.S \
|
|
common/aarch64/pixel-a.S \
|
|
common/aarch64/predict-a.S \
|
|
common/aarch64/quant-a.S
|
|
SRCS_X += common/aarch64/asm-offsets.c \
|
|
common/aarch64/mc-c.c \
|
|
common/aarch64/predict-c.c
|
|
endif
|
|
|
|
|
|
# MSA optims
|
|
ifeq ($(SYS_ARCH),MIPS)
|
|
ifneq ($(findstring HAVE_MSA 1, $(CONFIG)),)
|
|
SRCS_X += common/mips/dct-c.c \
|
|
common/mips/deblock-c.c \
|
|
common/mips/mc-c.c \
|
|
common/mips/pixel-c.c \
|
|
common/mips/predict-c.c \
|
|
common/mips/quant-c.c
|
|
endif
|
|
endif
|
|
|
|
|
|
ifneq ($(HAVE_GETOPT_LONG),1)
|
|
SRCCLI += extras/getopt.c
|
|
endif
|
|
|
|
CSRCS := $(addprefix $(SRCPATH)$(DELIM), $(SRCS) $(SRCS_X))
|
|
|
|
X264EASFLAGS := $(ASFLAGS)
|
|
X264ECFLAGS := $(CFLAGS)
|
|
|
|
CFLAGS += -DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8
|
|
|
|
ifdef ARCH_X86
|
|
ASMEXT=asm
|
|
AS=nasm
|
|
else
|
|
ASMEXT=S
|
|
AS=$(CC)
|
|
endif
|
|
|
|
NASUFFIX = $(subst $(DELIM),.,$(CURDIR)$(DELIM)$(SRCPATH))
|
|
|
|
SRCASM_8 := $(addprefix $(SRCPATH)$(DELIM),$(SRCASM_8) $(SRCASM_X))
|
|
SRCASM_G := $(addprefix $(SRCPATH)$(DELIM),$(SRCASM_G))
|
|
|
|
OBJASM_8 = $(addprefix $(PREFIX),$(addsuffix $(NASUFFIX)$(OBJEXT),$(SRCASM_8)))
|
|
OBJASM_G = $(addprefix $(PREFIX),$(addsuffix $(NASUFFIX)$(OBJEXT),$(SRCASM_G)))
|
|
|
|
EXTOBJS = $(OBJASM_8) $(OBJASM_G)
|
|
|
|
$(OBJASM_8): $(PREFIX)%.$(ASMEXT)$(NASUFFIX)$(OBJEXT): %.$(ASMEXT)
|
|
$(Q) $(AS) $(ASFLAGS) -DBIT_DEPTH=8 -Dprivate_prefix=x264_8 $< -o $@
|
|
|
|
$(OBJASM_G): $(PREFIX)%.$(ASMEXT)$(NASUFFIX)$(OBJEXT): %.$(ASMEXT)
|
|
$(Q) $(AS) $(ASFLAGS) $< -o $@
|
|
|
|
ifneq ($(CONFIG_UTILS_X264),)
|
|
MODULE += $(CONFIG_UTILS_X264)
|
|
PROGNAME += x264
|
|
PRIORITY += $(CONFIG_UTILS_X264_PRIORITY)
|
|
STACKSIZE += $(CONFIG_UTILS_X264_STACKSIZE)
|
|
MAINSRC += $(SRCPATH)$(DELIM)x264.c
|
|
CSRCS += $(addprefix $(SRCPATH)$(DELIM), $(SRCCLI) $(SRCCLI_X))
|
|
endif
|
|
|
|
$(DST_PATH)/config.mak: x264
|
|
$(Q)echo "X264 configure... $(CONFIG_ARCH)"
|
|
$(Q)cd $(DST_PATH) && $(X264_CONFIG_SCRIPT) --disable-cli --enable-static \
|
|
--disable-bashcompletion --disable-opencl \
|
|
--disable-thread --disable-avs --disable-swscale \
|
|
--disable-lavf --disable-ffms --disable-gpac --disable-lsmash \
|
|
--extra-asflags="$(X264EASFLAGS)" --extra-cflags="$(X264ECFLAGS)" \
|
|
--bit-depth=8 $(CFG_CMDS)
|
|
$(Q)cd $(DST_PATH) && sed -n '/^\(SYS_ARCH\|CFLAGS\|ASFLAGS\|HAVE_GETOPT_LONG\)=/ p' config.mak > config.mak.mod \
|
|
&& mv -f config.mak.mod config.mak
|
|
|
|
context:: $(DST_PATH)/config.mak
|
|
ifneq ($(PREFIX),)
|
|
@$(eval ALL_SRCS = $(ASRCS) $(CSRCS) $(MAINSRC) $(NASRCS) $(SRCASM_8) $(SRCASM_G))
|
|
@$(foreach src,$(ALL_SRCS),$(shell mkdir -p $(PREFIX)$(dir $(src))))
|
|
endif
|
|
|
|
|
|
distclean::
|
|
$(Q)rm -f $(DST_PATH)/x264_config.h $(DST_PATH)/config.mak \
|
|
$(DST_PATH)/config.log $(DST_PATH)/x264.pc $(DST_PATH)/x264.def \
|
|
$(DST_PATH)/config.h
|
|
|
|
# Download x264 if no x264/.git found
|
|
x264:
|
|
$(Q)git clone https://github.com/mirror/x264.git x264
|
|
$(Q)cd x264 && git apply ../patch/0001-x264-fix-UNUSED-redefined.patch
|
|
|
|
ifeq ($(wildcard x264/.git),)
|
|
context:: x264
|
|
distclean::
|
|
$(call DELDIR, x264)
|
|
endif
|
|
|
|
include $(APPDIR)/Application.mk
|