mirror of
https://frontier.innolan.net/github/amigaos-cross-toolchain6.git
synced 2024-10-19 10:29:55 +00:00
Merge branch 'master' of github.com:cahirwpz/amigaos-cross-toolchain
This commit is contained in:
Executable
+243
@@ -0,0 +1,243 @@
|
|||||||
|
#!/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}"`
|
||||||
|
local tmp=`mktemp -d -t "${name}.XXX"`
|
||||||
|
|
||||||
|
pushd ${tmp}
|
||||||
|
|
||||||
|
download "${url}"
|
||||||
|
|
||||||
|
$(TOP_DIR)/.build-m68k/host/bin/lha -xq `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 "$@"
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
Short: BetterString custom class for MUI
|
Short: BetterString custom class for MUI
|
||||||
Version: 11.28
|
Version: 11.29
|
||||||
Url: http://aminet.net/dev/mui/MCC_BetterString-11.28.lha
|
Url: http://aminet.net/dev/mui/MCC_BetterString-11.29.lha
|
||||||
|
|
||||||
MCC_BetterString/Developer/Autodocs/MCC/MCC_BetterString.doc
|
MCC_BetterString/Developer/Autodocs/MCC/MCC_BetterString.doc
|
||||||
MCC_BetterString/Developer/Autodocs/MCC/MCC_HotkeyString.doc
|
MCC_BetterString/Developer/Autodocs/MCC/MCC_HotkeyString.doc
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
Short: NList custom classes for MUI
|
Short: NList custom classes for MUI
|
||||||
Version: 0.119
|
Version: 0.120
|
||||||
Url: http://aminet.net/dev/mui/MCC_NList-0.119.lha
|
Url: http://aminet.net/dev/mui/MCC_NList-0.120.lha
|
||||||
|
|
||||||
MCC_NList/Developer/Autodocs/MCC/MCC_NBalance.doc
|
MCC_NList/Developer/Autodocs/MCC/MCC_NBalance.doc
|
||||||
MCC_NList/Developer/Autodocs/MCC/MCC_NFloattext.doc
|
MCC_NList/Developer/Autodocs/MCC/MCC_NFloattext.doc
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Short: TextEditor custom class for MUI
|
Short: TextEditor custom class for MUI
|
||||||
Version: 15.45
|
Version: 15.46
|
||||||
Url: http://aminet.net/dev/mui/MCC_TextEditor-15.45.lha
|
Url: http://aminet.net/dev/mui/MCC_TextEditor-15.46.lha
|
||||||
|
|
||||||
MCC_TextEditor/Developer/Autodocs/MCC/MCC_TextEditor.doc
|
MCC_TextEditor/Developer/Autodocs/MCC/MCC_TextEditor.doc
|
||||||
MCC_TextEditor/Developer/C/include/mui/TextEditor_mcc.h
|
MCC_TextEditor/Developer/C/include/mui/TextEditor_mcc.h
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
Short: Next Generation Toolbar MUI Custom Class
|
Short: Next Generation Toolbar MUI Custom Class
|
||||||
Version: 26.15
|
Version: 26.16
|
||||||
Url: http://aminet.net/dev/mui/MCC_TheBar-26.15.lha
|
Url: http://aminet.net/dev/mui/MCC_TheBar-26.16.lha
|
||||||
|
|
||||||
MCC_TheBar/Developer/Autodocs/MCC/MCC_TheBar.doc
|
MCC_TheBar/Developer/Autodocs/MCC/MCC_TheBar.doc
|
||||||
MCC_TheBar/Developer/C/include/mui/TheBar_mcc.h
|
MCC_TheBar/Developer/C/include/mui/TheBar_mcc.h
|
||||||
|
|||||||
Reference in New Issue
Block a user