summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas2025-10-19 18:14:34 +0000
committerÁlvaro Fernández Rojas2025-10-19 18:35:00 +0000
commit49df5f5b870445f0cc0f4f9a88e5d06de1da669d (patch)
tree41bd1ad2f84162365c82fb5b6f13955615252d57
parent757c1c704c9d07bf49e528d1ee0cd2b1423d4059 (diff)
downloadomcproxy-49df5f5b870445f0cc0f4f9a88e5d06de1da669d.tar.gz
omcproxy: add a simple build script
Should make it a little bit easier for people who want to contribute. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-rw-r--r--.gitignore1
-rwxr-xr-xscripts/devel-build.sh64
2 files changed, 65 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index ab70e7e..b40aec7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.project
.cproject
+build
CMakeCache.txt
CMakeFiles
CMakeScripts
diff --git a/scripts/devel-build.sh b/scripts/devel-build.sh
new file mode 100755
index 0000000..ae9ade6
--- /dev/null
+++ b/scripts/devel-build.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+
+set -euxo pipefail
+cd "${0%/*}"
+cd ..
+
+# Sanity checks
+if [ ! -e "CMakeLists.txt" ] || [ ! -e "src/omcproxy.c" ]; then
+ echo "omcproxy checkout not found" >&2
+ exit 1
+fi
+
+BUILD_ARGS="$@"
+
+# Create build dirs
+OMCPROXYDIR="$(pwd)"
+BUILDDIR="${OMCPROXYDIR}/build"
+DEPSDIR="${BUILDDIR}/depends"
+[ -e "${BUILDDIR}" ] || mkdir "${BUILDDIR}"
+[ -e "${DEPSDIR}" ] || mkdir "${DEPSDIR}"
+
+# Download deps
+cd "${DEPSDIR}"
+[ -e "json-c" ] || git clone https://github.com/json-c/json-c.git
+[ -e "libubox" ] || git clone https://github.com/openwrt/libubox.git
+
+# Build json-c
+cd "${DEPSDIR}/json-c"
+cmake \
+ -S . \
+ -B . \
+ -DCMAKE_PREFIX_PATH="${BUILDDIR}" \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DDISABLE_EXTRA_LIBS=ON \
+ --install-prefix "${BUILDDIR}"
+make
+make install
+
+# Build libubox
+cd "${DEPSDIR}/libubox"
+cmake \
+ -S . \
+ -B . \
+ -DCMAKE_PREFIX_PATH="${BUILDDIR}" \
+ -DBUILD_LUA=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ --install-prefix "${BUILDDIR}"
+make
+make install
+
+# Build omcproxy
+cd "${OMCPROXYDIR}"
+cmake \
+ -S . \
+ -B "${BUILDDIR}" \
+ -DCMAKE_PREFIX_PATH="${BUILDDIR}" \
+ ${BUILD_ARGS}
+make -C "${BUILDDIR}"
+
+set +x
+echo "✅ Success - the omcproxy binary is available at ${BUILDDIR}/omcproxy"
+echo "👷 You can rebuild omcproxy by running 'make -C build'"
+
+exit 0