ASIM team
LIP6 Laboratory Paris, France |
Après avoir créé un compte de login mpc, il faut décompresser et
désarchiver la distribution :
% gzip -dc emulateur-3.0.tar.gz | ( cd ~mpc/; tar xf - )
% cd ~mpc/mpc-3.0/
%
Les fonctions des différents répertoires et fichiers de la distribution sont indiquées sur la figure 3.1.
La distribution se conforme au standard de portabilité GNU : elle est construite à partir d'Autoconf et d'Automake.
Il faut donc lancer le script configure qui va générer les
différents Makefiles en fonction de l'environnement du système.
% ./configure
creating cache ./config.cache
checking whether make sets ${MAKE}... yes
checking for gcc... gcc
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking whether gcc needs -traditional... no
checking for a BSD compatible install... /usr/local/bin/install -c
checking whether ln -s works... yes
checking for ranlib... ranlib
checking for cat... /bin/cat
checking for ar... /usr/bin/ar
checking for makedepend... /usr/X11R6/bin/makedepend
checking for chmod... /bin/chmod
checking for modload... /sbin/modload
checking for modunload... /sbin/modunload
checking for modstat... /usr/bin/modstat
checking for mknod... /sbin/mknod
checking for rm... /bin/rm
checking for ls... /bin/ls
checking for id... /usr/bin/id
checking for test... /bin/test
checking for cut... /usr/bin/cut
checking for sed... /usr/bin/sed
checking for grep... /usr/bin/grep
checking for rpcgen... /usr/bin/rpcgen
checking whether cross-compiling... no
checking for ANSI C header files... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating src/Makefile
creating modules/Makefile
creating examples/Makefile
creating docs/Makefile
%
Il faut maintenant compiler les différentes sources :
% gmake
for subdir in src modules examples docs; do \
target=`echo all-recursive | sed s/-recursive//`; \
echo making $target in $subdir; \
(cd $subdir && gmake $target) \
|| case "" in *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$fail"
making all in src
gmake[1]: Entering directory `/tmp/mpc-3.0-Alpha/src'
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O useraccess.c
rm -f libuseraccess.a
ar cru libuseraccess.a useraccess.o
ranlib libuseraccess.a
/usr/bin/rpcgen -c rpctransport.x > rpctransport_xdr.h
/usr/bin/rpcgen rpctransport.x
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O hslclient.c
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O rpctransport_clnt.c
gcc -o hslclient hslclient.o rpctransport_clnt.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O hslserver.c
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O rpctransport_svc.c
gcc -o hslserver hslserver.o rpctransport_svc.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O malloc.c
gcc -o malloc malloc.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O virt2phys.c
gcc -o virt2phys virt2phys.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O readphys.c
gcc -o readphys readphys.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O writephys.c
gcc -o writephys writephys.o
gmake[1]: Leaving directory `/tmp/mpc-3.0-Alpha/src'
making all in modules
gmake[1]: Entering directory `/tmp/mpc-3.0-Alpha/modules'
gcc -c -DSTDC_HEADERS=1 -I. -DKERNEL -Wall -DDEBUG_HSL -DMODNAME=\"hsldriver\" -O driver.c
gcc -c -DSTDC_HEADERS=1 -I. -DKERNEL -Wall -DDEBUG_HSL -DMODNAME=\"hsldriver\" -O put.c
gcc -c -DSTDC_HEADERS=1 -I. -DKERNEL -Wall -DDEBUG_HSL -DMODNAME=\"hsldriver\" -O ddslrpp.c
gcc -c -DSTDC_HEADERS=1 -I. -DKERNEL -Wall -DDEBUG_HSL -DMODNAME=\"hsldriver\" -O ddslrpv.c
ld -r -o hsldriver driver.o put.o ddslrpp.o ddslrpv.o
gmake[1]: Leaving directory `/tmp/mpc-3.0-Alpha/modules'
making all in examples
gmake[1]: Entering directory `/tmp/mpc-3.0-Alpha/examples'
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O addlpe.c
gcc -o addlpe addlpe.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O receivelpe.c
gcc -o receivelpe receivelpe.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O testsend2.c
gcc -o testsend2 testsend2.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O testrecv2.c
gcc -o testrecv2 testrecv2.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O testsendv.c
gcc -o testsendv testsendv.o
gcc -c -DSTDC_HEADERS=1 -I. -I. -g -O testrecvv.c
gcc -o testrecvv testrecvv.o
gcc -o testuseraccess testuseraccess.o ../src/libuseraccess.a
gmake[1]: Leaving directory `/tmp/mpc-3.0-Alpha/examples'
making all in docs
gmake[1]: Entering directory `/tmp/mpc-3.0-Alpha/docs'
/bin/cat specif.c | /usr/bin/sed 's/\([{}]\)/@\1/g' > specif.c.texi
makeinfo -I. pcihsl.texi -o ./pcihsl.info
Making info file `./pcihsl.info' from `pcihsl.texi'.
gmake[1]: Leaving directory `/tmp/mpc-3.0-Alpha/docs'
%
Nous devons compiler modload, dont les sources se trouvent dans
le répertoire mpc/mpc-3.0/archive/modload, car la version
standard de FreeBSD ne suffit pas à l'utilisation qu'on veut en
faire. En effet, le module CMEMDRIVER, gestionnaire de mémoire
physique, a besoin de réserver de la RAM au moment de l'amorçage
d'Unix, alors que le répertoire /usr n'est pas encore
monté. Cela pose un problème à l'utilisation du modload livré
dans la distribution de FreeBSD : ce dernier utilise
/usr/bin/ld, qui n'est pas disponible à ce moment du boot. Le
modload de la distribution MPC appelle quant-à-lui
/etc/mpc/ld.
% cd archive/modload/
% make LDFLAGS=-static
cc -O -c modload.c
cc -O -static -o modload modload.o
%
Server design A. Fenyö
mpc@mpc.lip6.fr - contact people About this Web Site $Date: 1998/02/14 17:06:25 $ |
Copyright © 1997-1998 UPMC/LIP6
All rights reserved |