Attualmente cnet non gira in Windows o MacOS e il porting non è facile, in quanto il suo codice sorgente è specifico per i sistemi di tipo Unix.
L'installazione di cnet è ben descritta nel suo manuale. Lo scopo di questa pagina è quindi solo di fornire un rapido riferimento per l'installazione in un tipico sistema Linux a 32 bit e di fornire alcuni suggerimenti supplementari.
Dapprima verificare se la propria distribuzione di Linux fornisce già cnet in forma binaria pacchettizzata. Se è così l'installazione è banale. Altrimenti occorre seguire i seguenti passi per installare cnet in forma locale nel sistema:
# cd /usr/local/src # tar zxf /percorso_scaricamento/cnet-2.0.9.tgz # cd cnet-2.0.9
WEBDIR = /home/httpd/html/cnetIl percorso indica la directory che conterrà i file HTML della documentazione e deve essere visibile via web. Questo percorso varia a seconda della distribuzione di Linux (ad es. potrebbe essere piuttosto /home/www/htdocs/cnet, oppure /var/www/html, ecc.) Consultare la documentazione del proprio server web o chiedere al responsabile del sito web in caso di dubbi.
Le altre variabili contenute nel file Makefile dovrebbero avere già dei valori accettabili.
XLIBS = -ltcl -ltk -lX11contiene le opzioni sulla riga di comando che indicano al linker di cercare queste librerie durante la fase di collegamento per la generazione dell'eseguibile finale. La ricerca avviene in directory di sistema standard dedicate a contenere file di libreria.
Dato che in molti sistemi esistono diverse versioni delle librerie Tcl/Tk, potrebbe essere necessario specificare correttamente quale versione utilizzare, ad esempio cambiando questa riga in:
XLIBS = -ltcl8.4 -ltk8.4 -lX11
Sempre in Makefile.linux la riga:
CFLAGS = -O -Wall -fPIC $(INCLUDES) $(XINCLUDES)contiene alcune opzioni per il compilatore C. Le opzioni di default vanno sicuramente bene. Tuttavia per avere un simulatore più veloce potreste voler aumentare il livello di ottimizzazione del codice oggetto durante la compilazione:
CFLAGS = -O2 -march=i686 -pipe -Wall -fPIC $(INCLUDES) $(XINCLUDES)Qui ho usato il livello 2 che produce un programma più veloce rispetto al livello 1, ma senza occupare più memoria durante l'esecuzione; la generazione di miglior codice oggetto naturalmente si paga con un maggior tempo di compilazione, ma questo è un prezzo da pagare una sola volta e comunque con un programma di piccole dimensioni come cnet la differenza non è significativa. Inoltre ho richiesto la generazione di codice ottimizzato per una cpu di tipo i686 (pentiumpro) e lo sfruttamento dell'intero set di istruzioni di macchina messo a disposizione da questa CPU. Naturalmente questo ha lo svantaggio di rendere l'eseguibile non retrocompatibile sui sistemi inferiori (i386, i486, i586). Infine ho richiesto l'uso delle pipe per la comunicazione tra i processi che si occupano dei vari passi della compilazione. Rispetto all'uso dei file temporanei è più efficiente, anche se richiede maggiore memoria centrale.
# make
# make install
# make web
# make clean
# mkdir -p /usr/local/share/examples/cnet # install -m 644 EXAMPLES/* /usr/local/share/examples/cnetIn questo modo gli utenti di cnet possono copiare gli esempi da questa directory nella loro propria home directory e poi compilarli ed eseguirli, anche dopo una eventuale modifica.
# cnet Usage: cnet [options] {TOPOLOGY | -r nnodes} options are: ...