Spracherkennung für: .bash vermutete Sprache: Masm {Masm[48] SPS[46] Apollo[43]} [Methode: maximale Elemente, drei Dimensionen]
# Copyright
2017 Google
Inc. All rights reserved.
#
# Licensed under the Apache License,
Version 2.
0 (the
"License")
;
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#
http://www.apache.org/licenses/LICENSE-
2.
0
#
# Unless required by applicable law
or agreed to in writing, software
# distributed under the License is distributed on an
"AS IS" BASIS,
# WITHOUT WARRANTIES
OR CONDITIONS OF ANY KIND, either express
or implied.
# See the License
for the specific language governing permissions
and
# limitations under the License.
# Set of utility functions to build
and run go
code with microfactory
#
# Inputs:
# ${GOROOT}
# ${BUILDDIR}
# ${BLUEPRINTDIR}
# ${SRCDIR}
# Bootstrap microfactory from source
if necessary
and use it to build the
# requested binary.
#
# Arguments:
# $
1: name of the requested binary
# $
2: package name
# ${EXTRA_ARGS}: extra arguments to pass to microfactory (-pkg-path, etc)
function build_go
{
# Increment when microfactory changes enough that it cannot rebuild itself.
#
For example,
if we use a new command
line argument that doesn
't work on older versions.
local mf_version=
3
local mf_src=
"${BLUEPRINTDIR}/microfactory"
local mf_bin=
"${BUILDDIR}/microfactory_$(uname)"
local mf_version_file=
"${BUILDDIR}/.microfactory_$(uname)_version"
local built_bin=
"${BUILDDIR}/$1"
local from_src=
1
if [ -f
"${mf_bin}" ] && [ -f
"${mf_version_file}" ]
; then
if [
"${mf_version}" -
eq "$(cat "${mf_version_file}
")" ]
; then
from_src=
0
fi
fi
local mf_cmd
if [ $from_src -
eq 1 ]
; then
# `go run` requires a single main package, so create one
local gen_src_dir=
"${BUILDDIR}/.microfactory_$(uname)_intermediates/src"
mkdir -p
"${gen_src_dir}"
sed
"s/^package microfactory/package main/" "${mf_src}/microfactory.go" >
"${gen_src_dir}/microfactory.go"
printf
"\n//for use with go run\nfunc main() { Main() }\n" >>
"${gen_src_dir}/microfactory.go"
mf_cmd=
"${GOROOT}/bin/go run ${gen_src_dir}/microfactory.go"
else
mf_cmd=
"${mf_bin}"
fi
rm -f
"${BUILDDIR}/.$1.trace"
# GOROOT must be absolute because `go run` changes the
local directory
GOROOT=$(cd $GOROOT
; pwd) ${mf_cmd} -b "${mf_bin}" \
-pkg-path
"github.com/google/blueprint=${BLUEPRINTDIR}" \
-trimpath
"${SRCDIR}" \
${EXTRA_ARGS} \
-o
"${built_bin}" $
2
if [ $? -
eq 0 ] && [ $from_src -
eq 1 ]
; then
echo "${mf_version}" >
"${mf_version_file}"
fi
}