summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-11-14 21:38:11 (EST)
committer P. J. McDermott <pjm@nac.net>2012-11-14 21:43:43 (EST)
commitc900074b320501a82b1cc2ef0ce37a5c0894a947 (patch)
treedfa85489063d405db29c26e8a08e06b5a57504bb
parent0c5073b2fc7adf0c16b13f32c533f4e758335c38 (diff)
Improve the system config generation kludge.
-rwxr-xr-xconfigure6
-rw-r--r--mksysconf.in49
-rwxr-xr-xtestsetup.sh130
3 files changed, 55 insertions, 130 deletions
diff --git a/configure b/configure
index b0f843e..45de403 100755
--- a/configure
+++ b/configure
@@ -38,6 +38,7 @@ quiet='false'
missing_deps='false'
dep_cmds='
sh
+make
opkg
'
opt_dep_libs='
@@ -329,6 +330,11 @@ write_makefiles()
mkdir -p "${_dir}"
sed "${_sed_script}" "${srcdir}/${_dir}/Makefile.in" >"${_dir}/Makefile"
done
+
+ # New and improved kludge to generate system configuration for testing.
+ # TODO: Remove when no longer used.
+ sed "${_sed_script}" "${srcdir}/mksysconf.in" >'mksysconf'
+ chmod 755 'mksysconf'
}
main "${@}"
diff --git a/mksysconf.in b/mksysconf.in
new file mode 100644
index 0000000..68a5899
--- /dev/null
+++ b/mksysconf.in
@@ -0,0 +1,49 @@
+#!@make@ -f
+#
+# opkbuild
+# mksysconf.in
+# Input makefile to generate system configuration to test opkbuild.
+#
+# Copyright (C) 2012 Patrick "P. J." McDermott
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# 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
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+package_name = @package_name@
+package_version = @package_version@
+
+srcdir = @srcdir@
+prefix = @prefix@
+bindir = @bindir@
+libdir = @libdir@
+datadir = @datadir@
+mandir = @mandir@
+sysconfdir = @sysconfdir@
+libopkbuild = @libopkbuild@
+metadata = @metadata@
+opkhelper_3_0 = @opkhelper_3_0@
+
+DESTDIR = /
+
+ARCH = core-linux-eglibc
+PLAT = dev
+
+default:
+ @printf 'Generating build system configuration...\n'
+ @mkdir -p '${sysconfdir}' || \
+ { printf 'Error: Cannot make system configuration directory\n'; exit 1;}
+ @echo '${ARCH}' >'${sysconfdir}/proteanos_arch' || \
+ { printf 'Error: Cannot write proteanos_arch\n'; exit 1;}
+ @echo '${PLAT}' >'${sysconfdir}/proteanos_plat' || \
+ { printf 'Error: Cannot write proteanos_plat\n'; exit 1;}
+ @printf 'Done!\n'
diff --git a/testsetup.sh b/testsetup.sh
deleted file mode 100755
index f32df15..0000000
--- a/testsetup.sh
+++ /dev/null
@@ -1,130 +0,0 @@
-#! /bin/sh
-#
-# opkbuild
-# testsetup
-# Generates configuration and data files to test opkbuild.
-#
-# Copyright (C) 2012 Patrick "P. J." McDermott
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 2 of the License, or
-# (at your option) any later version.
-#
-# 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
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-sysconfdir=''
-
-long_opts_with_args='
-sysconfdir
-'
-
-main()
-{
- parse_options "${@}"
- shift ${optind}
-
- [ -z "${sysconfdir}" ] && sysconfdir='/etc'
-
- if [ ${#} -ne 2 ]; then
- print_usage
- exit 1
- fi
-
- build_arch="${1}"
- build_plat="${2}"
-
- printf 'Generating build system configuration...\n'
- mkdir -p "${sysconfdir}" || \
- error 'Cannot make system configuration directory'
- echo "${build_arch}" >"${sysconfdir}/proteanos_arch" || \
- error 'Cannot write proteanos_arch'
- echo "${build_plat}" >"${sysconfdir}/proteanos_plat" || \
- error 'Cannot write proteanos_plat'
-
- printf 'Done!\n'
-}
-
-print_usage()
-{
- printf 'Usage: %s [OPTION]... build-arch build-plat\n' "${0}"
-}
-
-parse_options()
-{
- optind=0
-
- for _opt; do
-
- # Handle arguments of "--opt arg" options.
- if [ -n "${_prev}" ]; then
- eval "${_prev}"=\"\$\{_opt\}\"
- _prev=''
- continue
- fi
-
- # Detect "--opt=arg" and "--opt arg" options.
- case "${_opt}" in
- *=*)
- _optarg="${_opt#*=}"
- _opt="${_opt%=*}"
- _optarg_set='true'
- ;;
- *)
- _optarg_set='false'
- ;;
- esac
-
- # Handle short and long options.
- case "${_opt}" in
- --)
- break
- ;;
- esac
-
- # Anything beyond this point should be a long option.
- case "${_opt}" in
- --*)
- _opt="${_opt#--}"
- _opts="${long_opts_with_args}"
- _type='option'
- ;;
- *)
- break
- ;;
- esac
-
- grep "^${_opt}\$" >/dev/null 2>&1 <<EOF
-"${_opts}"
-EOF
- if [ ${?} -ne 0 ]; then
- printf 'invalid %s name: %s\n' "${_type}" "${_opt}" >&2
- exit 1
- fi
- if ${_optarg_set}; then
- _opt="$(printf '%s' "${_opt}" | tr -c '[a-z0-9]' '_')"
- eval "${_opt}"=\"\$\{_optarg\}\"
- else
- _prev="${_opt}"
- fi
-
- optind=$(($optind + 1))
-
- done
-}
-
-error()
-{
- printf '%s: Error: ' "${0##*/}"
- printf "${@}"
- printf '\n'
- exit 1
-}
-
-main "${@}"