Le dossier de projet
Pour pouvoir ranger correctement ses codes sources, pour les modifier ou les corriger, on va utiliser des répertoires.
On va essayer de réaliser la génération de code pour le SAS/C et gcc, en utilisant les mêmes fichiers sources.
Tous les fichiers objets spécifiques (et incompatibles) seront rangés dans des répertoires distincts, comme ceci:
test | | test.c | |_ sas | | makefile | |_ obj | |_ bin | |_ gcc | | makefile | |_ obj | |_ bin
L'automate de compilation
Pour pouvoir compiler, on va décrire comment obtenir le fichier exécutable à partir d'un makefile.
gcc a sa propre syntaxe pour les makefile, mais la manière du SAS/C semble donner le même résultat.
La seule grosse différence est que le make du gcc a besoin d'une tabulation et pas d'un espace sous chaque étiquette.
Le makefile ressemblera à cela:
SRC=.. OBJ=obj BIN=bin target: $(BIN)/test $(OBJ)/test.o: $(SRC)/test.c gcc -c -noixemul -o $(OBJ)/test.o $(SRC)/test.c $(BIN)/test: $(OBJ)/test.o gcc -o $(BIN)/test $(OBJ)/test.o strip $(BIN)/test clean: delete $(BIN)/test delete $(OBJ)/#?.omake
Pour le SAS/C, le makefile ressemblera à cela:
SRC= OBJ=obj BIN=bin CFLAGS= nostackcheck opt optpeep optgo target: $(BIN)/test $(OBJ)/test.o: $(SRC)/test.c sc $(CFLAGS) OBJNAME $(OBJ)/test.o $(SRC)/test.c $(BIN)/test: $(OBJ)/test.o slink lib:c.o,$(OBJ)/test.o\ to $(BIN)/test\ lib lib:sc.lib,lib:amiga.lib\ noicons