aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure77
1 files changed, 77 insertions, 0 deletions
diff --git a/configure b/configure
new file mode 100755
index 0000000..3e12cbb
--- /dev/null
+++ b/configure
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# This file is part of Haketilo
+#
+# Copyright (C) 2021, jahoti
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the CC0 1.0 Universal License as published by
+# the Creative Commons Corporation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# CC0 1.0 Universal License for more details.
+
+set -e
+
+SRCDIR=''
+TARGET=''
+
+# Parse command line options
+while [ "x$1" != x ]; do
+ case "$1" in
+ --srcdir=*) SRCDIR="$(echo "$1" | cut -c 10-)";;
+ --srcdir) SRCDIR="$2"; shift;;
+ "UPDATE_URL"=*) UPDATE_URL="$(echo "$1" | cut -c 12-)";;
+ --host=*) TARGET="$(echo "$1" | cut -c 8-)";;
+ --host) TARGET="$2"; shift;;
+ mozilla | chromium | all) TARGET=$1;;
+ *) echo Ignoring option "'$1'";;
+ esac
+ shift
+done
+
+# Autodetect srcdir
+if [ "x$SRCDIR" = x ]; then
+ SRCDIR=..
+ if [ -f manifest.json -a -f write_makefile.sh]; then
+ SRCDIR=.
+ fi
+fi
+
+# Check srcdir
+if [ ! -f "$SRCDIR"/manifest.json ]; then
+ echo Invalid source directory "'$SRCDIR'": missing manifest.json >&2
+ exit 1
+elif [ ! -f "$SRCDIR"/write_makefile.sh ]; then
+ echo Invalid source directory "'$SRCDIR'": missing write_makefile.sh >&2
+ exit 1
+fi
+
+# TODO: automate target detection
+
+# Standardize and check browser names
+case "${TARGET:-all}" in
+ mozilla) TARGET=mozilla;;
+ chromium) TARGET=chromium;;
+ all) TARGET=all;;
+ *) echo Invalid target "'$1'" >&2; exit 2;;
+esac
+
+# Write record.conf
+echo UPDATE_URL = "$UPDATE_URL" > record.conf
+echo default_target = "$TARGET" >> record.conf
+echo srcdir = "$SRCDIR" >> record.conf
+
+
+# Prepare environment for and run write_makefile.sh (as config.status)
+if [ ! -e Makefile.in ]; then
+ cp "$SRCDIR"/Makefile.in .
+fi
+
+if [ ! -e config.status ]; then
+ cp "$SRCDIR"/write_makefile.sh config.status
+fi
+
+./config.status