Files
RV1103/media/libv4l/Makefile
2023-08-08 20:36:47 +08:00

148 lines
5.2 KiB
Makefile

ifeq ($(MEDIA_PARAM), )
MEDIA_PARAM:=../Makefile.param
include $(MEDIA_PARAM)
endif
export LC_ALL=C
SHELL:=/bin/bash
CURRENT_DIR := $(shell pwd)
PKG_TARBALL := v4l-utils-1.16.5.tar.bz2
PKG_NAME := v4l-utils-1.16.5
PKG_PATCHES_LIBV4L := patches
PKG_BIN ?= out
PKG_BIN_NEED_INSTALL_ROOT := $(RK_MEDIA_NEED_INSTALL_ROOT_DIR_NAME)
PKG_DEPEN_BUILD:=
pkg-build += pre-built
ifeq ($(RK_MEDIA_LIB_TYPE),uclibc)
PKG_NAME_ARGP:= argp-standalone-1.3
PKG_TARBALL_ARGP:= argp-standalone-1.3.tar.gz
PKG_PATCHES_ARGP:=patches_argp
PKG_DEPEN_BUILD:= \
CPPFLAGS="-I$(CURRENT_DIR)/$(PKG_NAME_ARGP) -L$(CURRENT_DIR)/$(PKG_NAME_ARGP)" \
LDFLAGS="$(RK_MEDIA_CROSS_CFLAGS) -L$(CURRENT_DIR)/$(PKG_NAME_ARGP) -largp"
pkg-build += build-argp
endif
ifeq ($(PKG_BIN),)
$(error ### $(CURRENT_DIR): PKG_BIN is NULL, Please Check !!!)
endif
ifeq ($(CONFIG_LIBV4L),y)
PKG_TARGET := libv4l-build
endif
all: $(PKG_TARGET)
@echo "build $(PKG_NAME) done"
libv4l-build: $(pkg-build)
@test -f $(CURRENT_DIR)/$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/lib/libv4l2.so.0.0.0 || (\
rm -rf $(PKG_BIN); \
tar -xf $(PKG_TARBALL); \
mkdir -p $(CURRENT_DIR)/$(PKG_NAME)/$(PKG_BIN); \
mkdir -p $(CURRENT_DIR)/$(PKG_BIN); \
pushd $(CURRENT_DIR)/$(PKG_NAME); \
cp -af $(CURRENT_DIR)/$(PKG_PATCHES_LIBV4L)/* ./; \
$(SHELL) ./libv4l.patch.sh; \
autoreconf -f -i; \
CFLAGS="$(RK_MEDIA_CROSS_CFLAGS) -fPIC" \
$(PKG_DEPEN_BUILD) \
ac_cv_lbl_unaligned_fail=yes \
ac_cv_func_mmap_fixed_mapped=yes \
ac_cv_func_memcmp_working=yes \
ac_cv_have_decl_malloc=yes \
gl_cv_func_malloc_0_nonnull=yes \
ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_calloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes \
lt_cv_sys_lib_search_path_spec="" \
ac_cv_c_bigendian=no \
ac_cv_prog_cc_c99='-std=gnu99' \
PKG_CONFIG="" \
ALSA_LIBS="$(RK_MEDIA_OUTPUT)/lib" \
ALSA_CFLAGS="$(RK_MEDIA_OUTPUT)/include" \
./configure --host=$(RK_MEDIA_CROSS) --target=$(RK_MEDIA_CROSS) \
--prefix=$(CURRENT_DIR)/$(PKG_NAME)/$(PKG_BIN) \
--disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs \
--disable-documentation \
--with-xmlto=no --with-fop=no --disable-dependency-tracking \
--disable-nls --disable-static --enable-shared \
--disable-doxygen-doc --disable-qvidcap --without-jpeg \
--disable-libdvbv5 \
--enable-builtin-plugins \
--exec-prefix=/usr \
--localstatedir=/var \
--datarootdir=/usr/share \
--includedir=/usr/include \
--sysconfdir=/etc \
--libdir=/usr/lib \
--datadir=/usr/share \
--with-udevdir=/usr/lib/udev \
--disable-bpf --disable-qv4l2 \
--enable-v4l-utils ;\
make -j$(RK_JOBS) || exit -1; \
make install DESTDIR=$(CURRENT_DIR)/$(PKG_NAME)/$(PKG_BIN) > /dev/null; \
cp -fra $(CURRENT_DIR)/$(PKG_NAME)/$(PKG_BIN)/* \
$(CURRENT_DIR)/$(PKG_BIN); \
mv $(CURRENT_DIR)/$(PKG_BIN)/usr/include $(CURRENT_DIR)/$(PKG_BIN); \
rm -rf $(CURRENT_DIR)/$(PKG_BIN)/usr/share $(CURRENT_DIR)/$(PKG_BIN)/usr/lib/udev $(CURRENT_DIR)/$(PKG_BIN)/etc; \
mkdir -p $(CURRENT_DIR)/$(PKG_BIN)/root; \
mv $(CURRENT_DIR)/$(PKG_BIN)/{etc,usr} $(CURRENT_DIR)/$(PKG_BIN)/root; \
popd; ) || exit -1;
@rm -rf \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/lib/pkgconfig \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/lib/libv4l/ov518-decomp \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/lib/libv4l/ov511-decomp \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/rds-ctl \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/v4l2-compliance \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/cec-compliance \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/v4l2-sysfs-path \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/cec-follower \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/ir-ctl \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/decode_tm6000 \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/cx18-ctl \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/ivtv-ctl \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/ir-keytable \
$(PKG_BIN)/$(PKG_BIN_NEED_INSTALL_ROOT)/usr/bin/cec-ctl ;
@find $(PKG_BIN) -name "*.la" -exec rm -rf {} \; ;
$(call MAROC_COPY_PKG_TO_MEDIA_OUTPUT, $(RK_MEDIA_OUTPUT), $(PKG_BIN))
pre-built: alsa_lib
@test ! -f $(CURRENT_DIR)/$(PKG_NAME)-$(RK_MEDIA_CROSS).tar.bz2 || (\
rm -rf $(PKG_BIN); \
echo "Uncompress pre-built $(PKG_NAME)"; \
mkdir -p $(PKG_BIN); \
tar xf $(CURRENT_DIR)/$(PKG_NAME)-$(RK_MEDIA_CROSS).tar.bz2 -C $(PKG_BIN); \
exit 0; )
build-argp:
@test -f $(CURRENT_DIR)/$(PKG_NAME)-$(RK_MEDIA_CROSS).tar.bz2 || (\
rm -rf $(PKG_NAME_ARGP); \
tar -xf $(PKG_TARBALL_ARGP); \
pushd $(CURRENT_DIR)/$(PKG_NAME_ARGP); \
cp -af $(CURRENT_DIR)/$(PKG_PATCHES_ARGP)/* ./; \
$(SHELL) ./argp.patch.sh; \
CFLAGS="$(RK_MEDIA_CROSS_CFLAGS) -Os -fPIC -fgnu89-inline" \
./configure --target=$(RK_MEDIA_CROSS) \
--host=$(RK_MEDIA_CROSS) \
--exec-prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-gtk-doc --disable-gtk-doc-html --disable-doc \
--disable-docs --disable-documentation \
--with-xmlto=no --with-fop=no --disable-dependency-tracking ; \
make -j$(RK_JOBS) || exit -1; \
popd; ) || exit -1;
alsa_lib:
@make -C $(RK_MEDIA_TOP_DIR)/alsa-lib
clean: distclean
distclean:
-rm -rf $(PKG_NAME) $(PKG_BIN) $(PKG_NAME_ARGP)