updated makefile for supporting different target architectures

use "ARCH=arch_name make"

restructured project folder, implementations and headers together under sources/
This commit is contained in:
beno
2026-03-16 00:10:52 +01:00
parent 6c125fb35e
commit bbede61723
73 changed files with 786 additions and 379 deletions

View File

@@ -1,25 +1,21 @@
include external.mk
TARGET=Main.exe
include ${ARCH}_BUILD/variables.mk
OBJECTS=Main.o
TARGET=${BD}main.exe
GL_STUFF_D=${PWD}GL_STUFF/
OBJECTS=${BD}main.o
GOU=${GL_STUFF_D}OBJECTS/UTILS/
GOS=${GL_STUFF_D}OBJECTS/SCENE/
GOE=${GL_STUFF_D}OBJECTS/EFFECTS/
GOC=${GL_STUFF_D}OBJECTS/CURVES/
BG=${BD}GL_STUFF/
GL_STUFF_COMPATIBILITY_OBJECT=${GL_STUFF_D}GLES_3_1_compatibility.o
GL_STUFF_UTILS_OBJECTS=${GOU}ClockIterator.o ${GOU}OnlyOnce.o ${GOU}ResourceCache.o ${GOU}ShaderMaker.o
GL_STUFF_SCENE_OBJECTS=${GOS}Camera.o ${GOS}Instance3D.o ${GOS}InstancesLoader.o ${GOS}Model3D.o ${GOS}ObjectInstance.o ${GOS}objloader.o ${GOS}ShadingHelper.o
GL_STUFF_COMPATIBILITY_OBJECT=${BG}GLES_3_1_compatibility.o
GL_STUFF_UTILS_OBJECTS=${BG}UTILS/ClockIterator.o ${BG}UTILS/OnlyOnce.o ${BG}UTILS/ResourceCache.o ${BG}UTILS/ShaderMaker.o
GL_STUFF_SCENE_OBJECTS=${BG}SCENE/Camera.o ${BG}SCENE/Instance3D.o ${BG}SCENE/InstancesLoader.o ${BG}SCENE/Model3D.o ${BG}SCENE/ObjectInstance.o ${BG}SCENE/objloader.o ${BG}SCENE/ShadingHelper.o
# THE PLATFORM SUPPORTS UP TO GLES2 AND COMPUTE SHADERS COME WITH GLES3.1
# REMOVED
# ${O}${_E}CRT_shader.o
GL_STUFF_EFFECTS_OBJECTS=${GOE}PseudoContext.o ${GOE}ReelManager.o ${GOE}Scene.o ${GOE}Screen.o ${GOE}TexMerger.o
GL_STUFF_CURVES_OBJECTS=${GOC}Bezier.o ${GOC}Curve.o ${GOC}CurveIterator.o ${GOC}CurvesLoader.o ${GOC}Hermite.o ${GOC}NURBS.o
GL_STUFF_EFFECTS_OBJECTS=${BG}EFFECTS/PseudoContext.o ${BG}EFFECTS/ReelManager.o ${BG}EFFECTS/Scene.o ${BG}EFFECTS/Screen.o ${BG}EFFECTS/TexMerger.o
GL_STUFF_CURVES_OBJECTS=${BG}CURVES/Bezier.o ${BG}CURVES/Curve.o ${BG}CURVES/CurveIterator.o ${BG}CURVES/CurvesLoader.o ${BG}CURVES/Hermite.o ${BG}CURVES/NURBS.o
GL_STUFF_OBJECTS=${GL_STUFF_UTILS_OBJECTS} ${GL_STUFF_SCENE_OBJECTS} \
${GL_STUFF_EFFECTS_OBJECTS} ${GL_STUFF_CURVES_OBJECTS} \
@@ -28,37 +24,40 @@ GL_STUFF_OBJECTS=${GL_STUFF_UTILS_OBJECTS} ${GL_STUFF_SCENE_OBJECTS} \
FULL_BUILD_OBJECTS=${GL_STUFF_OBJECTS} ${OBJECTS}
LINKS=-lmyGLUT -lGLESv2 -lEGL -lm -lstdc++ -lc
LINKS=-lmyGLUT -lGLESv2 -lEGL -lm -lstdc++ -lc
# same as the GL_STUFF MAKEFILE
CFLAGS=-ansi -Wpedantic -Winline -Werror -std=c++11
all :
make -C ${GL_STUFF_D}
make -C sources/GL_STUFF/
make ${TARGET}
# ADD
# -Wl,--verbose \
# TO SEE LINKER ATTEMPTS AT RETRIEVING LIBRARIES
${TARGET} : ${OBJECTS}
${CPP_COMPILER} \
-o ${TARGET} \
-Wl,-unresolved-symbols=ignore-in-shared-libs \
${FULL_BUILD_OBJECTS} \
-L${GLUT_D} \
${L_SHLIBS} \
-L${GLUT_L_D} \
-L${EGL_LIBRARIES} \
-fno-exceptions \
${LINKS}
# -I ./ è una porcata clamorosa
Main.o : Main.cpp ${GLUT_D}glut.h ./GL_STUFF/GLES_3_1_compatibility.h
${BD}main.o : ${SD}main.cpp ${GLUT_I_D}glut.h ${SD}GL_STUFF/GLES_3_1_compatibility.h
${CPP_COMPILER} \
${I_GRAPHICS} \
${I_EGL} \
${I_CGI_MATH} \
${I_MY_GLUT} \
-I ./ \
-c ${CFLAGS} Main.cpp \
-I ${SD} \
-o ${BD}main.o \
-c ${CFLAGS} ${SD}main.cpp \
${GLOBAL_COMPILE_CONF}
.PHONY: clean debug
clean:
make clean -C ${GL_STUFF_D}
-rm ${TARGET} ${OBJECTS} *~ core
-rm ${TARGET} ${FULL_BUILD_OBJECTS} *~ core