parent
b57d19617b
commit
a66ee86634
@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Fonction pour afficher l'aide
|
||||||
|
function afficher_aide {
|
||||||
|
echo "Utilisation : $0 [options]"
|
||||||
|
echo "Options :"
|
||||||
|
echo " -rbuild, -rb : Nettoyer avant de reconstruire et exécuter"
|
||||||
|
echo " -debug : Configurer la compilation en mode debug"
|
||||||
|
echo " -run : Exécuter l'exécutable généré"
|
||||||
|
echo " -clean : Nettoyer les fichiers générés"
|
||||||
|
echo " --help : Afficher l'aide"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configuration du répertoire de construction
|
||||||
|
BUILD_DIR="build"
|
||||||
|
|
||||||
|
# Vérification et création du répertoire de construction
|
||||||
|
if [ ! -d "$BUILD_DIR" ]; then
|
||||||
|
mkdir "$BUILD_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fonction pour nettoyer
|
||||||
|
function nettoyer {
|
||||||
|
echo "Nettoyage en cours..."
|
||||||
|
make clean
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour construire
|
||||||
|
function construire {
|
||||||
|
echo "Compilation en cours..."
|
||||||
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour exécuter
|
||||||
|
function executer {
|
||||||
|
echo "Exécution de l'exécutable..."
|
||||||
|
./build/CMAKE
|
||||||
|
}
|
||||||
|
|
||||||
|
# Vérification des arguments
|
||||||
|
if [ "$#" -eq 0 ]; then
|
||||||
|
echo "Erreur : Aucune option spécifiée. Utilisez --help pour afficher l'aide."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Traitement des arguments
|
||||||
|
while [ "$#" -gt 0 ]; do
|
||||||
|
case "$1" in
|
||||||
|
-rbuild | -rb)
|
||||||
|
nettoyer
|
||||||
|
construire
|
||||||
|
executer
|
||||||
|
;;
|
||||||
|
-debug)
|
||||||
|
echo "Configuration de la compilation en mode debug..."
|
||||||
|
make debug
|
||||||
|
;;
|
||||||
|
-run)
|
||||||
|
construire
|
||||||
|
executer
|
||||||
|
;;
|
||||||
|
-clean)
|
||||||
|
nettoyer
|
||||||
|
;;
|
||||||
|
--help)
|
||||||
|
afficher_aide
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Option non reconnue : $1. Utilisez --help pour afficher l'aide."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doc_doxygen/
|
||||||
|
INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/ @CMAKE_CURRENT_SOURCE_DIR@/docs/
|
@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
# Compiler
|
||||||
|
CC = gcc
|
||||||
|
|
||||||
|
# Options de compilation pour le release
|
||||||
|
CFLAGS_RELEASE = -O3
|
||||||
|
# Options de compilation pour le debug
|
||||||
|
CFLAGS_DEBUG = -g -Wall
|
||||||
|
|
||||||
|
# Dossiers source
|
||||||
|
SRC_DIR = src
|
||||||
|
# Dossiers pour les fichiers objets
|
||||||
|
OBJ_DIR = obj
|
||||||
|
|
||||||
|
# Fichiers source
|
||||||
|
SOURCES = $(wildcard $(SRC_DIR)/*.c)
|
||||||
|
|
||||||
|
# Fichiers objets
|
||||||
|
OBJECTS = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SOURCES))
|
||||||
|
|
||||||
|
# Nom de l'exécutable
|
||||||
|
EXECUTABLE = APP
|
||||||
|
|
||||||
|
# Répertoire de construction
|
||||||
|
BUILD_DIR = build
|
||||||
|
|
||||||
|
# Options pour l'exécutable
|
||||||
|
LDFLAGS =
|
||||||
|
|
||||||
|
# Commandes
|
||||||
|
|
||||||
|
all: build
|
||||||
|
|
||||||
|
build: $(BUILD_DIR)/$(EXECUTABLE)
|
||||||
|
|
||||||
|
$(BUILD_DIR)/$(EXECUTABLE): $(OBJECTS)
|
||||||
|
@echo "Début de la compilation"
|
||||||
|
@mkdir -p $(BUILD_DIR)
|
||||||
|
$(CC) $(LDFLAGS) -o $@ $^
|
||||||
|
|
||||||
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
||||||
|
@mkdir -p $(OBJ_DIR)
|
||||||
|
$(CC) -c $(CFLAGS_RELEASE) -o $@ $<
|
||||||
|
|
||||||
|
debug:
|
||||||
|
@echo "Configuration de la compilation en mode debug..."
|
||||||
|
$(MAKE) CFLAGS_RELEASE="$(CFLAGS_DEBUG)" build
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@echo "Nettoyage en cours..."
|
||||||
|
rm -rf $(OBJ_DIR) $(BUILD_DIR)
|
||||||
|
|
||||||
|
run: build
|
||||||
|
$<
|
||||||
|
|
||||||
|
doc_doxygen:
|
||||||
|
@echo "Doxygen build started"
|
||||||
|
@$(MAKE) -C docs
|
||||||
|
|
||||||
|
.PHONY: all build debug clean run doc_doxygen
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
#include<stdio.h>
|
||||||
|
#include<stdlib.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
printf("Hello World\n");
|
||||||
|
}
|
Loading…
Reference in new issue