makefile and clang stuff

This commit is contained in:
2026-01-31 14:59:06 +01:00
parent 676eea1371
commit 2cc8c87413
3 changed files with 107 additions and 0 deletions

6
.clangd Normal file
View File

@@ -0,0 +1,6 @@
CompileFlags:
Add:
- -Isrc
- -Ivendor/duckdb/include
- -Ivendor/mariadb/include
- -std=c11

57
Makefile Normal file
View File

@@ -0,0 +1,57 @@
APPNAME = Coordinator
SRCDIR = src
BUILDDIR = build
VENDORDIR = vendor
target ?= linux
profile ?= debug
valgrind ?= false
ifeq ($(target), windows)
CC = x86_64-w64-mingw32-gcc
EXT = .exe
OPT_FLAGS = -O2 -DNDEBUG
POST_BUILD_CMD = @echo "Build complete."
else
CC = gcc
EXT =
POST_BUILD_CMD = @echo "Build complete."
# Profile Logic
ifeq ($(profile), release)
OPT_FLAGS = -O3 -DNDEBUG -march=native
else
OPT_FLAGS = -O0 -g -DDEBUG -Wall -Wextra
endif
endif
# Combine Flags
CFLAGS = -Wall $(OPT_FLAGS)
SRC = $(shell find $(SRCDIR) -name "*.c")
OBJ = $(SRC:$(SRCDIR)/%.c=$(BUILDDIR)/%.o)
all: $(BUILDDIR)/$(APPNAME)$(EXT)
$(BUILDDIR)/$(APPNAME)$(EXT): $(OBJ)
@echo "Linking $@ (Target: $(target), Profile: $(profile))"
@mkdir -p $(dir $@)
$(CC) $(OBJ) -o $@ $(LIBS)
$(POST_BUILD_CMD)
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
@echo "Compiling $<"
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
RUN_CMD = ./$(BUILDDIR)/$(APPNAME)$(EXT)
clean:
rm -rf $(BUILDDIR)
run: all
$(RUN_CMD) ./data/Circuit.duckdb
.PHONY: all clean run

44
compile_commands.json Normal file
View File

@@ -0,0 +1,44 @@
[
{
"arguments": [
"/usr/bin/gcc",
"-Wall",
"-O0",
"-g",
"-DDEBUG",
"-Wall",
"-Wextra",
"-Isrc",
"-I/usr/include/mysql/",
"-Ivendor/duckdb/linux/include",
"-c",
"-o",
"build/lapinfo.o",
"src/lapinfo.c"
],
"directory": "/home/tom/Dev/HardCompound",
"file": "/home/tom/Dev/HardCompound/src/lapinfo.c",
"output": "/home/tom/Dev/HardCompound/build/lapinfo.o"
},
{
"arguments": [
"/usr/bin/gcc",
"-Wall",
"-O0",
"-g",
"-DDEBUG",
"-Wall",
"-Wextra",
"-Isrc",
"-I/usr/include/mysql/",
"-Ivendor/duckdb/linux/include",
"-c",
"-o",
"build/main.o",
"src/main.c"
],
"directory": "/home/tom/Dev/HardCompound",
"file": "/home/tom/Dev/HardCompound/src/main.c",
"output": "/home/tom/Dev/HardCompound/build/main.o"
}
]