diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.in | 4 | ||||
-rw-r--r-- | src/ob-buildenv.sh | 81 | ||||
-rw-r--r-- | src/opkbuild.sh | 19 |
3 files changed, 101 insertions, 3 deletions
diff --git a/src/Makefile.in b/src/Makefile.in index e30f29e..9567306 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -37,8 +37,8 @@ sed_script = s&@@PACKAGE_NAME@@&$(package_name)&;\ .SUFFIXES: .sh SRCS = opkbuild.sh \ - ob-checkbuilddeps.sh #\ - ob-buildenv.sh \ + ob-checkbuilddeps.sh \ + ob-buildenv.sh #\ ob-unpacksource.sh \ ob-applypatches.sh \ ob-installplatconf.sh \ 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 "${@}" diff --git a/src/opkbuild.sh b/src/opkbuild.sh index 1c5a497..cbe0e8a 100644 --- a/src/opkbuild.sh +++ b/src/opkbuild.sh @@ -26,6 +26,23 @@ ob_use output ob_use package ob_use metadata +export OB_SOURCE= +export OB_SOURCE_VERSION= +export OB_SOURCE_VERSION_UPSTREAM= +export OB_BINARY_VERSION= +export OB_BUILD_ARCH= +export OB_BUILD_ARCH_CPU= +export OB_BUILD_ARCH_KERNEL= +export OB_BUILD_ARCH_LIBS= +export OB_BUILD_PLATFORM= +export OB_BUILD_ARCH_GNU= +export OB_HOST_ARCH= +export OB_HOST_ARCH_CPU= +export OB_HOST_ARCH_KERNEL= +export OB_HOST_ARCH_LIBS= +export OB_HOST_PLATFORM= +export OB_HOST_ARCH_GNU= + opt_build= opt_target= opt_host_arch= @@ -65,7 +82,7 @@ main() pkgs="$(ob_get_binary_packages -a "${OB_HOST_ARCH}")" - eval "$(ob-buildenv)" + eval "$(ob-buildenv | sed 's/^/export /')" ob-unpacksource ob-applypatches |