67 lines
1.5 KiB
Makefile
67 lines
1.5 KiB
Makefile
BIN = manigraph
|
|
|
|
OBJ = \
|
|
src/surface.o \
|
|
src/context.o \
|
|
src/texture.o \
|
|
src/window.o \
|
|
src/matrix.o \
|
|
src/shader.o \
|
|
src/input.o \
|
|
src/mesh.o \
|
|
src/main.o
|
|
|
|
CFLAGS = \
|
|
-I./ext/cglm/include \
|
|
-I./ext/glfw/include \
|
|
-Wall -Wno-unused-function -std=c99 \
|
|
|
|
help:
|
|
@echo "Para compilar el proyecto a tu sistema operativo"
|
|
@echo "porfavor usa uno de los siguientes comandos:"
|
|
@echo " $(MAKE) windows"
|
|
@echo " $(MAKE) linux-x11"
|
|
@echo " $(MAKE) linux-wayland"
|
|
@echo " $(MAKE) cocoa"
|
|
@echo "Para limpiar los archivos compilados se puede usar"
|
|
@echo " $(MAKE) clean"
|
|
@echo "Para ejecturar el programa sin instalarlos se puede usar:"
|
|
@echo " $(MAKE) run-linux"
|
|
|
|
# WINDOWS
|
|
windows: $(OBJ) glfw.dll
|
|
$(CC) $(CFLAGS) $(OBJ) -o $(BIN) -L. -lglfw -lopengl32 -lglew32
|
|
|
|
glfw.dll:
|
|
$(CC) -fPIC -shared -D_GLFW_WIN32 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o $@ -lgdi32
|
|
|
|
src/main.o: src/data/shaders.h src/data/cube.h src/data/axis.h
|
|
|
|
# LINUX
|
|
linux-x11: $(OBJ)
|
|
$(MAKE) BKN=_GLFW_X11 libglfw.so
|
|
$(CC) -o $(BIN) $(OBJ) -L. -lGLEW -lGL -lglfw -lm
|
|
|
|
linux-wayland: $(OBJ)
|
|
$(MAKE) BKN=_GLFW_WAYLAND libglfw.so
|
|
$(CC) -o $(BIN) $(OBJ) -L. -lGLEW -lGL -lglfw -lm
|
|
|
|
run-linux:
|
|
LD_LIBRARY_PATH=. ./$(BIN)
|
|
|
|
# COCOA
|
|
cocoa: $(OBJ)
|
|
$(MAKE) BKN=_GLFW_COCOA libglfw.so
|
|
$(CC) -framework OpenGL -o $(BIN) $(OBJ) -L. -lGLEW -lGL -lglfw
|
|
|
|
libglfw.so:
|
|
$(CC) -fPIC -shared -D$(BKN) -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o $@
|
|
|
|
clean:
|
|
rm $(OBJ) $(BIN)
|
|
|
|
.SUFFIXES: .c .o
|
|
|
|
.c.o:
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|