luckfox-pico-sdk/sysdrv/tools/board/eudev/Makefile
2023-08-08 20:36:47 +08:00

152 lines
5.6 KiB
Makefile

ifeq ($(SYSDRV_PARAM), )
SYSDRV_PARAM:=../../../Makefile.param
include $(SYSDRV_PARAM)
endif
export LC_ALL=C
SHELL:=/bin/bash
# arch=arm default use thumb-2 compile
ifeq ($(SYSDRV_ARCH_TYPE),arm)
PKG_USE_THUMB2 ?= YES
endif
CURRENT_DIR := $(shell pwd)
ifeq ($(shell pkg-config --version),)
$(info ***************************)
$(info Please Install pkg-config tool)
$(info sudo apt-get install pkg-config)
$(error ***************************)
endif
PKG_TARBALL_EUDEV := eudev-3.2.7.tar.gz
PKG_NAME_EUDEV := eudev-3.2.7
PKG_PATCHES_EUDEV := eudev-patches
PKG_TARBALL_KMOD := kmod-29.tar.xz
PKG_NAME_KMOD := kmod-29
PKG_PATCHES_KMOD := kmod-26-patches
PKG_TARBALL_UTIL_LINUX := util-linux-2.37.2.tar.xz
PKG_NAME_UTIL_LINUX := util-linux-2.37.2
PKG_PATCHES_UTIL_LINUX := util-linux-2.37.2-patches
PKG_BIN := out
PKG_CONF_OPTS += $(SYSDRV_OPTS) -Os -I$(CURRENT_DIR)/$(PKG_BIN)/include -L$(CURRENT_DIR)/$(PKG_BIN)/lib
ifeq ($(PKG_USE_THUMB2),YES)
PKG_CONF_OPTS += -mthumb -Wa,-mimplicit-it=thumb -mthumb-interwork
endif
all: kmod util-linux
@test -f $(CURRENT_DIR)/$(PKG_BIN)/sbin/udevd || (\
rm -rf $(PKG_NAME_EUDEV); \
tar -xf $(PKG_TARBALL_EUDEV); \
mkdir -p $(CURRENT_DIR)/$(PKG_BIN); \
pushd $(CURRENT_DIR)/$(PKG_NAME_EUDEV)/; \
cp -af $(CURRENT_DIR)/$(PKG_PATCHES_EUDEV)/* ./; \
$(SHELL) ./eudev.patch.sh; \
PKG_CONFIG_PATH="$(CURRENT_DIR)/$(PKG_BIN)/lib/pkgconfig" \
CFLAGS="$(PKG_CONF_OPTS)" CPPFLAGS="$(PKG_CONF_OPTS)" \
./configure \
--target=$(SYSDRV_CROSS) \
--host=$(SYSDRV_CROSS) \
--disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation \
--with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls \
--disable-manpages --disable-introspection --disable-rule-generator \
--enable-kmod \
--enable-blkid \
--enable-split-usr \
--disable-hwdb \
--disable-selinux \
--disable-static \
--enable-shared \
--prefix=$(CURRENT_DIR)/$(PKG_BIN) ;\
make -j$(SYSDRV_JOBS) > /dev/null || exit -1; \
make install > /dev/null; \
rm -f $(CURRENT_DIR)/$(PKG_BIN)/lib/libudev.so* ;\
popd; )
@pushd $(CURRENT_DIR)/$(PKG_BIN)/; \
find . -name "lib*.la" -exec rm -f {} \; ;\
rm -rf share include lib/pkgconfig;\
rm -f sbin/udevadm kmod;\
rm -f lib/udev/ata_id ;\
rm -f lib/udev/scsi_id ;\
rm -f lib/udev/mtd_probe ;\
rm -f lib/udev/v4l_id ;\
rm -f lib/udev/collect ;\
rm -f lib/udev/cdrom_id ;\
popd;
@cp -f $(CURRENT_DIR)/rules/* $(CURRENT_DIR)/$(PKG_BIN)/lib/udev/rules.d/ ;
@mkdir -p $(CURRENT_DIR)/$(PKG_BIN)/etc/init.d ;
@cp -f S10udev $(CURRENT_DIR)/$(PKG_BIN)/etc/init.d ;
@mkdir -p $(CURRENT_DIR)/$(PKG_BIN)/usr/bin ;
@cp -f usbdevice $(CURRENT_DIR)/$(PKG_BIN)/usr/bin ;
$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(SYSDRV_DIR_OUT_ROOTFS), $(CURRENT_DIR)/$(PKG_BIN))
kmod:
@test -f $(CURRENT_DIR)/$(PKG_BIN)/lib/libkmod.so.2.3.7 || (\
rm -fr $(PKG_NAME_KMOD); \
tar -xf $(PKG_TARBALL_KMOD); \
mkdir -p $(CURRENT_DIR)/$(PKG_BIN); \
pushd $(CURRENT_DIR)/$(PKG_NAME_KMOD)/; \
CFLAGS="$(PKG_CONF_OPTS)" CPPFLAGS="$(PKG_CONF_OPTS)" \
./configure \
--target=$(SYSDRV_CROSS) \
--host=$(SYSDRV_CROSS) \
--disable-static --enable-shared --disable-manpages \
--disable-tools --disable-test-modules \
--with-bashcompletiondir=$(CURRENT_DIR)/$(PKG_BIN) \
--prefix=$(CURRENT_DIR)/$(PKG_BIN) ;\
make -j$(SYSDRV_JOBS) > /dev/null || exit -1; \
make install > /dev/null; \
popd; )
util-linux:
@test -f $(CURRENT_DIR)/$(PKG_BIN)/lib/libblkid.so.1.1.0 || (\
rm -fr $(PKG_NAME_UTIL_LINUX); \
tar -xf $(PKG_TARBALL_UTIL_LINUX); \
mkdir -p $(CURRENT_DIR)/$(PKG_BIN); \
pushd $(CURRENT_DIR)/$(PKG_NAME_UTIL_LINUX)/; \
cp -af $(CURRENT_DIR)/$(PKG_PATCHES_UTIL_LINUX)/* ./; \
$(SHELL) ./util-linux.patch.sh; \
scanf_cv_type_modifier=no \
CFLAGS="$(PKG_CONF_OPTS)" CPPFLAGS="$(PKG_CONF_OPTS)" \
./configure \
--target=$(SYSDRV_CROSS) \
--host=$(SYSDRV_CROSS) \
--disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation \
--with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-nls \
--disable-rpath --disable-makeinstall-chown --without-systemd --with-systemdsystemunitdir=no \
--without-ncursesw --without-ncurses --disable-widechar --without-selinux \
--disable-all-programs --disable-agetty --disable-bfs --disable-cal \
--disable-chfn-chsh --disable-chmem --disable-cramfs --disable-eject \
--disable-fallocate --disable-fdformat --disable-fsck --disable-hwclock \
--disable-ipcrm --disable-ipcs --disable-kill --disable-last --disable-write \
--disable-libfdisk --disable-libmount --disable-libsmartcols \
--disable-line --disable-logger --disable-login --disable-losetup \
--disable-lslogins --disable-lsmem --disable-mesg --disable-minix \
--disable-more --disable-mount --disable-mountpoint --disable-newgrp \
--disable-nologin --disable-nsenter --disable-partx --disable-pg \
--disable-pivot_root --disable-raw --disable-rename --disable-rfkill \
--disable-runuser --disable-schedutils --disable-setpriv \
--disable-setterm --disable-su --disable-sulogin --disable-switch_root \
--disable-tunelp --disable-ul --disable-unshare --disable-utmpdump \
--disable-uuidd --disable-vipw --disable-wall --disable-wdctl \
--disable-zramctl --without-python --without-readline --without-audit \
--disable-static --enable-shared \
--disable-libuuid --enable-libblkid \
--with-bashcompletiondir=$(CURRENT_DIR)/$(PKG_BIN) \
--prefix=$(CURRENT_DIR)/$(PKG_BIN) ;\
make -j$(SYSDRV_JOBS) > /dev/null || exit -1; \
make install > /dev/null; \
popd; )
clean: distclean
distclean:
-rm -rf $(PKG_NAME_EUDEV) $(PKG_BIN) $(PKG_NAME_KMOD) $(PKG_NAME_UTIL_LINUX)