chore(AutoMake): config install

This commit is contained in:
2025-11-01 22:48:43 +01:00
parent d84d0db327
commit 1835050079
7 changed files with 86 additions and 72 deletions
+6 -2
View File
@@ -1,6 +1,10 @@
AUTOMAKE_OPTIONS = foreign subdir-objects -Wall
bin_PROGRAMS = forge
forge_SOURCES = src/main.c src/args.c src/forge.c src/file.c src/window.c src/shaders.c src/timer.c src/string.c src/config_file.c src/rand.c src/video.c src/shared.c src/midi.c src/state.c src/arr.c src/tempo.c $(top_srcdir)/include/glad/gl.h $(top_srcdir)/include/glad/egl.h $(top_srcdir)/hashmap.c/hashmap.c $(top_srcdir)/log.c/src/log.c
forge_CFLAGS = -Ofast -march=native -flto -funroll-loops -fprefetch-loop-arrays -fno-exceptions -fopenmp -I$(top_srcdir)/include -DGLFW_INCLUDE_NONE -DGLFW_EXPOSE_NATIVE_EGL -DGLFW_NATIVE_INCLUDE_NONE -DLOG_USE_COLOR
forge_CFLAGS = -Ofast -march=native -flto -funroll-loops -fprefetch-loop-arrays -fno-exceptions -fopenmp -I$(top_srcdir)/include -DGLFW_INCLUDE_NONE -DGLFW_EXPOSE_NATIVE_EGL -DGLFW_NATIVE_INCLUDE_NONE -DLOG_USE_COLOR -DDATADIR=\"$(datadir)/$(PACKAGE)\"
forge_LDADD = -lm -lGL -lglfw -lasound
include_HEADERS = src/main.h src/args.h src/config.h src/types.h src/forge.h src/file.h src/constants.h src/window.h src/shaders.h src/timer.h src/string.h src/config_file.h src/rand.h src/video.h src/shared.h src/midi.h src/state.h src/arr.h src/tempo.h $(top_srcdir)/include/glad/gl.h $(top_srcdir)/include/glad/egl.h $(top_srcdir)/include/linmath.h $(top_srcdir)/include/hashmap.h $(top_srcdir)/include/log.h
include_HEADERS = src/main.h src/args.h src/config.h src/types.h src/forge.h src/file.h src/constants.h src/window.h src/shaders.h src/timer.h src/string.h src/config_file.h src/rand.h src/video.h src/shared.h src/midi.h src/state.h src/arr.h src/tempo.h $(top_srcdir)/include/glad/gl.h $(top_srcdir)/include/glad/egl.h $(top_srcdir)/include/linmath.h $(top_srcdir)/include/hashmap.h $(top_srcdir)/include/log.h
EXTRA_DIST = default.cfg shaders/frag0.glsl shaders/frag1.glsl shaders/frag2.glsl shaders/frag3.glsl shaders/frag4.glsl shaders/frag5.glsl shaders/frag6.glsl shaders/frag7.glsl shaders/frag8.glsl shaders/frag9.glsl shaders/frag10.glsl
confdir = $(prefix)/share/$(PACKAGE)
conf_DATA = default.cfg shaders/frag0.glsl shaders/frag1.glsl shaders/frag2.glsl shaders/frag3.glsl shaders/frag4.glsl shaders/frag5.glsl shaders/frag6.glsl shaders/frag7.glsl shaders/frag8.glsl shaders/frag9.glsl shaders/frag10.glsl
+28 -13
View File
@@ -1,6 +1,6 @@
TARGET ?= forge
INSTALL_DIR ?= $(HOME)/.local/bin
TEST_ARGS ?= --frag=./shaders --config=./config/forge.cfg --video-in=/dev/video0 --video-in=/dev/video1 --video-in=/dev/video2 --video-in=/dev/video3 --video-in=/dev/video4 --video-in=/dev/video5 --video-in=/dev/video6 --video-in=/dev/video7 --video-in=/dev/video8 --video-in=/dev/video9
TEST_ARGS ?= --video-in=/dev/video0 --video-in=/dev/video1 --video-in=/dev/video2 --video-in=/dev/video3 --video-in=/dev/video4 --video-in=/dev/video5 --video-in=/dev/video6 --video-in=/dev/video7 --video-in=/dev/video8 --video-in=/dev/video9
SHELL := /bin/bash
.PHONY: build
@@ -42,24 +42,17 @@ valgrind: build
--undef-value-errors=no \
./build/$(TARGET) $(TEST_ARGS)
.PHONY: release-%
release-%: clean
git pull origin master
sed -i -E "s/[0-9]+\\.[0-9]+\\.[0-9]+/$*/g" configure.ac
aclocal
autoconf
automake --add-missing
./configure
make distcheck
mkdir -p build
cp "$(TARGET)-steel-$*.tar.gz" build/
@rm -rf \
.PHONY: clean-release
clean-release:
@rm -rf \
autom4te.cache \
aclocal.m4 \
compile \
config.* \
configure \
configure~ \
depcomp \
**\.deps \
$(TARGET) \
$(TARGET)-*.tar.gz \
$(TARGET)-*.pkg.tar.zst \
@@ -69,6 +62,28 @@ release-%: clean
missing \
src/.* \
src/*.o
.PHONY: test-release
test-release: clean clean-release
aclocal
autoconf
automake --add-missing
./configure
make distcheck
mkdir -p build
cp "$(TARGET)-steel-*.tar.gz" build/
.PHONY: release-%
release-%: clean clean-release
git pull origin master
sed -i -E "s/[0-9]+\\.[0-9]+\\.[0-9]+/$*/g" configure.ac
aclocal
autoconf
automake --add-missing
./configure
make distcheck
mkdir -p build
cp "$(TARGET)-steel-$*.tar.gz" build/
sed -i -E "s/pkgver=[0-9]+\\.[0-9]+\\.[0-9]+/pkgver=$*/g" PKGBUILD
sha256sum build/forge-steel-$*.tar.gz | cut -d' ' -f1 | xargs -I{} sed -i -E "s/sha256sums=\\('.*'\\)/sha256sums=\\('{}'\\)/g" PKGBUILD
git add configure.ac PKGBUILD
+3 -2
View File
@@ -1,13 +1,14 @@
pkgname=forge
pkgver=1.0.0
pkgver=0.0.0
pkgrel=1
pkgdesc="Fusion Of Real Time Generative Effects"
arch=('i686' 'pentium4' 'x86_64' 'arm' 'armv7h' 'armv6h' 'aarch64' 'riscv64')
depends=('glfw>=1:3.0', 'v4l-utils>=1.30', 'alsa-lib>=1.2.14')
url="https://github.com/klemek/forge"
url="https://github.com/klemek/forge-steel"
source=("${pkgname}-steel-${pkgver}.tar.gz::https://github.com/klemek/forge-steel/releases/download/steel-v${pkgver}/${pkgname}-steel-${pkgver}.tar.gz")
sha256sums=('71e2db98e1346b101d175535c30875f28eb21432f4147ecc2b40c9da3973f5fb')
srcdir=build
backup=("usr/share/${pkgname}")
build() {
cd "$srcdir/$pkgname-$pkgver"
+3 -3
View File
@@ -65,8 +65,8 @@ options:
-s, --screen output screen number (default: primary)
-m, --monitor monitor screen number (default: none)
-mo, --monitor-only no output screen
-f, --frag fragment shaders directory (default: TODO)
-c, --config fragment shaders config file (default: TODO)
-f, --frag fragment shaders directory (default: /usr/share/forge/shaders)
-c, --config fragment shaders config file (default: /usr/share/forge/default.cfg)
-is, --internal-size internal texture height (default: 720)
-v, --video-in path to video capture device (multiple allowed)
-vs, --video-size video capture desired height (default: internal texture height)
@@ -148,7 +148,7 @@ make -f Makefile.dev release-arch
- [ ] Other
- [ ] Update readme with usage documentation
- [ ] Documentation in default config file
- [ ] Clone "shaders" and config in system path at setup
- [x] Clone "shaders" and config in system path at setup
- [ ] Find and fix opengl errors 0500 ?
- [ ] Investigate video device fps loss (bad unregister ?)
- [ ] Bonus
View File
+40 -50
View File
@@ -11,44 +11,44 @@
#include "types.h"
static void print_help(int status_code) {
puts(
PACKAGE
" " VERSION "\n\n"
"usage: " PACKAGE " "
"[-h] "
"[-v] "
"[-hr] "
"[-s=SCREEN] "
"[-m=SCREEN] "
"[-mo] "
"[-f=DIR_PATH] "
"[-c=CFG_PATH] "
"[-is=SIZE] "
"[-v=FILE] "
"[-vs=SIZE] "
"[-t=TEMPO] "
"[--demo] "
"[-w] "
"\n\n"
"Fusion Of Real-time Generative Effects.\n\n"
"options:\n"
" -h, --help show this help message and exit\n"
" -v, --version print version\n"
" -hr, --hot-reload hot reload of shaders scripts\n"
" -s, --screen output screen number (default: primary)\n"
" -m, --monitor monitor screen number (default: none)\n"
" -mo, --monitor-only no output screen\n"
" -f, --frag fragment shaders directory (default: TODO)\n"
" -c, --config fragment shaders config file (default: "
"TODO)\n"
" -is, --internal-size internal texture height (default: 720)\n"
" -v, --video-in path to video capture device (multiple "
"allowed)\n"
" -vs, --video-size video capture desired height (default: "
"internal texture height)\n"
" -t, --tempo base tempo (default: 60)\n"
" --demo demonstration mode\n"
" -w, --windowed not fullscreen\n");
puts(PACKAGE
" " VERSION "\n\n"
"usage: " PACKAGE " "
"[-h] "
"[-v] "
"[-hr] "
"[-s=SCREEN] "
"[-m=SCREEN] "
"[-mo] "
"[-f=DIR_PATH] "
"[-c=CFG_PATH] "
"[-is=SIZE] "
"[-v=FILE] "
"[-vs=SIZE] "
"[-t=TEMPO] "
"[--demo] "
"[-w] "
"\n\n"
"Fusion Of Real-time Generative Effects.\n\n"
"options:\n"
" -h, --help show this help message and exit\n"
" -v, --version print version\n"
" -hr, --hot-reload hot reload of shaders scripts\n"
" -s, --screen output screen number (default: primary)\n"
" -m, --monitor monitor screen number (default: none)\n"
" -mo, --monitor-only no output screen\n"
" -f, --frag fragment shaders directory "
"(default: " DATADIR "/shaders)\n"
" -c, --config fragment shaders config file "
"(default: " DATADIR "/default.cfg)\n"
" -is, --internal-size internal texture height (default: 720)\n"
" -v, --video-in path to video capture device (multiple "
"allowed)\n"
" -vs, --video-size video capture desired height (default: "
"internal texture height)\n"
" -t, --tempo base tempo (default: 60)\n"
" --demo demonstration mode\n"
" -w, --windowed not fullscreen\n");
exit(status_code);
}
@@ -91,8 +91,8 @@ Parameters args_parse(int argc, char **argv) {
params.output_screen = 0;
params.monitor = false;
params.monitor_screen = 0;
params.frag_path = 0;
params.config_path = 0;
params.frag_path = DATADIR "/shaders";
params.config_path = DATADIR "/default.cfg";
params.internal_size = 720;
params.video_size = 0;
params.base_tempo = 60.0f;
@@ -150,22 +150,12 @@ Parameters args_parse(int argc, char **argv) {
}
}
if (params.frag_path == 0) {
log_error("required argument -f/--frag");
exit(EXIT_FAILURE);
}
if (params.monitor && params.output &&
params.monitor_screen == params.output_screen && !params.windowed) {
log_error("monitor screen cannot be the same as output screen");
exit(EXIT_FAILURE);
}
if (params.frag_path == 0) {
log_error("required argument -fc/--frag-config");
exit(EXIT_FAILURE);
}
if (params.video_size == 0) {
params.video_size = params.internal_size;
}
+6 -2
View File
@@ -5,11 +5,15 @@
#ifndef PACKAGE
#define PACKAGE "forge"
#endif /* PACKAGE */
#endif
#ifndef VERSION
#define VERSION "steel-dev"
#endif /* VERSION */
#endif
#ifndef DATADIR
#define DATADIR "."
#endif
/* TYPES */