81 lines
1.6 KiB
Makefile
81 lines
1.6 KiB
Makefile
BIN = manigraph
|
|
|
|
OBJ = \
|
|
ext/glad/glad.o \
|
|
src/context.o \
|
|
src/window.o \
|
|
src/shader.o \
|
|
src/klein.o \
|
|
src/input.o \
|
|
src/load.o \
|
|
src/mesh.o \
|
|
src/main.o
|
|
|
|
EXAMPLES = \
|
|
example/basic \
|
|
example/riemman \
|
|
example/n-cube \
|
|
example/n-hilbert-cube \
|
|
example/light-cone \
|
|
example/lens
|
|
|
|
CFLAGS = \
|
|
-I./ext/cglm/include \
|
|
-I./ext/glfw/include \
|
|
-I./ext/glad \
|
|
-I./include \
|
|
-Wall -Wno-unused-function -std=c99 -D_GNU_SOURCE \
|
|
|
|
help:
|
|
@echo "Usage:"
|
|
@echo " $(MAKE) windows"
|
|
@echo " $(MAKE) linux-x11"
|
|
@echo " $(MAKE) linux-wayland"
|
|
@echo " $(MAKE) cocoa"
|
|
@echo " $(MAKE) CC=emcc wasm"
|
|
@echo "Examples"
|
|
@echo " $(MAKE) examples"
|
|
@echo "Clean"
|
|
@echo " $(MAKE) clean"
|
|
|
|
src/main.o: src/data/shaders.h
|
|
|
|
windows: $(OBJ)
|
|
#cd ext; $(MAKE) -f glfw.mk windows; cd -
|
|
$(CC) $(CFLAGS) $(OBJ) -o $(BIN) -L. -lglfw -lopengl32 -lgdi32
|
|
|
|
glfw.dll:
|
|
$(CC) -fPIC -shared -D_GLFW_WIN32 -D_GLFW_BUILD_DLL ./ext/glfw/src/*.c -o $@ -lgdi32
|
|
|
|
# LINUX
|
|
linux-wayland: $(OBJ)
|
|
cd ext; $(MAKE) -f glfw.mk linux-wayland; cd -
|
|
$(CC) -o $(BIN) $(OBJ) ext/libglfw.a -lm
|
|
|
|
linux-x11: $(OBJ)
|
|
cd ext; $(MAKE) -f glfw.mk linux-x11; cd -
|
|
$(CC) -o $(BIN) $(OBJ) ext/libglfw.a -lm
|
|
|
|
cocoa: $(OBJ)
|
|
cd ext; $(MAKE) -f glfw.mk cocoa; cd -
|
|
$(CC) -framework OpenGL -o $(BIN) $(OBJ) ext/glfw.a -lGL -lglfw
|
|
|
|
wasm: $(OBJ)
|
|
$(CC) -sUSE_WEBGL2=1 -sUSE_GLFW=3 -o $(BIN).html $(OBJ)
|
|
chmod -x $(BIN).wasm
|
|
|
|
clean:
|
|
rm $(OBJ) $(BIN) $(EXAMPLES)
|
|
cd ext; $(MAKE) -f glfw.mk clean; cd -
|
|
|
|
|
|
examples: $(EXAMPLES)
|
|
|
|
.SUFFIXES: .c .o
|
|
|
|
.c.o:
|
|
$(CC) -Wno-implicit-function-declaration $(CFLAGS) -c -o $@ $<
|
|
|
|
.c:
|
|
$(CC) -I include -o $@ $< -lm
|