GNU assembler not found, install/update gas-preprocessor
加上 --disable-asm 选项
完整Makefile解决方案示意如下:
CFLAGS = -g -O2
SOURCE_FOLDER_NAME = ffmpeg-4.2.2-full
CFLAGS += -Werror=incompatible-pointer-types -Werror=uninitialized -Werror-implicit-function-declaration
.PHONY: all install uninstall clean distclean
ECFLAGS = -I$(ROOT_SOURCE_FOLDERINC_DIR)
ELDFLAGS = -L$(ROOT_SOURCE_FOLDERPREFIX_DIR)/lib -Wl,-rpath-link=$(ROOT_SOURCE_FOLDERPREFIX_DIR)/lib
CFLAGS += $(CPPFLAGS)
PKG_CONFIG_PATH = $(ROOT_SOURCE_FOLDERPREFIX_DIR)/lib/pkgconfig
PKG_CONFIG_LIBDIR = $(PKG_CONFIG_PATH)
CXXFLAGS = $(CFLAGS)
export CPPFLAGS CFLAGS LDFLAGS CXXFLAGS LIBS LD_LIBRARY_PATH PKG_CONFIG_PATH PKG_CONFIG_LIBDIR
export AR AS CPP LD CXX CC RANLIB NM STRIP OBJCOPY READELF OBJDUMP
CONFIGURE_ARGS = \
--disable-doc \
--disable-asm \
--enable-cross-compile \
--enable-debug=3 \
--disable-stripping \
--target-os=linux \
--cross-prefix="$(CONFIG_CROSS_COMPILE)" \
--cc="$(CC)" \
--ar=$(AR) \
--as=$(AS) \
--nm=$(NM) \
--arch=${ARCH} \
--enable-shared \
--enable-pic \
--prefix=$(ROOT_SOURCE_FOLDERPREFIX_DIR)$(SOURCE_FOLDER_NAME) \
--pkg-config=pkg-config
ifeq ($(CFG_ARCH),mips)
CONFIGURE_ARGS += --enable-mips32r2 --disable-mips32r5 --disable-mips32r6 --disable-mips64r2 --disable-mips64r6 --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-msa --disable-msa2
else
CONFIGURE_ARGS += --disable-neon --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armv8 --disable-vfp --disable-vfpv3 --disable-setend
endif
#CONFIGURE_ARGS += --disable-optimizations --extra-cflags=$(ECFLAGS) --extra-ldflags="$(ELDFLAGS)"
CODE_PATH = ffmpeg-new/$(SOURCE_FOLDER_NAME)
all:
ifneq (./$(SOURCE_FOLDER_NAME)/configure, $(wildcard ./$(SOURCE_FOLDER_NAME)/configure))
@mkdir -p $(SOURCE_FOLDER_NAME);
@tar -xjf ffmpeg-4.2.2.tar.bz2 -C $(SOURCE_FOLDER_NAME);
@mv ./$(SOURCE_FOLDER_NAME)/ffmpeg-4.2.2/* $(SOURCE_FOLDER_NAME)/;
@rm -rf ./$(SOURCE_FOLDER_NAME)/ffmpeg-4.2.2;
endif
@echo "generate makefile for $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)";
ifeq ($(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done,$(wildcard $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done))
@echo "$(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done";
else
@echo "generate makefile for $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)";
mkdir -p $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH);
ifeq ($(COPY_SOURCECODE),y)
cp -arf $(ROOT_SOURCE_FOLDERDIR)/$(CODE_PATH) `dirname $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)`;
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); ./configure $(CONFIGURE_ARGS);
else
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); $(ROOT_SOURCE_FOLDERDIR)/$(CODE_PATH)/configure $(CONFIGURE_ARGS);
endif
touch $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done;
endif
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make -j$(j) V=1;
install:
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make install
uninstall:
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make uninstall
clean:
ifeq ($(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done,$(wildcard $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done))
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make uninstall; make clean;
else
echo "$(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH) have not makefile, do nothing";
endif
distclean:
ifeq ($(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done,$(wildcard $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done))
cd $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH); make distclean;
endif
@rm -rf $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)/makefile-done
@rm -rf $(ROOT_SOURCE_FOLDERBUILD_DIR)/$(CODE_PATH)
@rm -rf $(SOURCE_FOLDER_NAME)