Static linking

Check changes in README.md
This commit is contained in:
var
2026-05-08 07:11:40 -05:00
parent 13bec80438
commit 3f4a2eec82
5 changed files with 8085 additions and 15 deletions

View File

@@ -1,13 +1,13 @@
INC = include
OBJ = obj
SRC = src
EXE = Game
REL = Release
INC := include
LIB := lib
OBJ := obj
SRC := src
EXE := Game
REL := Release
CC = gcc
CFLAGS = -w -ggdb -I$(INC)
LIBS = -lGLEW -lGLU -lGL -lSDL2 -lcglm -lz -lm
RELFLAGS = -O3 -s
CC := gcc
CFLAGS := -w -I$(INC) -L$(LIB)/SDL2 -L$(LIB)/glew -DGLEW_STATIC -L$(LIB)/cglm
LIBS := -Wl,-Bstatic -lSDL2 -lGLEW -lcglm -Wl,-Bdynamic -lGLU -lGL -lm
OBJFILES := $(patsubst $(SRC)/%.c, $(OBJ)/%.o, $(shell find $(SRC) -name '*.c'))
OBJDIRS := $(patsubst $(SRC)%, $(OBJ)%, $(shell find $(SRC) -type d))
@@ -18,21 +18,33 @@ CLEANDIRS := $(addsuffix /.clean, $(OBJDIRS));
.DEFAULT_GOAL := all
# Build executable
all: CFLAGS += -ggdb -O0
all: $(EXE)
$(EXE): $(OBJFILES) | $(OBJDIRS)
$(EXE): $(OBJFILES) | $(OBJDIRS) $(INC) $(LIB)
$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
# Compile object files
$(OBJ)/%.o: $(SRC)/%.c | $(OBJDIRS)
$(OBJ)/%.o: $(SRC)/%.c | $(OBJDIRS) $(INC) $(LIB)
$(CC) -c -o $@ $(SRC)/$*.c $(CFLAGS)
# Create obj directory tree if it doesn't exist
# Create directory tree
$(OBJDIRS):
mkdir -p $@
$(INC):
mkdir -p $@
ln -rs ../SDL2/include $(INC)/SDL2
ln -rs ../glew/include/GL $(INC)/GL
ln -rs ../cglm/include/cglm $(INC)/cglm
$(LIB):
mkdir -p $@
ln -rs ../SDL2/build/.libs $(LIB)/SDL2
ln -rs ../glew/lib $(LIB)/glew
ln -rs ../cglm/.libs $(LIB)/cglm
release: CFLAGS += -O3 -s
release: $(REL)
$(REL): $(OBJFILES) | $(OBJDIRS)
$(CC) -o $@ $^ $(CFLAGS) $(LIBS) $(RELFLAGS)
$(REL): $(OBJFILES) | $(OBJDIRS) $(INC) $(LIB)
$(CC) -o $@ $^ $(CFLAGS) $(LIBS)
# Delete previously built files
clean: $(CLEANDIRS)