summaryrefslogtreecommitdiffstats
path: root/src/ob-buildenv.sh
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2012-10-03 14:35:05 (EDT)
committer P. J. McDermott <pjm@nac.net>2012-10-03 14:35:05 (EDT)
commitea2d316bbeb8aa99a3f697197741a887c9cf6450 (patch)
tree8ede7e50367483f7bfe77bfc77abb63a66458f4d /src/ob-buildenv.sh
parent9f0e5ebe959898ceb2813a3b774ce9b9c22fb8c2 (diff)
Implement ob-buildenv.
Diffstat (limited to 'src/ob-buildenv.sh')
-rw-r--r--src/ob-buildenv.sh81
1 files changed, 81 insertions, 0 deletions
diff --git a/src/ob-buildenv.sh b/src/ob-buildenv.sh
new file mode 100644
index 0000000..3466e7b
--- /dev/null
+++ b/src/ob-buildenv.sh
@@ -0,0 +1,81 @@
+#!@@SH@@
+#
+# opkbuild
+# src/opkbuild
+# Build opkg packages.
+#
+# 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 3 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/>.
+
+. '@@LIBOPKBUILD@@/load.sm'
+
+ob_use locale
+ob_use output
+ob_use package
+
+main()
+{
+ ob_set_text_domain 'opkbuild'
+
+ ob_init_package '..'
+ ob_parse_package_metadata -c '.opkbuild.cache'
+
+ ob_info "$(ob_get_msg 'setup_build_env')"
+
+ setup_build_helper
+ setup_toolchain
+ setup_build_flags
+}
+
+setup_build_helper()
+{
+ # TODO: Do.
+ :
+}
+
+setup_toolchain()
+{
+ tool_prefix="${OB_HOST_ARCH}-"
+
+ # Set toolchain environment variables.
+ # NB: This is written for GNU Binutils and GCC and won't work for, e.g.,
+ # LLVM.
+ cat <<EOF
+AR='${tool_prefix}ar'
+AS='${tool_prefix}as'
+CC='${tool_prefix}gcc'
+CPP='${tool_prefix}cpp'
+CXX='${tool_prefix}g++'
+LD='${tool_prefix}ld'
+NM='${tool_prefix}nm'
+OBJCOPY='${tool_prefix}objcopy'
+OBJDUMP='${tool_prefix}objdump'
+RANLIB='${tool_prefix}ranlib'
+READELF='${tool_prefix}readelf'
+SIZE='${tool_prefix}size'
+STRINGS='${tool_prefix}strings'
+STRIP='${tool_prefix}strip'
+EOF
+}
+
+setup_build_flags()
+{
+ # TODO: Don't hardcode path.
+ if [ -r "/usr/local/share/opkhelper/buildflags/${OB_HOST_ARCH_CPU}" ]; then
+ . /usr/local/share/opkhelper/buildflags/${OB_HOST_ARCH_CPU}
+ fi
+}
+
+main "${@}"