
Ultimo aggiornamento 7.4.98

----------------------------------------------------------------------------

Cosa fare quando si inizia a sviluppare una nuova libreria

1. Creare o modificare il (i) file #?Lib.c con le funzioni di libreria
2. Aggiornare il file #?_lib.fd (o #?_cl.fd)
3. Creare o modificare il (i) file #?Class.c con il codice della classe
4. Modificare il file smakefile in modo da rispecchiare i nomi dei file

Il punto 3 è opzionale (serve solo se si sta scrivendo una classe)

----------------------------------------------------------------------------

Note sui moduli che compongono il progetto

librarybase.h:   Modificare solo se occorre cambiare qualcosa nella
                 base della libreria

LibStart.c:      Non dovrebbe essere mai modificato

smakefile:       Modificare per ultimo in base ai vari file sorgenti

#?Class.c:       Modificare (o creare) se la libreria implementa una classe
                 e occorre cambiare qualcosa in essa

#?Lib.c:         Modificare se occorre aggiungere, togliere o cambiare
                 funzioni di libreria

#?_lib.fd:       Modificare in modo da rispecchiare le caratteristiche
#?_cl.fd:        correnti delle varie funzioni di libreria

UserLib.c:       Dovrebbe essere modificato solo se necessario (ad esempio
                 per aggiungere operazioni da eseguire all'apertura e alla
                 chiusura della libreria)

#?_protos.h      Tenere aggiornato con i prototipi delle funzioni pubbliche
                 della libreria (è destinato all'utente/sviluppatore finale:
                 i prototipi NON devono contenere riferimenti a registri!)

----------------------------------------------------------------------------

Note sui programmi di supporto usati in smakefile

ExtendPragmas
-------------

  Genera, a partire da un file include contenente dichiarazioni #pragma, un
  nuovo file in cui ogni #pragma libcall relativo ad una funzione il cui nome
  termina con 'A' è seguito da un #pragma tagcall per la stessa funzione.
  Usato insieme a FD2Pragma è utile per automatizzare la creazione dei
  file di #pragma per la libreria.

  Sintassi: ExtendPragmas <infile> <outfile>

FDToList
--------

  Genera, a partire da un file .fd, un file di testo contenente una lista di
  tutti i nomi delle funzioni della libreria.
  Ogni nome è su una riga separata ed è seguito da una virgola.
  Il file prodotto verrà incluso all'interno di LibStart.c per completare la
  tabella con i puntatori alle funzioni della libreria.

  Sintassi: FDToList <nome file .fd> <nome file di output> <prefisso>

  Il parametro <prefisso> è opzionale, se specificato FDToList aggiungerà la
  stringa indicata in testa ad ogni nome di funzione nel file di output con
  la lista dei nomi.

FilterProtos
------------

  Genera, a partire da un sorgente contenente una serie di prototipi di
  funzioni, un nuovo file che contiene solo i prototipi di quelle funzioni
  il cui nome inizia con il prefisso specificato.
  Il file verrà incluso all'interno di LibStart.c per fare un corretto
  riferimento alle funzioni di libreria definite nell'apposito modulo.

  Sintassi: FilterProtos <infile> <outfile> <prefisso> <nome>

  Il parametro <prefisso> è obbligatorio, mentre <nome> è opzionale: se
  specificato FilterProtos aggiungerà all'inizio del file di output un
  commento del tipo:

  /* Prototypes for functions defined in <nome> */
