Import initial du projet shipheart_appli
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Choix du compilateur croisé (cible aarch64/CM5, exécuté depuis WSL2 x86_64) :
|
||||
CC=aarch64-linux-gnu-gcc
|
||||
|
||||
# Recherche pkg-config restreinte aux .pc arm64 uniquement (PKG_CONFIG_LIBDIR
|
||||
# écrase le chemin de recherche par défaut, pour ne jamais mélanger avec les
|
||||
# .pc x86_64 de l'hôte). mariadb_config est abandonné : ce script n'est pas
|
||||
# conscient du multiarch et renverrait les chemins x86_64 de l'hôte.
|
||||
PKGCONFIG = PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig pkg-config
|
||||
|
||||
# Options de compilation :
|
||||
# PRODUCTION :
|
||||
CFLAGS = -O3 -Wall $(shell $(PKGCONFIG) --cflags mariadb alsa libssl libcrypto json-c libgpiod)
|
||||
# DEBUG :
|
||||
#CFLAGS = -O3 -Wall $(shell $(PKGCONFIG) --cflags mariadb alsa libssl libcrypto json-c libgpiod) -gstabs
|
||||
# Possibilité d'utiliser aussi '-Wunused-variable' si besoin... Voire 'Wall' si on veut se faire mal...!
|
||||
|
||||
# Options de link pour accéder à MariaDB, Alsa, OpenSSL, json-c et GPIO :
|
||||
LIBS = $(shell $(PKGCONFIG) --libs mariadb alsa libssl libcrypto json-c libgpiod) -lm
|
||||
|
||||
# Localisation des répertoires :
|
||||
SRCDIR=../sources
|
||||
OBJDIR=../objets
|
||||
EXEDIR=../bin
|
||||
|
||||
# Nom de l'éxécutable généré :
|
||||
EXECUTABLE=shipheart_appli
|
||||
#------------------------------------------------------------------------------------------------------------
|
||||
# !!!!!!!!! .............................NE DOIT PAS ETRE MODIFIE EN DESSOUS.......................!!!!!!!!!!
|
||||
#------------------------------------------------------------------------------------------------------------
|
||||
SRC= $(wildcard $(SRCDIR)/*.c)
|
||||
DEPS= $(wildcard $(SRCDIR)/*.h)
|
||||
OBJ = $(subst $(SRCDIR),$(OBJDIR), $(patsubst %.c, %.o, $(SRC)) )
|
||||
# Règle de plus haut niveau :
|
||||
all: $(EXEDIR)/$(EXECUTABLE)
|
||||
# Linker (dépendance de l'exécutable vs les fichiers Objet) :
|
||||
$(EXEDIR)/$(EXECUTABLE): $(OBJ)
|
||||
$(CC) -o $@ $^ $(LIBS)
|
||||
# Compilateur (dépendance des fichiers Objet vs leur fichier Source et TOUS les Headers) :
|
||||
$(OBJDIR)/%.o: $(SRCDIR)/%.c $(DEPS)
|
||||
$(CC) -o $@ -c $< $(CFLAGS)
|
||||
# Cas particulier du fichier '_version.c' qui dépend, en plus, du fichier '_version.txt' :
|
||||
# cf fichier '_version.c' pour détails.
|
||||
$(OBJDIR)/_version.o: $(SRCDIR)/_version.c $(SRCDIR)/_version.txt
|
||||
$(CC) -o $(OBJDIR)/_version.o -c $(SRCDIR)/_version.c $(CFLAGS)
|
||||
# NB : Les focntions de type Clean ou Mrproper ne sont pas laissées car
|
||||
# on part du principe qu'on garde les fichiers objets dans le répertoire dédié...
|
||||
Reference in New Issue
Block a user