added the structure of the project with the makefile and the script

pull/1/head
Mathéo Hersan 1 year ago
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 @@
build.sh

@ -0,0 +1,6 @@
#include<stdio.h>
#include<stdlib.h>
int main(){
printf("Hello World\n");
}
Loading…
Cancel
Save