From cfb775682b88f6349cb7fa64f82fe33035436157 Mon Sep 17 00:00:00 2001 From: Justin Maggard Date: Fri, 11 Feb 2022 00:37:42 -0800 Subject: [PATCH] build: Add buildroot packaging for static build --- buildroot/Config.in | 1 + buildroot/build-static.sh | 13 +++++++++++++ buildroot/external.desc | 2 ++ buildroot/external.mk | 1 + buildroot/readymedia/Config.in | 24 ++++++++++++++++++++++++ buildroot/readymedia/readymedia.mk | 30 ++++++++++++++++++++++++++++++ buildroot/readymedia_defconfig | 28 ++++++++++++++++++++++++++++ 7 files changed, 99 insertions(+) create mode 100644 buildroot/Config.in create mode 100755 buildroot/build-static.sh create mode 100644 buildroot/external.desc create mode 100644 buildroot/external.mk create mode 100644 buildroot/readymedia/Config.in create mode 100644 buildroot/readymedia/readymedia.mk create mode 100644 buildroot/readymedia_defconfig diff --git a/buildroot/Config.in b/buildroot/Config.in new file mode 100644 index 0000000..24513f6 --- /dev/null +++ b/buildroot/Config.in @@ -0,0 +1 @@ +source "$BR2_EXTERNAL_READYMEDIA_PATH/readymedia/Config.in" diff --git a/buildroot/build-static.sh b/buildroot/build-static.sh new file mode 100755 index 0000000..483f7de --- /dev/null +++ b/buildroot/build-static.sh @@ -0,0 +1,13 @@ +#!/bin/bash -e +if [ $# -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi +BUILDROOT_DIR=$1 +BR2_DEFCONFIG=$(realpath readymedia_defconfig) +export BR2_EXTERNAL=$(realpath .) +cd $BUILDROOT_DIR +make O=output-readymedia defconfig BR2_DEFCONFIG=${BR2_DEFCONFIG} +make O=output-readymedia +echo -e "\n\nStatic binary built in $(realpath output/target/usr/sbin/minidlnad)" +ls -lh $(realpath output/target/usr/sbin/minidlnad) diff --git a/buildroot/external.desc b/buildroot/external.desc new file mode 100644 index 0000000..ba16cb1 --- /dev/null +++ b/buildroot/external.desc @@ -0,0 +1,2 @@ +name: READYMEDIA +desc: ReadyMedia external tree diff --git a/buildroot/external.mk b/buildroot/external.mk new file mode 100644 index 0000000..b97f45f --- /dev/null +++ b/buildroot/external.mk @@ -0,0 +1 @@ +include $(sort $(wildcard $(BR2_EXTERNAL_READYMEDIA_PATH)/*/*.mk)) diff --git a/buildroot/readymedia/Config.in b/buildroot/readymedia/Config.in new file mode 100644 index 0000000..b279b3e --- /dev/null +++ b/buildroot/readymedia/Config.in @@ -0,0 +1,24 @@ +config BR2_PACKAGE_READYMEDIA + bool "readymedia" + depends on BR2_USE_WCHAR # flac + depends on BR2_USE_MMU # fork + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + select BR2_PACKAGE_FFMPEG + select BR2_PACKAGE_FLAC + select BR2_PACKAGE_LIBVORBIS # selects libogg + select BR2_PACKAGE_LIBOGG + select BR2_PACKAGE_LIBID3TAG # selects zlib + select BR2_PACKAGE_LIBEXIF + select BR2_PACKAGE_JPEG + select BR2_PACKAGE_SQLITE + help + MiniDLNA (aka ReadyDLNA) is server software with the aim of + being fully compliant with DLNA/UPnP-AV clients. + + http://minidlna.sourceforge.net/ + +comment "readymedia needs a toolchain w/ threads, wchar" + depends on BR2_USE_MMU + depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR diff --git a/buildroot/readymedia/readymedia.mk b/buildroot/readymedia/readymedia.mk new file mode 100644 index 0000000..91d37d0 --- /dev/null +++ b/buildroot/readymedia/readymedia.mk @@ -0,0 +1,30 @@ +################################################################################ +# +# readymedia +# +################################################################################ + +READYMEDIA_VERSION = v1_3_1 +READYMEDIA_SITE = https://git.code.sf.net/p/minidlna/git +READYMEDIA_SITE_METHOD = git +READYMEDIA_LICENSE = GPL-2.0, BSD-3-Clause +READYMEDIA_LICENSE_FILES = COPYING LICENCE.miniupnpd +READYMEDIA_CPE_ID_VENDOR = readymedia_project +READYMEDIA_CPE_ID_PRODUCT = readymedia + +READYMEDIA_DEPENDENCIES = \ + $(TARGET_NLS_DEPENDENCIES) \ + ffmpeg flac libvorbis libogg libid3tag libexif jpeg sqlite \ + host-xutil_makedepend + +READYMEDIA_CONF_OPTS = \ + --enable-static \ + --enable-tivo \ + --enable-lto + +define READYMEDIA_RUN_AUTOGEN + cd $(@D) && PATH=$(BR_PATH) ./autogen.sh +endef +READYMEDIA_PRE_CONFIGURE_HOOKS = READYMEDIA_RUN_AUTOGEN + +$(eval $(autotools-package)) diff --git a/buildroot/readymedia_defconfig b/buildroot/readymedia_defconfig new file mode 100644 index 0000000..47252d4 --- /dev/null +++ b/buildroot/readymedia_defconfig @@ -0,0 +1,28 @@ +BR2_SHARED_STATIC_LIBS=y +BR2_TOOLCHAIN_BUILDROOT_VENDOR="readymedia" +BR2_TOOLCHAIN_BUILDROOT_MUSL=y +BR2_KERNEL_HEADERS_VERSION=y +BR2_DEFAULT_KERNEL_VERSION="2.6.32" +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_REALLY_OLD=y +BR2_BINUTILS_VERSION_2_37_X=y +BR2_GCC_VERSION_11_X=y +BR2_GCC_ENABLE_LTO=y +BR2_TARGET_GENERIC_HOSTNAME="readymedia" +BR2_INIT_NONE=y +# BR2_TARGET_ENABLE_ROOT_LOGIN is not set +# BR2_TARGET_GENERIC_GETTY is not set +# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set +# BR2_PACKAGE_BUSYBOX is not set +BR2_PACKAGE_FFMPEG_ENCODERS="" +BR2_PACKAGE_FFMPEG_DECODERS="aac alac eac3 flac flv h264 mp3 mpeg2video mpeg4 pcm_s16be pcm_s16le vorbis wmalossless wmapro wmav1 wmav2" +BR2_PACKAGE_FFMPEG_MUXERS="" +BR2_PACKAGE_FFMPEG_DEMUXERS="aac ac3 aiff asf avi dts dv eac3 flac flv h261 h263 h264 matroska mjpeg mov m4v mp3 mpegps mpegts mpegtsraw mpegvideo ogg vc1 wav" +BR2_PACKAGE_FFMPEG_PARSERS="aac ac3 dvbsub dvdsub flac h261 h263 h264 mjpeg mlp mpeg4video mpegaudio mpegvideo vc1 vorbis vp3 vp8" +BR2_PACKAGE_FFMPEG_BSFS="" +BR2_PACKAGE_FFMPEG_PROTOCOLS="file" +BR2_PACKAGE_FFMPEG_FILTERS="" +# BR2_PACKAGE_FFMPEG_INDEVS is not set +# BR2_PACKAGE_FFMPEG_OUTDEVS is not set +BR2_PACKAGE_FFMPEG_EXTRACONF="--enable-small --disable-pic --disable-avfilter --disable-libvorbis --disable-network --disable-muxer=ogg" +# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set +BR2_PACKAGE_READYMEDIA=y