summaryrefslogtreecommitdiff
path: root/pkg/ffmpeg/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/ffmpeg/scripts')
-rw-r--r--pkg/ffmpeg/scripts/README.md15
-rw-r--r--pkg/ffmpeg/scripts/sources.mk36
-rwxr-xr-xpkg/ffmpeg/scripts/sources.rc9
3 files changed, 60 insertions, 0 deletions
diff --git a/pkg/ffmpeg/scripts/README.md b/pkg/ffmpeg/scripts/README.md
new file mode 100644
index 00000000..344e246a
--- /dev/null
+++ b/pkg/ffmpeg/scripts/README.md
@@ -0,0 +1,15 @@
+To generate `sources.txt`, first run configure ffmpeg
+
+ ../src/configure
+
+Then, generate `vars.txt` from config.asm
+
+ awk '{print $2}' config.asm >vars.txt
+
+Build `sources.txt` from vars.txt and ffmpeg's `Makefile`s
+
+ make -f sources.mk >../sources.txt
+
+Finally, clean up what `./configure` left behind
+
+ git clean -df .
diff --git a/pkg/ffmpeg/scripts/sources.mk b/pkg/ffmpeg/scripts/sources.mk
new file mode 100644
index 00000000..8e0d363e
--- /dev/null
+++ b/pkg/ffmpeg/scripts/sources.mk
@@ -0,0 +1,36 @@
+VARS := $(file < vars.txt)
+
+DIRS :=\
+ libavcodec\
+ libavdevice\
+ libavfilter\
+ libavformat\
+ libavutil\
+ libswresample\
+ libswscale
+
+ARCHS :=\
+ x86
+
+define printsrcs
+ @echo $(1) $(foreach dir,$(DIRS),\
+ $(OBJS-$(1)/$(dir):%.o=$(dir)/%.c)\
+ $(MMX-OBJS-$(1)/$(dir):%.o=$(dir)/%.c)\
+ $(YASM-OBJS-$(1)/$(dir):%.o=$(dir)/%.asm)\
+ )
+
+endef
+
+.PHONY: all
+all: vars.txt
+ $(foreach var,$(VARS),$(call printsrcs,$(var)))
+
+define subdir
+ $(foreach var,$(VARS),$(eval $(var):=$(var)/$(1)))
+ include ../src/$(1)/Makefile
+ $(foreach arch,$(ARCHS),
+ -include ../src/$(1)/$(arch)/Makefile
+ )
+endef
+
+$(foreach dir,$(DIRS),$(eval $(call subdir,$(dir))))
diff --git a/pkg/ffmpeg/scripts/sources.rc b/pkg/ffmpeg/scripts/sources.rc
new file mode 100755
index 00000000..d963e714
--- /dev/null
+++ b/pkg/ffmpeg/scripts/sources.rc
@@ -0,0 +1,9 @@
+#!/bin/rc
+
+flag e +
+flag x +
+
+../src/configure >/dev/null
+awk '{print $2}' config.asm >vars.txt
+make -f sources.mk >../sources.txt
+git clean -df .