From fb2cbe20db6b60ace6b50492652ad4a04a8a4231 Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Wed, 30 Oct 2024 22:38:23 -0600 Subject: [PATCH] glew -> glad & libglfw.so -> libglfw.a --- Makefile | 57 ++++++++++++------------------------------ ext/glfw.mk | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 ext/glfw.mk diff --git a/Makefile b/Makefile index 86ced9c..672fbd1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ BIN = manigraph OBJ = \ + ext/glad/glad.o \ src/surface.o \ src/context.o \ src/texture.o \ @@ -14,18 +15,8 @@ OBJ = \ CFLAGS = \ -I./ext/cglm/include \ -I./ext/glfw/include \ - -Wall -Wno-unused-function -std=c99 -D_POSIX_C_SOURCE \ - -WAYLAND-LIB = \ - xdg-shell \ - relative-pointer-unstable-v1 \ - xdg-decoration-unstable-v1 \ - pointer-constraints-unstable-v1 \ - viewporter \ - idle-inhibit-unstable-v1 \ - fractional-scale-v1 \ - xdg-activation-v1 \ - wayland + -I./ext/glad \ + -Wall -Wno-unused-function -std=c99 -D_GNU_SOURCE \ help: @echo "Para compilar el proyecto a tu sistema operativo" @@ -36,47 +27,31 @@ help: @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" src/main.o: src/data/axis.h src/data/shaders.h -# WINDOWS -windows: $(OBJ) glfw.dll - $(CC) $(CFLAGS) $(OBJ) -o $(BIN) -L. -lglfw -lopengl32 -lglew32 +windows: $(OBJ) + cd ext; $(MAKE) -f glfw.mk windows; cd - + $(CC) $(CFLAGS) $(OBJ) -o $(BIN) -L. -lglfw -lopengl32 -glfw.dll: - $(CC) -fPIC -shared -D_GLFW_WIN32 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o $@ -lgdi32 - -# LINUX linux-wayland: $(OBJ) - for i in $(WAYLAND-LIB); \ - do \ - wayland-scanner client-header ext/glfw/deps/wayland/$$i.xml ext/glfw/deps/wayland/$$i-client-protocol.h; \ - wayland-scanner private-code ext/glfw/deps/wayland/$$i.xml ext/glfw/deps/wayland/$$i-client-protocol-code.h; \ - done - $(MAKE) DFLAGS="-D_GLFW_WAYLAND" libglfw.so - $(CC) -o $(BIN) $(OBJ) -L. -lGLEW -lGL -lglfw -lm + cd ext; $(MAKE) -f glfw.mk linux-wayland; cd - + $(CC) -o $(BIN) $(OBJ) ext/libglfw.a -lGL -lm linux-x11: $(OBJ) - $(MAKE) DFLAGS="-D_GLFW_X11" libglfw.so - $(CC) -o $(BIN) $(OBJ) -L. -lGLEW -lGL -lglfw -lm + cd ext; $(MAKE) -f glfw.mk linux-x11; cd - + $(CC) -o $(BIN) $(OBJ) ext/libglfw.a -lGL -lm -run-linux: - LD_LIBRARY_PATH=. ./$(BIN) - -# COCOA cocoa: $(OBJ) - $(MAKE) DFLAGS="-D_GLFW_COCOA" libglfw.so - $(CC) -framework OpenGL -o $(BIN) $(OBJ) -L. -lGLEW -lGL -lglfw - -libglfw.so: - $(CC) -fPIC -shared $(DFLAGS) -D_GLFW_BUILD_DLL -Iext/glfw/deps/wayland ./ext/glfw/src/*.c -o $@ + cd ext; $(MAKE) -f glfw.mk cocoa; cd - + $(CC) -framework OpenGL -o $(BIN) $(OBJ) ext/glfw.a -lGL -lglfw clean: - rm $(OBJ) $(BIN) ext/glfw/deps/wayland/*.h + rm $(OBJ) $(BIN) + cd ext; $(MAKE) -f glfw.mk clean; cd - + .SUFFIXES: .c .o -.c.o: src/main.h +.c.o: $(CC) $(CFLAGS) -c -o $@ $< diff --git a/ext/glfw.mk b/ext/glfw.mk new file mode 100644 index 0000000..3d03183 --- /dev/null +++ b/ext/glfw.mk @@ -0,0 +1,71 @@ +BIN = libglfw.a +OBJ = \ + glfw/src/context.o \ + glfw/src/egl_context.o \ + glfw/src/glx_context.o \ + glfw/src/init.o \ + glfw/src/input.o \ + glfw/src/linux_joystick.o \ + glfw/src/monitor.o \ + glfw/src/null_init.o \ + glfw/src/null_joystick.o \ + glfw/src/null_monitor.o \ + glfw/src/null_window.o \ + glfw/src/osmesa_context.o \ + glfw/src/platform.o \ + glfw/src/posix_module.o \ + glfw/src/posix_poll.o \ + glfw/src/posix_thread.o \ + glfw/src/posix_time.o \ + glfw/src/vulkan.o \ + glfw/src/wgl_context.o \ + glfw/src/win32_init.o \ + glfw/src/win32_joystick.o \ + glfw/src/win32_module.o \ + glfw/src/win32_monitor.o \ + glfw/src/win32_thread.o \ + glfw/src/win32_time.o \ + glfw/src/win32_window.o \ + glfw/src/window.o \ + glfw/src/wl_init.o \ + glfw/src/wl_monitor.o \ + glfw/src/wl_window.o \ + glfw/src/x11_init.o \ + glfw/src/x11_monitor.o \ + glfw/src/x11_window.o \ + glfw/src/xkb_unicode.o + +WAYLAND-LIB = \ + xdg-shell \ + relative-pointer-unstable-v1 \ + xdg-decoration-unstable-v1 \ + pointer-constraints-unstable-v1 \ + viewporter \ + idle-inhibit-unstable-v1 \ + fractional-scale-v1 \ + xdg-activation-v1 \ + wayland + +windows: + $(MAKE) $(OBJ) CFLAGS="-D_GLFW_WIN32 -Iglfw/deps/wayland" + $(AR) rsc $(BIN) $(OBJ) + +linux-x11: + $(MAKE) $(OBJ) CFLAGS="-D_GLFW_X11 -Iglfw/deps/wayland" + $(AR) rsc $(BIN) $(OBJ) + + +linux-wayland: + for i in $(WAYLAND-LIB); \ + do \ + wayland-scanner client-header glfw/deps/wayland/$$i.xml glfw/deps/wayland/$$i-client-protocol.h; \ + wayland-scanner private-code glfw/deps/wayland/$$i.xml glfw/deps/wayland/$$i-client-protocol-code.h; \ + done + $(MAKE) $(OBJ) CFLAGS="-D_GLFW_WAYLAND -fPIC -Iglfw/deps/wayland" + $(AR) rsc $(BIN) $(OBJ) + + + +clean: + rm $(OBJ) $(BIN) + rm glfw/deps/wayland/*.h