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