Version initiale du logiciel. Développement commencé le 06/01/2026, en reprenant certaines parties/idées de miniDart, que j'ai écrit quelques années plus tôt
Cette révision appartient à :
125
Makefile
Fichier normal
125
Makefile
Fichier normal
@@ -0,0 +1,125 @@
|
||||
# Makefile pour illustrer la notion de surcharge d'opérateur en c++
|
||||
# incluant une nouvelle façon de créer un binaire exécutable
|
||||
# + une nouvelle façon de sécuriser ce binaire.
|
||||
|
||||
# Auteur : Eric Bachard
|
||||
# Ce document est sous Licence GPL v2 23 Septembre 2024
|
||||
# voir : http://www.gnu.org/licenses/gpl-2.0.html
|
||||
|
||||
UNAME_S = `uname -s`
|
||||
BUILD_DIR = build
|
||||
INCLUDE_DIR = inc
|
||||
APPLICATION_NAME = Modulations_Numeriques
|
||||
BINARY_NAME = ${BUILD_DIR}/${APPLICATION_NAME}
|
||||
|
||||
# please adapt the value to the gcc version
|
||||
# available on your machine
|
||||
#G++_VERSION = ...
|
||||
|
||||
CXX = g++${G++_VERSION}
|
||||
|
||||
SOURCES_DIR = src
|
||||
DEBUG_EXT = _debug
|
||||
CXX_STD=-std=c++20
|
||||
|
||||
INC_BACKEND = ${INCLUDE_DIR}/backend
|
||||
INC_FRONTEND = ${INCLUDE_DIR}/frontend
|
||||
LOCALIZATION_INC = localization
|
||||
|
||||
CXX_FLAGS += -I ${INCLUDE_DIR} -I ${LOCALIZATION_INC} -I ${INC_BACKEND} -I ${INC_FRONTEND} -I ${SOURCES_DIR}/gl3w/
|
||||
|
||||
CXX_FLAGS += -Wall -ansi -pedantic ${CXX_STD}
|
||||
|
||||
CXX_FLAGS += `pkg-config --cflags --libs sdl3`
|
||||
|
||||
LDD_CXX_FLAGS += `pkg-config --libs sdl3`
|
||||
|
||||
CXX_FLAGS_DEBUG = -g -DDEBUG -Wall -Wformat
|
||||
|
||||
|
||||
LIBS += -lm -lGL -dl ${LDD_CXX_FLAGS}
|
||||
|
||||
include secu.mk
|
||||
|
||||
# à modifier en fonction de vos besoins !!
|
||||
SRC_BACKEND = ${SOURCES_DIR}/backend
|
||||
SRC_FRONTEND = ${SOURCES_DIR}/frontend
|
||||
|
||||
SOURCES = \
|
||||
${SOURCES_DIR}/gl_helpers.cxx \
|
||||
${SOURCES_DIR}/modulations.cxx \
|
||||
${SOURCES_DIR}/imgui_utils.cxx \
|
||||
${SOURCES_DIR}/application.cxx \
|
||||
${SOURCES_DIR}/engine.cxx \
|
||||
${SOURCES_DIR}/main.cxx
|
||||
|
||||
SOURCES += \
|
||||
${SRC_FRONTEND}/imgui.cxx \
|
||||
${SRC_FRONTEND}/imgui_themes.cxx \
|
||||
${SRC_FRONTEND}/imgui_demo.cxx \
|
||||
${SRC_FRONTEND}/imgui_draw.cxx \
|
||||
${SRC_FRONTEND}/imgui_tables.cxx \
|
||||
${SRC_FRONTEND}/imgui_widgets.cxx
|
||||
|
||||
SOURCES += \
|
||||
${SRC_BACKEND}/imgui_impl_sdl3.cxx \
|
||||
${SRC_BACKEND}/imgui_impl_opengl3.cxx
|
||||
|
||||
|
||||
# todo : embed the DroidSans font
|
||||
# ${SOURCES_DIR}/${SRC_FRONTEND}/droidsans.cxx
|
||||
|
||||
|
||||
# works but looks buggy (only the first item of the list contains the right prefix)
|
||||
# that's the reason why the rule is slightly modified in the final collect
|
||||
OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
|
||||
D_OBJS = $(addsuffix .do, $(basename $(notdir $(SOURCES))))
|
||||
|
||||
##---------------------------------------------------------------------
|
||||
## BUILD RULES
|
||||
##---------------------------------------------------------------------
|
||||
|
||||
#%.o:${SOURCES_DIR}/%.cxx
|
||||
# $(CXX) $(CXX_STD) ${EXTRA_CXX_FLAGS} ${CXX_FLAGS} -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
#%.do:${SOURCES_DIR}/%.cxx
|
||||
# $(CXX) $(CXX_STD) ${CXX_FLAGS} ${CXX_FLAGS_DEBUG} ${EXTRA_CXX_FLAGS} ${CXX_FLAGS} ${CXX_FLAGS_DEBUG} -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.o:${SOURCES_DIR}/%.cxx
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${EXTRA_CXX_FLAGS} $(CXXFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.o:${SRC_BACKEND}/%.cxx
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${EXTRA_CXX_FLAGS} $(CXXFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.o:${SRC_FRONTEND}/%.cxx
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${EXTRA_CXX_FLAGS} $(CXXFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.do:${SOURCES_DIR}/%.cxx
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${CXX_FLAGS_DEBUG} ${EXTRA_CXX_FLAGS} $(CXXFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.do:${SRC_BACKEND}/%.cxx
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${CXX_FLAGS_DEBUG} ${EXTRA_CXX_FLAGS} $(CXXFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.do:${SRC_FRONTEND}/%.cxx
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${CXX_FLAGS_DEBUG} ${EXTRA_CXX_FLAGS} $(CXXFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
%.do:${SOURCES_DIR}/gl3w/GL/%.c
|
||||
$(CC) $(CFLAGS) -c -o ${BUILD_DIR}/$@ $<
|
||||
|
||||
all: ${BINARY_NAME} ${BINARY_NAME}${DEBUG_EXT}
|
||||
@echo Build complete for ${UNAME_S}
|
||||
|
||||
${BINARY_NAME}: ${OBJS}
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${EXTRA_CXX_FLAGS} -DNDEBUG -o $@ ${BUILD_DIR}/*.o ${LIBS}
|
||||
strip $@
|
||||
rm -f ${BUILD_DIR}/*.o
|
||||
|
||||
${BINARY_NAME}_debug: ${D_OBJS}
|
||||
$(CXX) $(CXX_STD) ${CXX_FLAGS} ${CXX_FLAGS_DEBUG} ${EXTRA_CXX_FLAGS} -o $@ ${BUILD_DIR}/*.do ${LIBS}
|
||||
rm -f ${BUILD_DIR}/*.do
|
||||
|
||||
clean:
|
||||
echo Effacement de : ${BINARY_NAME}*
|
||||
rm -f ${BINARY_NAME}* ${BUILD_DIR}/*.o ${BUILD_DIR}/*.do
|
||||
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur