#!/bin/bash DEFAULT_PLATFORMS="x64 x86" PACKAGES="base abc-interpreter lib-argenv lib-directory lib-dynamics lib-gast lib-graphcopy lib-itasks lib-platform lib-stdlib lib-tcpip test" link_local_file () { DIR="$1" FROM="$2" TO="$3" mkdir -p "$(dirname "$DIR/$FROM")" if [ -f "$DIR/$FROM" ]; then mv "$DIR/$FROM" "$DIR/$FROM.org" ln -s "$(realpath --no-symlinks "$TO")" "$DIR/$FROM.new" ln -s "$(basename "$FROM").new" "$DIR/$FROM" else ln -s "$(realpath --no-symlinks "$TO")" "$DIR/$FROM" fi } install () { PLATFORM="$1" PACKAGES="$2" DIR="$3" if [ -d "$DIR" ]; then rm -rf "$DIR.bak" mv "$DIR" "$DIR.bak" else rm -rf "$DIR" fi mkdir -p "$DIR" for pkg in $PACKAGES do echo "Fetching $pkg..." curl -# ftp://ftp.cs.ru.nl/pub/Clean/builds/linux-$PLATFORM/clean-$pkg-linux-$PLATFORM-latest.tgz\ | tar xz --strip-components=1 -C "$DIR" done grep -h '^[[:space:]]' "$DIR"/etc/*.env >> "$DIR/etc/IDEEnvs" if [[ "$PLATFORM" = "x86" ]]; then sed \ -e 's/gc-sections/gc-sections -m32/' \ -e 's/Linux-64/Linux-32/' \ -e 's/Environment64BitProcessor:\tTrue/Environment64BitProcessor:\tFalse/' \ ~/.clean/iTasksDev.env >> "$DIR/etc/IDEEnvs" else cat ~/.clean/iTasksDev.env >> "$DIR/etc/IDEEnvs" tail -n +20 ~/projects/top/viia/config/IDEEnvs >> "$DIR/etc/IDEEnvs" fi ln -s lib/exe "$DIR/exe" # cloogletags cloogletags -q -q -a -c -d "$DIR/lib" -o "$DIR/lib/tags" # Local versions of binaries #link_local_file "$DIR" bin/cpm ~/projects/clean/ide/cpm/cpm link_local_file "$DIR" lib/exe/cocl /home/camil/projects/clean/compiler/cocl rm "$DIR/lib/exe/cocl" ln -s cocl.org "$DIR/lib/exe/cocl" #link_local_file "$DIR" lib/exe/cg /home/camil/projects/clean/code-generator/cg link_local_file "$DIR" bin/cleantest ~/projects/clean/test/cleantest link_local_file "$DIR" bin/testproperties ~/projects/clean/test-properties/src/testproperties link_local_file "$DIR" data/cleandoc-default ~/projects/clean/doc/data/cleandoc-default link_local_file "$DIR" bin/cleandoc ~/projects/clean/doc/src/cleandoc link_local_file "$DIR" bin/cleanprof2callgrind ~/projects/clean/prof2callgrind/cleanprof2callgrind # ABC interpreter binaries link_local_file "$DIR" lib/exe/abcopt ~/projects/clean/abc-interpreter/src/abcopt link_local_file "$DIR" lib/exe/bcgen ~/projects/clean/abc-interpreter/src/bcgen link_local_file "$DIR" lib/exe/bclink ~/projects/clean/abc-interpreter/src/bclink link_local_file "$DIR" lib/exe/bcprelink ~/projects/clean/abc-interpreter/src/bcprelink link_local_file "$DIR" lib/exe/bcstrip ~/projects/clean/abc-interpreter/src/bcstrip # completion for f in ~/projects/clean/bash-completion/*; do [ -f "$f" ] || continue base="$(basename "$f")" if [[ "$base" == "Makefile" ]] || [[ "$base" == "README.md" ]] || [[ "$base" =~ .tar.gz$ ]]; then continue fi link_local_file $DIR "etc/completion/$base" "$f" done } PLATFORMS=$@ if [ -z "$PLATFORMS" ]; then PLATFORMS="$DEFAULT_PLATFORMS" fi for PLATFORM in $PLATFORMS do install $PLATFORM "$PACKAGES" "$CLEAN_HOME-$PLATFORM" if [ ! -e "$CLEAN_HOME" ]; then ln -s "$CLEAN_HOME-$PLATFORM" "$CLEAN_HOME" fi done