summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/modules/Makefile
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
commit5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda (patch)
tree1acdfa5220cd13b7be43a2a01368e80d306473ca /examples/redis-unstable/modules/Makefile
parentc7ab12bba64d9c20ccd79b132dac475f7bc3923e (diff)
downloadcrep-5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda.tar.gz
Add Redis source code for testing
Diffstat (limited to 'examples/redis-unstable/modules/Makefile')
-rw-r--r--examples/redis-unstable/modules/Makefile90
1 files changed, 90 insertions, 0 deletions
diff --git a/examples/redis-unstable/modules/Makefile b/examples/redis-unstable/modules/Makefile
new file mode 100644
index 0000000..11fcdc3
--- /dev/null
+++ b/examples/redis-unstable/modules/Makefile
@@ -0,0 +1,90 @@
+
+SUBDIRS = redisjson redistimeseries redisbloom redisearch
+
+define submake
+ for dir in $(SUBDIRS); do $(MAKE) -C $$dir $(1); done
+endef
+
+all: prepare_source
+ $(call submake,$@)
+
+get_source:
+ $(call submake,$@)
+
+prepare_source: get_source handle-werrors setup_environment
+
+clean:
+ $(call submake,$@)
+
+distclean: clean_environment
+ $(call submake,$@)
+
+pristine:
+ $(call submake,$@)
+
+install:
+ $(call submake,$@)
+
+setup_environment: install-rust handle-werrors
+
+clean_environment: uninstall-rust
+
+# Keep all of the Rust stuff in one place
+install-rust:
+ifeq ($(INSTALL_RUST_TOOLCHAIN),yes)
+ @RUST_VERSION=1.92.0; \
+ ARCH="$$(uname -m)"; \
+ if ldd --version 2>&1 | grep -q musl; then LIBC_TYPE="musl"; else LIBC_TYPE="gnu"; fi; \
+ echo "Detected architecture: $${ARCH} and libc: $${LIBC_TYPE}"; \
+ case "$${ARCH}" in \
+ 'x86_64') \
+ if [ "$${LIBC_TYPE}" = "musl" ]; then \
+ RUST_INSTALLER="rust-$${RUST_VERSION}-x86_64-unknown-linux-musl"; \
+ RUST_SHA256="e9b977ef480504d3beef0a095b470945af79e8496bcbb0e4a9d4601d6d72dd91"; \
+ else \
+ RUST_INSTALLER="rust-$${RUST_VERSION}-x86_64-unknown-linux-gnu"; \
+ RUST_SHA256="d2ccef59dd9f7439f2c694948069f789a044dc1addcc0803613232af8f88ee0c"; \
+ fi ;; \
+ 'aarch64') \
+ if [ "$${LIBC_TYPE}" = "musl" ]; then \
+ RUST_INSTALLER="rust-$${RUST_VERSION}-aarch64-unknown-linux-musl"; \
+ RUST_SHA256="0c35fca319d01c3d55345d44dbe66c987858c45e262a77c4db679e9869b0af73"; \
+ else \
+ RUST_INSTALLER="rust-$${RUST_VERSION}-aarch64-unknown-linux-gnu"; \
+ RUST_SHA256="3e383f8b4fca710d0600d0c1de97b78281672be2cda6575ecbe1c183a12e3822"; \
+ fi ;; \
+ *) echo >&2 "Unsupported architecture: '$${ARCH}'"; exit 1 ;; \
+ esac; \
+ echo "Downloading and installing Rust standalone installer: $${RUST_INSTALLER}"; \
+ wget --quiet -O $${RUST_INSTALLER}.tar.xz https://static.rust-lang.org/dist/$${RUST_INSTALLER}.tar.xz; \
+ echo "$${RUST_SHA256} $${RUST_INSTALLER}.tar.xz" | sha256sum -c --quiet || { echo "Rust standalone installer checksum failed!"; exit 1; }; \
+ tar -xf $${RUST_INSTALLER}.tar.xz; \
+ (cd $${RUST_INSTALLER} && ./install.sh); \
+ rm -rf $${RUST_INSTALLER}
+endif
+
+uninstall-rust:
+ifeq ($(INSTALL_RUST_TOOLCHAIN),yes)
+ @if [ -x "/usr/local/lib/rustlib/uninstall.sh" ]; then \
+ echo "Uninstalling Rust using uninstall.sh script"; \
+ rm -rf ~/.cargo; \
+ /usr/local/lib/rustlib/uninstall.sh; \
+ else \
+ echo "WARNING: Rust toolchain not found or uninstall script is missing."; \
+ fi
+endif
+
+handle-werrors: get_source
+ifeq ($(DISABLE_WERRORS),yes)
+ @echo "Disabling -Werror for all modules"
+ @for dir in $(SUBDIRS); do \
+ echo "Processing $$dir"; \
+ find $$dir/src -type f \
+ \( -name "Makefile" \
+ -o -name "*.mk" \
+ -o -name "CMakeLists.txt" \) \
+ -exec sed -i 's/-Werror//g' {} +; \
+ done
+endif
+
+.PHONY: all clean distclean install $(SUBDIRS) setup_environment clean_environment install-rust uninstall-rust handle-werrors