西西河

主题:【原创】随便聊聊算法、应用数学和数学 -- hokmen

共:💬39 🌺41
全看分页树展 · 主题 跟帖
家园 我们当时汇编学的就是这个mmix

俺在德国的Uni. Tübingen. 当时这个mmix搞得所有同学当时是怨声载道,苦不堪言,图书馆一共就两本参考书快被抢疯了。网上有关资料相对很少,中文的就更不好找了。国内似乎清华也是学这个。

给您贴一个当时教授给的自动安装脚本。

# Wie man einen MMIX-Cross-Compiler hochzieht

# (OK, 04.03.2006)

# Hier wird alles hin installiert! Bitte anpassen

export MMIXHOME=/gpp

if test "$MMIXHOME" = "aendern" ; then

echo "Bitte Installationspfad anpassen!"

exit

fi

# Ueberpruefen ob g++, cweb und wget im Pfad sind

if test ! `which g++`; then echo "g++ ist nicht im Pfad!"; exit; fi

if test ! `which cweave`; then echo "cweave ist nicht im Pfad!"; exit; fi

if test ! `which wget`; then echo "wget ist nicht im Pfad!"; exit; fi

# Zutaten:

# - gcc

# - binutils

# - mmix

# - newlib

GCC=gcc-4.0.2.tar.bz2

BINUTILS=binutils-2.16.1.tar.gz

MMIX=mmix-20050922.tar.gz

NEWLIB=newlib-1.14.0.tar.gz

# Man lege ein Verzeichnis an, das den MMIX-Kram aufnehmen soll:

#

export MAKE="make"

export PATH=$MMIXHOME/bin:$PATH

mkdir -p $MMIXHOME

echo "Preparing to install MMIX tools in $MMIXHOME"

mkdir -p $MMIXHOME/bin

mkdir -p $MMIXHOME/src

cd $MMIXHOME/src

# Zuerst besorgen wir alle Pakete per wget:

#

echo ""

echo " --- Download --- "

echo "Falls das Skript beim Download abbricht, mu wahrscheinlich ein Proxy genutzt werden."

echo "Setzen sie dazu die Umgebungsvaraiblen 'http_proxy' und 'ftp_proxy'!"

echo ""

echo "Downloading $MMIX..."

#wget -q http://www-cs-faculty.stanford.edu/~knuth/programs/$MMIX || exit

echo "Downloading $BINUTILS..."

#wget -q http://ftp.gnu.org/gnu/binutils/$BINUTILS || exit

echo "Downloading $GCC..."

#wget -q http://ftp.gnu.org/gnu/gcc/gcc-4.0.2/$GCC || exit

echo "Downloading $NEWLIB..."

#wget -q ftp://sources.redhat.com/pub/newlib/$NEWLIB || exit

# Dann bauen wir die MMIX-Tools.

# Dummerweise ist das TAR-Archiv etwas ungeschickt verpackt. Daher zuerst

# ein Verzeichnis anlegen und dort auspacken, sonst hat man den ganzen Klump

# in $MMIXHOME/src liegen.

echo "Unpacking MMIX ware..."

mkdir mmix-ware

cd mmix-ware

tar zxf ../$MMIX || exit

# Dann bauen und installieren wir alle notwendigen Werkzeuge und kopieren

# sie an die richtige Stelle:

# (CWEB muss dafuer installiert und im Pfad sein!)

echo "Building MMIX ware..."

$MAKE all || exit

cp mmixal mmix mmotype mmmix $MMIXHOME/bin

# Dann bauen wir die binutils und einen Cross-GCC:

# Man packe GCC und binutils aus und lege passende

# build-Verzeichnisse jeweils daneben:

cd $MMIXHOME/src

echo "Unpacking GCC..."

tar jxf $GCC || exit

echo "Unpacking binutils..."

tar zxf $BINUTILS || exit

mkdir build-gcc build-binutils

# Man konfiguriere, baue und installiere die binutils fuer mmix:

echo "Building binutils..."

cd build-binutils

../binutils-*/configure --target=mmix --prefix=$MMIXHOME --disable-nls || exit

$MAKE all install || exit

# Man tue das selbe fuer den gcc:

echo "Building binutils..."

cd ../build-gcc

../gcc-*/configure --target=mmix --prefix=$MMIXHOME --disable-nls --enable-languages=c,c++ || exit

$MAKE all-gcc install-gcc || exit

# Dann brauchen wir noch die newlib.

# Die packen wir aus, konfigurieren und bauen sie:

cd $MMIXHOME/src

echo "Unpacking newlib..."

tar zxf $NEWLIB || exit

mkdir build-newlib

echo "Building newlib..."

cd build-newlib

../newlib*/configure --target=mmix --prefix=$MMIXHOME || exit

$MAKE all install || exit

# Fertig.

echo ""

echo ""

echo "Ready."

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河