#Makefile pour chapitre -C++11- IFT1169

# Auteur: Mohamed Lokbani
# Date:
# 22 novembre 2025 1.01 ajout format et std=c++23e
# 18 octobre 2016 1.00 mise en place du makefile

# Pour exécuter ce fichier, il faudra lancer la commande:
# make
# cette commande va exécuter la première, ici "all".

# Si nous voulons exécuter une cible en particulier:
# make nom_de_la_cible
#

# variables automatiques
CXX = g++
CXXFLAGS = -Os -Wall -std=c++23
OPT = -pedantic
programmes = 01_nullptr 02_construct 03_narrow 04_enum 05_statasser 06_chrono 07_auto_01 07_auto_02 07_auto_03 08_rangeof 09_chevrons 10_decltype_01 10_decltype_02 11_listinit 12_array 13_lambda 14_variadique_01 14_variadique_02 14_variadique_03 15_format_01 15_format_02
SOURCES = ${programmes:=.cpp}
DDEF = FBOGUE

# erreur:

effacer = rm
extension =

ifeq ($(OS), Windows_NT)
$(info ************  Windows ************)
effacer = del
extension = .exe
endif


# cible globale
all: $(programmes) 16_print

# les autres cibles, sous le format:
# -lstdc++exp
# cible: dependance
# commandes

# Attention, tabulation nécessaire avant chaque commande

${programmes} : ${SOURCES}
	$(CXX) $(CXXFLAGS) $(OPT) -o $@  $@.cpp

16_print : 16_print.cpp
	$(CXX) $(CXXFLAGS) $(OPT) -o $@  16_print.cpp -lstdc++exp

05_statasser_bogus: 05_statasser.cpp
	$(CXX) $(CXXFLAGS) -D$(DDEF) $(OPT) -o $@  05_statasser.cpp


Total = $(addsuffix $(extension),$(programmes))

clean:
	$(effacer) $(Total)

