mirror of
https://frontier.innolan.net/github/amigaos-cross-toolchain6.git
synced 2024-10-19 10:29:55 +00:00
Rewrite install-sdk.sh into Python and integrate with toolchain-m68k script.
This commit is contained in:
@@ -100,7 +100,7 @@ Follow steps listed below:
|
|||||||
|
|
||||||
```
|
```
|
||||||
# export PATH=/opt/m68k-amigaos/bin:$PATH
|
# export PATH=/opt/m68k-amigaos/bin:$PATH
|
||||||
# ./install-sdk.sh --prefix=/opt/m68k-amigaos ahi cgx mui
|
# ./toolchain-m68k --prefix=/opt/m68k-amigaos install-sdk ahi cgx mui
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** *If the build process fails, please write me an e-mail. I'll try to help out. Don't forget to put into e-mail as much data about your environment as possible!*
|
**Note:** *If the build process fails, please write me an e-mail. I'll try to help out. Don't forget to put into e-mail as much data about your environment as possible!*
|
||||||
|
|||||||
-242
@@ -1,242 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
readonly TOP_DIR="$(pwd)"
|
|
||||||
|
|
||||||
function download {
|
|
||||||
local -r url="$1"
|
|
||||||
local -r file="${2:-$(basename "${url}")}"
|
|
||||||
|
|
||||||
if [ ! -f "${file}" ]; then
|
|
||||||
wget -O "${file}" "${url}" || exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function list {
|
|
||||||
echo "Available SDKs:"
|
|
||||||
|
|
||||||
for sdk in ${TOP_DIR}/sdk/*.sdk; do
|
|
||||||
name=$(basename ${sdk})
|
|
||||||
short=`sed -ne "s/Short: //p" ${sdk}`
|
|
||||||
ver=`sed -ne "s/Version: //p" ${sdk}`
|
|
||||||
echo " - ${name%%.sdk} : $short $ver"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function add_stubs {
|
|
||||||
local src="$1"
|
|
||||||
local libdir="$2"
|
|
||||||
local obj="${src%.c}.o"
|
|
||||||
|
|
||||||
echo "${obj} -> ${PREFIX}/lib/${libdir}/libstubs.a"
|
|
||||||
m68k-amigaos-gcc "${CFLAGS}" -noixemul -c -o "${obj}" "${src}" && \
|
|
||||||
m68k-amigaos-ar rs "${PREFIX}/lib/${libdir}/libstubs.a" "${obj}"
|
|
||||||
rm -f "${obj}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function add_lib {
|
|
||||||
local src="$1"
|
|
||||||
local lib="$2"
|
|
||||||
local obj="${src%.a}.o"
|
|
||||||
|
|
||||||
echo "${src} -> ${PREFIX}/lib/${lib}"
|
|
||||||
m68k-amigaos-gcc "${CFLAGS}" -noixemul -c -o "${obj}" "${src}" && \
|
|
||||||
m68k-amigaos-ar rcs "${PREFIX}/lib/${lib}" "${obj}"
|
|
||||||
rm -f "${obj}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function install_sdk {
|
|
||||||
local name="$1"
|
|
||||||
local sdk="$2"
|
|
||||||
|
|
||||||
local url=`sed -ne "s/Url: //p" ${sdk}`
|
|
||||||
local tmp=`mktemp -d -t "${name}"`
|
|
||||||
|
|
||||||
pushd ${tmp}
|
|
||||||
|
|
||||||
download "${url}"
|
|
||||||
|
|
||||||
lha -xgq `basename ${url}`
|
|
||||||
|
|
||||||
sed -ne '5,$p' ${sdk} | while read -a line; do
|
|
||||||
if [[ ${#line[@]} > 1 ]]; then
|
|
||||||
case ${line[1]} in
|
|
||||||
"=")
|
|
||||||
file=${line[2]}
|
|
||||||
path=${line[0]}
|
|
||||||
new_path=$(dirname ${path})/${file}
|
|
||||||
mv -v ${path} ${new_path}
|
|
||||||
path=${new_path}
|
|
||||||
;;
|
|
||||||
":")
|
|
||||||
case ${line[0]} in
|
|
||||||
"fd2sfd")
|
|
||||||
sfd="$(basename ${line[2]%%.fd}.sfd)"
|
|
||||||
echo "${line[2]} ${line[3]} -> ${sfd}"
|
|
||||||
fd2sfd -o ${sfd} ${line[2]} ${line[3]}
|
|
||||||
mkdir -p "${PREFIX}/os-lib/sfd"
|
|
||||||
cp -v ${sfd} "${PREFIX}/os-lib/sfd/${sfd}"
|
|
||||||
;;
|
|
||||||
"sfdc")
|
|
||||||
path=${line[2]}
|
|
||||||
file=$(basename ${path})
|
|
||||||
base=${file%_lib.sfd}
|
|
||||||
|
|
||||||
mkdir -p "${PREFIX}/os-include/proto"
|
|
||||||
mkdir -p "${PREFIX}/os-include/inline"
|
|
||||||
mkdir -p "${PREFIX}/os-include/lvo"
|
|
||||||
|
|
||||||
echo "${path} -> ${PREFIX}/os-include/proto/${base}.h"
|
|
||||||
sfdc --quiet --target=m68k-amigaos --mode=proto \
|
|
||||||
--output="${PREFIX}/os-include/proto/${base}.h" ${path}
|
|
||||||
|
|
||||||
echo "${path} -> ${PREFIX}/os-include/inline/${base}.h"
|
|
||||||
sfdc --quiet --target=m68k-amigaos --mode=macros \
|
|
||||||
--output="${PREFIX}/os-include/inline/${base}.h" ${path}
|
|
||||||
|
|
||||||
echo "${path} -> ${PREFIX}/os-include/lvo/${base}.i"
|
|
||||||
sfdc --quiet --target=m68k-amigaos --mode=lvo \
|
|
||||||
--output="${PREFIX}/os-include/lvo/${base}.i" ${path}
|
|
||||||
;;
|
|
||||||
"stubs")
|
|
||||||
path=${line[2]}
|
|
||||||
filepart=$(basename ${path})
|
|
||||||
file="${filepart%_lib.sfd}.c"
|
|
||||||
|
|
||||||
echo "${path} -> ${file}"
|
|
||||||
sfdc --quiet --target=m68k-amigaos --mode=autoopen \
|
|
||||||
--output="${file}" ${path}
|
|
||||||
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer"
|
|
||||||
add_stubs "${file}" "libnix"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA"
|
|
||||||
add_stubs "${file}" "libb/libnix"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -m68020"
|
|
||||||
add_stubs "${file}" "libm020/libnix"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020"
|
|
||||||
add_stubs "${file}" "libb/libm020/libnix"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -m68020 -m68881"
|
|
||||||
add_stubs "${file}" "libm020/libm881/libnix"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020 -m68881"
|
|
||||||
add_stubs "${file}" "libb/libm020/libm881/libnix"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020"
|
|
||||||
add_stubs "${file}" "libb32/libm020/libnix"
|
|
||||||
;;
|
|
||||||
"lib")
|
|
||||||
path=${line[2]}
|
|
||||||
filepart=$(basename ${path})
|
|
||||||
file="${filepart%_lib.sfd}.c"
|
|
||||||
lib="lib${name}.a"
|
|
||||||
|
|
||||||
echo "${path} -> ${file}"
|
|
||||||
sfdc --quiet --target=m68k-amigaos --mode=stubs \
|
|
||||||
--output="${file}" ${path}
|
|
||||||
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer"
|
|
||||||
add_lib "${file}" "${lib}"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA"
|
|
||||||
add_lib "${file}" "libb/${lib}"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -m68020"
|
|
||||||
add_lib "${file}" "libm020/${lib}"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020"
|
|
||||||
add_lib "${file}" "libb/libm020/${lib}"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -m68020 -m68881"
|
|
||||||
add_lib "${file}" "libm020/libm881/${lib}"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel -DSMALL_DATA -m68020 -m68881"
|
|
||||||
add_lib "${file}" "libb/libm020/libm881/${lib}"
|
|
||||||
CFLAGS="-Wall -O3 -fomit-frame-pointer -fbaserel32 -DSMALL_DATA -m68020"
|
|
||||||
add_lib "${file}" "libb32/libm020/${lib}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unknown preprocessor: '${line}'"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
continue
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Syntax error: '${line}'"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
file=$(basename ${line})
|
|
||||||
path=${line}
|
|
||||||
fi
|
|
||||||
|
|
||||||
lastdir=$(basename $(dirname ${path}))
|
|
||||||
|
|
||||||
case ${file} in
|
|
||||||
*.doc|*.html|*.pdf|*.ps)
|
|
||||||
mkdir -p "${PREFIX}/doc"
|
|
||||||
cp -v ${path} ${PREFIX}/doc/${file}
|
|
||||||
;;
|
|
||||||
*.guide)
|
|
||||||
mkdir -p "${PREFIX}/guide"
|
|
||||||
cp -v ${path} ${PREFIX}/guide/${file}
|
|
||||||
;;
|
|
||||||
*.i|*.h)
|
|
||||||
mkdir -p "${PREFIX}/os-include/${lastdir}"
|
|
||||||
cp -v ${path} ${PREFIX}/os-include/${lastdir}/${file}
|
|
||||||
;;
|
|
||||||
*.fd)
|
|
||||||
mkdir -p "${PREFIX}/os-lib/fd"
|
|
||||||
cp -v ${path} ${PREFIX}/os-lib/fd/${file}
|
|
||||||
;;
|
|
||||||
*.sfd)
|
|
||||||
mkdir -p "${PREFIX}/os-lib/sfd"
|
|
||||||
cp -v ${path} ${PREFIX}/os-lib/sfd/${file}
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "${path} ???"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
popd
|
|
||||||
|
|
||||||
rm -rf "${tmp}"
|
|
||||||
}
|
|
||||||
|
|
||||||
function main {
|
|
||||||
PREFIX="${TOP_DIR}/target"
|
|
||||||
|
|
||||||
local action
|
|
||||||
|
|
||||||
while [ -n "${1:-}" ]; do
|
|
||||||
case "$1" in
|
|
||||||
--prefix=*)
|
|
||||||
PREFIX=${1#*=}
|
|
||||||
;;
|
|
||||||
--*)
|
|
||||||
echo "Unknown option: $1"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "$@" == "" ]]; then
|
|
||||||
echo "Usage: $0 sdk1 sdk2 ..."
|
|
||||||
echo ""
|
|
||||||
list
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for name in $@; do
|
|
||||||
sdk="${TOP_DIR}/sdk/${name}.sdk"
|
|
||||||
|
|
||||||
if [ ! -f "${sdk}" ]; then
|
|
||||||
echo "Unknown SDK - '${name}' !"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Installing '${name}'..."
|
|
||||||
install_sdk "${name}" "${sdk}"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
main "$@"
|
|
||||||
+176
-5
@@ -8,6 +8,8 @@ from os import environ
|
|||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
import platform
|
import platform
|
||||||
|
import re
|
||||||
|
import string
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
URLS = \
|
URLS = \
|
||||||
@@ -39,6 +41,16 @@ URLS = \
|
|||||||
'vclib.lha')]
|
'vclib.lha')]
|
||||||
|
|
||||||
|
|
||||||
|
MULTILIB = [('', []),
|
||||||
|
('libb', ['-fbaserel', '-DSMALL_DATA']),
|
||||||
|
('libm020', ['-m68020']),
|
||||||
|
('libb/libm020', ['-fbaserel', '-DSMALL_DATA', '-m68020']),
|
||||||
|
('libm020/libm881', ['-m68020', '-m68881']),
|
||||||
|
('libb/libm020/libm881',
|
||||||
|
['-fbaserel', '-DSMALL_DATA', '-m68020', '-m68881']),
|
||||||
|
('libb32/libm020', ['-fbaserel32', '-DSMALL_DATA', '-m68020'])]
|
||||||
|
|
||||||
|
|
||||||
from common import * # NOQA
|
from common import * # NOQA
|
||||||
|
|
||||||
|
|
||||||
@@ -314,8 +326,10 @@ def build():
|
|||||||
'--target=m68k-amigaos',
|
'--target=m68k-amigaos',
|
||||||
'--enable-languages=c,c++',
|
'--enable-languages=c,c++',
|
||||||
'--with-headers={sources}/{ixemul}/include')
|
'--with-headers={sources}/{ixemul}/include')
|
||||||
make('{gcc}', 'all-gcc', MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
|
make('{gcc}', 'all-gcc',
|
||||||
make('{gcc}', 'install-gcc', MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
|
MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
|
||||||
|
make('{gcc}', 'install-gcc',
|
||||||
|
MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
|
||||||
|
|
||||||
unpack('libamiga', top_dir='.')
|
unpack('libamiga', top_dir='.')
|
||||||
install_libamiga()
|
install_libamiga()
|
||||||
@@ -360,6 +374,159 @@ def clean():
|
|||||||
rmtree('{tmpdir}')
|
rmtree('{tmpdir}')
|
||||||
|
|
||||||
|
|
||||||
|
def read_sdk(filename):
|
||||||
|
phase = 'info'
|
||||||
|
info = {}
|
||||||
|
files = []
|
||||||
|
|
||||||
|
for line in open(filename):
|
||||||
|
line = line.strip()
|
||||||
|
|
||||||
|
if phase == 'info':
|
||||||
|
if line == '':
|
||||||
|
phase = 'files'
|
||||||
|
else:
|
||||||
|
fields = [field.strip() for field in line.split(':', 1)]
|
||||||
|
info[string.lower(fields[0])] = fields[1]
|
||||||
|
elif phase == 'files':
|
||||||
|
if ':' in line:
|
||||||
|
fields = [field.strip() for field in re.split('[: ]+', line)]
|
||||||
|
files.append(tuple(fields))
|
||||||
|
elif '=' in line:
|
||||||
|
fields = [field.strip() for field in line.split('=')]
|
||||||
|
files.append(tuple(['file'] + fields))
|
||||||
|
else:
|
||||||
|
files.append(('file', line))
|
||||||
|
|
||||||
|
return (info, files)
|
||||||
|
|
||||||
|
|
||||||
|
def list_sdk():
|
||||||
|
print 'Available SDKs:'
|
||||||
|
|
||||||
|
for filename in find('{top}/sdk', include='*.sdk'):
|
||||||
|
info, _ = read_sdk(filename)
|
||||||
|
name = path.splitext(path.basename(filename))[0]
|
||||||
|
print ' - %s %s : %s' % (name, info['version'], info['short'])
|
||||||
|
|
||||||
|
|
||||||
|
def add_stubs(src):
|
||||||
|
obj = re.sub(r'\.c$', r'.o', src)
|
||||||
|
|
||||||
|
for libdir, cflags in MULTILIB:
|
||||||
|
lib = path.join('{target}/lib', libdir, 'libnix/libstubs.a')
|
||||||
|
info('stubs: "%s" -> "%s"', obj, lib)
|
||||||
|
cflags = list(cflags) + ['-noixemul', '-c', '-o', obj, src]
|
||||||
|
execute('m68k-amigaos-gcc', '-Wall', '-O3', '-fomit-frame-pointer', *cflags)
|
||||||
|
execute('m68k-amigaos-ar', 'rs', lib, obj)
|
||||||
|
remove(obj)
|
||||||
|
|
||||||
|
|
||||||
|
def add_lib(src, libname):
|
||||||
|
obj = re.sub(r'\.a$', r'.o', libname)
|
||||||
|
|
||||||
|
for libdir, cflags in MULTILIB:
|
||||||
|
lib = path.join('{target}/lib', libdir, libname)
|
||||||
|
info('lib: "%s" -> "%s"', obj, lib)
|
||||||
|
cflags = list(cflags) + ['-noixemul', '-c', '-o', obj, src]
|
||||||
|
execute('m68k-amigaos-gcc', '-Wall', '-O3', '-fomit-frame-pointer', *cflags)
|
||||||
|
execute('m68k-amigaos-ar', 'rcs', lib, obj)
|
||||||
|
remove(obj)
|
||||||
|
|
||||||
|
|
||||||
|
@recipe('install-sdk', 1)
|
||||||
|
def process_sdk(sdk, files):
|
||||||
|
with cwd(path.join('{sources}', sdk)):
|
||||||
|
for f in files:
|
||||||
|
kind = f[0]
|
||||||
|
|
||||||
|
if kind == 'fd2sfd':
|
||||||
|
fd, protos = f[1], f[2]
|
||||||
|
basename = path.splitext(path.basename(source))[0]
|
||||||
|
sfd = basename + '.sfd'
|
||||||
|
execute('fd2sfd', '-o', sfd, fd, protos)
|
||||||
|
copy(sfd, path.join('{target}/os-lib/sfd', sfd))
|
||||||
|
elif kind == 'sfdc':
|
||||||
|
source = f[1]
|
||||||
|
basename = re.sub(r'_lib.sfd$', r'', path.basename(source))
|
||||||
|
|
||||||
|
proto = path.join('{target}/os-include/proto', basename + '.h')
|
||||||
|
inline = path.join('{target}/os-include/inline', basename + '.h')
|
||||||
|
lvo = path.join('{target}/os-include/lvo', basename + '.i')
|
||||||
|
|
||||||
|
info('sfdc: %s -> %s', source, proto)
|
||||||
|
execute('sfdc', '--quiet', '--target=m68k-amigaos', '--mode=proto',
|
||||||
|
'--output=' + proto, source)
|
||||||
|
info('sfdc: %s -> %s', source, inline)
|
||||||
|
execute('sfdc', '--quiet', '--target=m68k-amigaos', '--mode=macros',
|
||||||
|
'--output=' + inline, source)
|
||||||
|
info('sfdc: %s -> %s', source, lvo)
|
||||||
|
execute('sfdc', '--quiet', '--target=m68k-amigaos', '--mode=lvo',
|
||||||
|
'--output=' + lvo, source)
|
||||||
|
elif kind == 'stubs':
|
||||||
|
filename = f[1]
|
||||||
|
c_file = re.sub(r'_lib\.sfd$', r'.c', path.basename(filename))
|
||||||
|
|
||||||
|
info('stubs: %s -> %s', filename, c_file)
|
||||||
|
execute('sfdc', '--quiet', '--target=m68k-amigaos', '--mode=autoopen',
|
||||||
|
'--output=' + c_file, filename)
|
||||||
|
add_stubs(c_file)
|
||||||
|
elif kind == 'lib':
|
||||||
|
filename = f[1]
|
||||||
|
c_file = re.sub(r'_lib\.sfd$', r'.c', path.basename(filename))
|
||||||
|
|
||||||
|
info('lib: %s -> %s', filename, c_file)
|
||||||
|
execute('sfdc', '--quiet', '--target=m68k-amigaos', '--mode=stubs',
|
||||||
|
'--output=' + c_file, filename)
|
||||||
|
add_lib(c_file, name)
|
||||||
|
elif kind == 'file':
|
||||||
|
source = f[1]
|
||||||
|
try:
|
||||||
|
name = f[2]
|
||||||
|
except:
|
||||||
|
name = path.basename(f[1])
|
||||||
|
|
||||||
|
if any(name.endswith(ext) for ext in ['.doc', '.html', '.pdf', '.ps']):
|
||||||
|
mkdir('{target}/doc')
|
||||||
|
copy(source, path.join('{target}/doc', name))
|
||||||
|
elif name.endswith('.guide'):
|
||||||
|
mkdir('{target}/guide')
|
||||||
|
copy(source, path.join('{target}/guide', name))
|
||||||
|
elif any(name.endswith(ext) for ext in ['.h', '.i']):
|
||||||
|
lastdir = path.basename(path.dirname(f[1]))
|
||||||
|
mkdir(path.join('{target}/os-include', lastdir))
|
||||||
|
copy(source, path.join('{target}/os-include', lastdir, name))
|
||||||
|
elif name.endswith('.fd'):
|
||||||
|
mkdir('{target}/os-lib/fd')
|
||||||
|
copy(source, path.join('{target}/os-lib/fd', name))
|
||||||
|
elif name.endswith('.sfd'):
|
||||||
|
mkdir('{target}/os-lib/sfd')
|
||||||
|
copy(source, path.join('{target}/os-lib/sfd', name))
|
||||||
|
|
||||||
|
|
||||||
|
def install_sdk(*names):
|
||||||
|
environ['PATH'] = ":".join([path.join('{target}', 'bin'),
|
||||||
|
path.join('{host}', 'bin'),
|
||||||
|
environ['PATH']])
|
||||||
|
|
||||||
|
for name in names:
|
||||||
|
filename = path.join('{top}/sdk', name + '.sdk')
|
||||||
|
|
||||||
|
if not path.exists(filename):
|
||||||
|
panic('No SDK description file for "%s".', name)
|
||||||
|
|
||||||
|
desc, files = read_sdk(filename)
|
||||||
|
|
||||||
|
with cwd('{archives}'):
|
||||||
|
fetch(path.basename(desc['url']), desc['url'])
|
||||||
|
|
||||||
|
basename = path.splitext(path.basename(desc['url']))[0]
|
||||||
|
|
||||||
|
unpack(basename, top_dir='.')
|
||||||
|
|
||||||
|
process_sdk(basename, files)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s')
|
logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s')
|
||||||
|
|
||||||
@@ -374,8 +541,11 @@ if __name__ == "__main__":
|
|||||||
panic('Build on %s architecture not supported!', platform.machine())
|
panic('Build on %s architecture not supported!', platform.machine())
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Build cross toolchain.')
|
parser = argparse.ArgumentParser(description='Build cross toolchain.')
|
||||||
parser.add_argument('action', choices=['build', 'clean'], default='build',
|
parser.add_argument('action',
|
||||||
help='perform action')
|
choices=['build', 'list-sdk', 'install-sdk', 'clean'],
|
||||||
|
default='build', help='perform action')
|
||||||
|
parser.add_argument('args', metavar='ARGS', type=str, nargs='*',
|
||||||
|
help='action arguments')
|
||||||
parser.add_argument('--binutils', choices=['2.9.1'], default='2.9.1',
|
parser.add_argument('--binutils', choices=['2.9.1'], default='2.9.1',
|
||||||
help='desired binutils version')
|
help='desired binutils version')
|
||||||
parser.add_argument('--gcc', choices=['2.95.3'], default='2.95.3',
|
parser.add_argument('--gcc', choices=['2.95.3'], default='2.95.3',
|
||||||
@@ -418,4 +588,5 @@ if __name__ == "__main__":
|
|||||||
if not path.exists('{target}'):
|
if not path.exists('{target}'):
|
||||||
mkdir('{target}')
|
mkdir('{target}')
|
||||||
|
|
||||||
eval(args.action + "()")
|
action = args.action.replace('-', '_')
|
||||||
|
globals()[action].__call__(*args.args)
|
||||||
|
|||||||
Reference in New Issue
Block a user