APPNAME = hardcompound SRCDIR = src BUILDDIR = build VENDORDIR = vendor target = linux ifeq ($(target), windows) CC = x86_64-w64-mingw32-gcc CXX = x86_64-w64-mingw32-g++ EXT = .exe CFLAGS = -Wall -o2 -I$(SRCDIR) -I$(VENDORDIR)/mariadb/include -I$(VENDORDIR)/duckdb/include -I$(VENDORDIR)/glad/include -I$(VENDORDIR)/glfw/include LIBS = -L$(VENDORDIR)/mariadb/lib -llibmariadb -L$(VENDORDIR)/duckdb/lib -lduckdb -L$(VENDORDIR)/glfw/lib -lglfw3 -lgdi32 -lopengl32 -lws2_32 -lshlwapi -lcrypt32 -lsecur32 else CC = gcc CXX = g++ EXT = CFLAGS = -Wall -O2 -I$(SRCDIR) `pkg-config --cflags libmariadb` -I$(VENDORDIR)/glad/include -I$(VENDORDIR)/cimgui/linux/include -I$(VENDORDIR)/cimplot/linux/include LIBS = `pkg-config --libs libmariadb` -lduckdb -lglfw -ldl -lm -L$(VENDORDIR)/cimgui/linux/lib -lcimgui -Wl,-rpath,$(VENDORDIR)/cimgui/linux/lib -L$(VENDORDIR)/cimplot/linux/lib -lcimplot -Wl,-rpath,$(VENDORDIR)/cimplot/linux/lib endif SRC = $(shell find $(SRCDIR) -name "*.c") #SRC += $(VENDORDIR)/glad/src/glad.c OBJ = $(SRC:$(SRCDIR)/%.c=$(BUILDDIR)/%.o) OBJ += $(BUILDDIR)/glad.o all: $(BUILDDIR)/$(APPNAME)$(EXT) $(BUILDDIR)/$(APPNAME)$(EXT): $(OBJ) @echo "Linking $@" @mkdir -p $(dir $@) $(CC) $(OBJ) -o $@ $(LIBS) $(BUILDDIR)/%.o: $(SRCDIR)/%.c @echo "Compiling $<" @mkdir -p $(dir $@) $(CC) $(CFLAGS) -c $< -o $@ $(BUILDDIR)/glad.o: $(VENDORDIR)/glad/src/glad.c @echo "Compiling GLAD $<" @mkdir -p $(dir $@) $(CC) $(CFLAGS) -c $< -o $@ clean: rm -rf $(BUILDDIR) run: all ./$(BUILDDIR)/$(APPNAME)$(EXT) .PHONY: all clean run