2025-12-28 18:17:59 +01:00
|
|
|
APPNAME = HardCompound
|
2025-12-17 12:19:31 +01:00
|
|
|
SRCDIR = src
|
|
|
|
|
BUILDDIR = build
|
|
|
|
|
VENDORDIR = vendor
|
|
|
|
|
|
|
|
|
|
target = linux
|
|
|
|
|
|
|
|
|
|
ifeq ($(target), windows)
|
|
|
|
|
CC = x86_64-w64-mingw32-gcc
|
|
|
|
|
EXT = .exe
|
|
|
|
|
|
2025-12-28 18:17:59 +01:00
|
|
|
CFLAGS = -Wall -o2 -I$(SRCDIR) -I$(VENDORDIR)/mariadb/include -I$(VENDORDIR)/duckdb/windows/include
|
|
|
|
|
LIBS = -L$(VENDORDIR)/mariadb/lib -llibmariadb -L$(VENDORDIR)/duckdb/windows/lib -lduckdb
|
2025-12-17 12:19:31 +01:00
|
|
|
else
|
|
|
|
|
CC = gcc
|
|
|
|
|
EXT =
|
2025-12-28 18:17:59 +01:00
|
|
|
CFLAGS = -Wall -O2 -I$(SRCDIR) `pkg-config --cflags libmariadb` -I$(VENDORDIR)/duckdb/linux/include
|
2025-12-28 21:32:05 +01:00
|
|
|
LIBS = `pkg-config --libs libmariadb` -L$(VENDORDIR)/duckdb/linux/lib -lduckdb
|
2025-12-17 12:19:31 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
SRC = $(shell find $(SRCDIR) -name "*.c")
|
|
|
|
|
OBJ = $(SRC:$(SRCDIR)/%.c=$(BUILDDIR)/%.o)
|
|
|
|
|
|
|
|
|
|
all: $(BUILDDIR)/$(APPNAME)$(EXT)
|
|
|
|
|
|
|
|
|
|
$(BUILDDIR)/$(APPNAME)$(EXT): $(OBJ)
|
|
|
|
|
@echo "Linking $@"
|
|
|
|
|
@mkdir -p $(dir $@)
|
|
|
|
|
$(CC) $(OBJ) -o $@ $(LIBS)
|
2025-12-29 15:30:51 +01:00
|
|
|
@cp vendor/duckdb/windows/lib/duckdb.dll $(BUILDDIR)
|
2025-12-17 12:19:31 +01:00
|
|
|
|
|
|
|
|
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
|
|
|
|
|
@echo "Compiling $<"
|
|
|
|
|
@mkdir -p $(dir $@)
|
|
|
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
rm -rf $(BUILDDIR)
|
|
|
|
|
|
|
|
|
|
run: all
|
|
|
|
|
./$(BUILDDIR)/$(APPNAME)$(EXT)
|
|
|
|
|
|
|
|
|
|
.PHONY: all clean run
|