summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/scripts/syncconfig.sh
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-02 18:51:45 +0300
commitd3261e64152397db2dca4d691a990c6bc2a6f4dd (patch)
treefac2f7be638651181a72453d714f0f96675c2b8b /archived/projt-launcher/scripts/syncconfig.sh
parent31b9a8949ed0a288143e23bf739f2eb64fdc63be (diff)
downloadProject-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.tar.gz
Project-Tick-d3261e64152397db2dca4d691a990c6bc2a6f4dd.zip
NOISSUE add archived projects
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'archived/projt-launcher/scripts/syncconfig.sh')
-rwxr-xr-xarchived/projt-launcher/scripts/syncconfig.sh122
1 files changed, 122 insertions, 0 deletions
diff --git a/archived/projt-launcher/scripts/syncconfig.sh b/archived/projt-launcher/scripts/syncconfig.sh
new file mode 100755
index 0000000000..9f070d6956
--- /dev/null
+++ b/archived/projt-launcher/scripts/syncconfig.sh
@@ -0,0 +1,122 @@
+#!/bin/bash
+# ============================================================================
+# syncconfig.sh - Generate auto.conf and autoconf.h from .config
+# ============================================================================
+#
+# This is a lightweight alternative to kconfig's syncconfig for platforms
+# where kconfig tools cannot be built (Windows, macOS CI, etc.).
+#
+# It reads a .config file and generates:
+# - include/config/auto.conf (Makefile-includable CONFIG_* variables)
+# - include/generated/autoconf.h (C header with #define CONFIG_*)
+#
+# Usage:
+# syncconfig.sh <build-dir>
+#
+# ============================================================================
+
+set -e
+
+# Force C locale for consistent regex matching across all locales.
+# Turkish locale (tr_TR) breaks [A-Za-z] character ranges in grep.
+export LC_ALL=C
+
+BUILD_DIR="${1:-.}"
+CONFIG_FILE="${BUILD_DIR}/.config"
+AUTO_CONF_DIR="${BUILD_DIR}/include/config"
+AUTO_HEADER_DIR="${BUILD_DIR}/include/generated"
+AUTO_CONF="${AUTO_CONF_DIR}/auto.conf"
+AUTO_HEADER="${AUTO_HEADER_DIR}/autoconf.h"
+
+if [ ! -f "$CONFIG_FILE" ]; then
+ echo "error: $CONFIG_FILE not found" >&2
+ exit 1
+fi
+
+# Create directories
+mkdir -p "$AUTO_CONF_DIR"
+mkdir -p "$AUTO_HEADER_DIR"
+
+# ============================================================================
+# Generate auto.conf
+# ============================================================================
+
+{
+ echo "# Automatically generated - do not edit"
+ echo "# $(date)"
+ echo ""
+ # Extract all CONFIG_*=value lines (skip comments and blank lines)
+ grep -E '^CONFIG_[A-Za-z0-9_]+=' "$CONFIG_FILE" || true
+ # Also extract non-CONFIG lines that are make variable assignments
+ grep -E '^[A-Z_]+[[:space:]]*:?=' "$CONFIG_FILE" | grep -v '^CONFIG_' || true
+} > "$AUTO_CONF"
+
+echo " GEN $AUTO_CONF"
+
+# ============================================================================
+# Generate autoconf.h
+# ============================================================================
+
+{
+ echo "/* Automatically generated - do not edit */"
+ echo "#ifndef __AUTOCONF_H__"
+ echo "#define __AUTOCONF_H__"
+ echo ""
+
+ while IFS= read -r line; do
+ # Skip comments and blank lines
+ case "$line" in
+ '#'*|'') continue ;;
+ esac
+
+ # Handle CONFIG_*=y -> #define CONFIG_* 1
+ if echo "$line" | grep -qE '^CONFIG_[A-Za-z0-9_]+=y$'; then
+ key=$(echo "$line" | cut -d= -f1)
+ echo "#define $key 1"
+ continue
+ fi
+
+ # Handle CONFIG_*=n -> /* CONFIG_* is not set */
+ if echo "$line" | grep -qE '^CONFIG_[A-Za-z0-9_]+=n$'; then
+ key=$(echo "$line" | cut -d= -f1)
+ echo "/* $key is not set */"
+ continue
+ fi
+
+ # Handle "# CONFIG_* is not set" -> /* CONFIG_* is not set */
+ if echo "$line" | grep -qE '^# CONFIG_[A-Za-z0-9_]+ is not set'; then
+ key=$(echo "$line" | sed 's/^# \(CONFIG_[A-Za-z0-9_]*\) is not set/\1/')
+ echo "/* $key is not set */"
+ continue
+ fi
+
+ # Handle CONFIG_*="string" -> #define CONFIG_* "string"
+ if echo "$line" | grep -qE '^CONFIG_[A-Za-z0-9_]+=".+"$'; then
+ key=$(echo "$line" | cut -d= -f1)
+ val=$(echo "$line" | cut -d= -f2-)
+ echo "#define $key $val"
+ continue
+ fi
+
+ # Handle CONFIG_*="" (empty string) -> #define CONFIG_* ""
+ if echo "$line" | grep -qE '^CONFIG_[A-Za-z0-9_]+=""$'; then
+ key=$(echo "$line" | cut -d= -f1)
+ echo "#define $key \"\""
+ continue
+ fi
+
+ # Handle CONFIG_*=number -> #define CONFIG_* number
+ if echo "$line" | grep -qE '^CONFIG_[A-Za-z0-9_]+=[0-9]+$'; then
+ key=$(echo "$line" | cut -d= -f1)
+ val=$(echo "$line" | cut -d= -f2-)
+ echo "#define $key $val"
+ continue
+ fi
+
+ done < "$CONFIG_FILE"
+
+ echo ""
+ echo "#endif /* __AUTOCONF_H__ */"
+} > "$AUTO_HEADER"
+
+echo " GEN $AUTO_HEADER"