Makefile: add tools
targets to download FFmpeg
Four Makefile targets have been added: - `tools`, which evokes the other three - `tools-linux`, `tools-darwin`, `tools-windows`, download FFmpeg and put the `ffmpeg` executables into `./tools/ffmpeg-{OS}-{ARCH}`. Downloaded tarball/ZIP files are stored in `tools/download`, and won't be re-downloaded if they already exist.
This commit is contained in:
parent
0e6d61dd84
commit
59cb21e3b6
1
.gitignore
vendored
1
.gitignore
vendored
@ -33,6 +33,7 @@ web/manager-api/dist/
|
|||||||
web/static/
|
web/static/
|
||||||
web/flamenco-io-site/public/
|
web/flamenco-io-site/public/
|
||||||
/dist/
|
/dist/
|
||||||
|
/tools/
|
||||||
|
|
||||||
# IDE related stuff
|
# IDE related stuff
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
|
49
Makefile
49
Makefile
@ -24,6 +24,11 @@ WEB_STATIC=web/static
|
|||||||
# Prevent any dependency that requires a C compiler, i.e. only work with pure-Go libraries.
|
# Prevent any dependency that requires a C compiler, i.e. only work with pure-Go libraries.
|
||||||
export CGO_ENABLED=0
|
export CGO_ENABLED=0
|
||||||
|
|
||||||
|
# FFmpeg version to bundle.
|
||||||
|
FFMPEG_VERSION=5.0.1
|
||||||
|
TOOLS=./tools
|
||||||
|
TOOLS_DOWNLOAD=./tools/download
|
||||||
|
|
||||||
all: application
|
all: application
|
||||||
|
|
||||||
# Install generators and build the software.
|
# Install generators and build the software.
|
||||||
@ -191,6 +196,50 @@ site:
|
|||||||
--exclude .htaccess \
|
--exclude .htaccess \
|
||||||
--delete-after
|
--delete-after
|
||||||
|
|
||||||
|
# Download & install FFmpeg in the 'tools' directory for supported platforms.
|
||||||
|
.PHONY: tools
|
||||||
|
tools:
|
||||||
|
$(MAKE) -s tools-linux
|
||||||
|
$(MAKE) -s tools-darwin
|
||||||
|
$(MAKE) -s tools-windows
|
||||||
|
|
||||||
|
FFMPEG_PACKAGE_LINUX=$(TOOLS_DOWNLOAD)/ffmpeg-$(FFMPEG_VERSION)-linux-amd64-static.tar.xz
|
||||||
|
FFMPEG_PACKAGE_DARWIN=$(TOOLS_DOWNLOAD)/ffmpeg-$(FFMPEG_VERSION)-darwin-amd64.zip
|
||||||
|
FFMPEG_PACKAGE_WINDOWS=$(TOOLS_DOWNLOAD)/ffmpeg-$(FFMPEG_VERSION)-windows-amd64.zip
|
||||||
|
|
||||||
|
.PHONY: tools-linux
|
||||||
|
tools-linux:
|
||||||
|
[ -e $(FFMPEG_PACKAGE_LINUX) ] || curl \
|
||||||
|
--create-dirs -o $(FFMPEG_PACKAGE_LINUX) \
|
||||||
|
https://johnvansickle.com/ffmpeg/releases/ffmpeg-$(FFMPEG_VERSION)-amd64-static.tar.xz
|
||||||
|
tar xvf \
|
||||||
|
$(FFMPEG_PACKAGE_LINUX) \
|
||||||
|
ffmpeg-$(FFMPEG_VERSION)-amd64-static/ffmpeg \
|
||||||
|
--strip-components=1
|
||||||
|
mv ffmpeg $(TOOLS)/ffmpeg-linux-amd64
|
||||||
|
|
||||||
|
.PHONY: tools-darwin
|
||||||
|
tools-darwin:
|
||||||
|
[ -e $(FFMPEG_PACKAGE_DARWIN) ] || curl \
|
||||||
|
--create-dirs -o $(FFMPEG_PACKAGE_DARWIN) \
|
||||||
|
https://evermeet.cx/ffmpeg/ffmpeg-$(FFMPEG_VERSION).zip
|
||||||
|
unzip $(FFMPEG_PACKAGE_DARWIN)
|
||||||
|
mv ffmpeg $(TOOLS)/ffmpeg-darwin-amd64
|
||||||
|
|
||||||
|
.PHONY: tools-windows
|
||||||
|
tools-windows:
|
||||||
|
[ -e $(FFMPEG_PACKAGE_WINDOWS) ] || curl \
|
||||||
|
--create-dirs -o $(FFMPEG_PACKAGE_WINDOWS) \
|
||||||
|
https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-$(FFMPEG_VERSION)-essentials_build.zip
|
||||||
|
unzip -j $(FFMPEG_PACKAGE_WINDOWS) ffmpeg-5.0.1-essentials_build/bin/ffmpeg.exe -d .
|
||||||
|
mv ffmpeg.exe $(TOOLS)/ffmpeg-windows-amd64.exe
|
||||||
|
|
||||||
|
# https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-$(FFMPEG_VERSION)-essentials_build.zip
|
||||||
|
#
|
||||||
|
# cd tools-download;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package: flamenco-manager flamenco-worker addon-packer
|
package: flamenco-manager flamenco-worker addon-packer
|
||||||
rm -rf dist-build
|
rm -rf dist-build
|
||||||
mkdir -p dist-build
|
mkdir -p dist-build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user