sovereign-ide / Makefile
SNAPKITTYWEST's picture
push from SNAPKITTYWEST/sovereign-ide
ffc07fb verified
Raw History Blame Contribute Delete
2.59 kB
#======================================================================
# SOVEREIGN-IDE β€” 16-Layer Fortran 2018 IDE
# Build: make all | wasm | debug | run | clean
#======================================================================
FC = gfortran
FFLAGS = -O3 -march=native -std=f2018 -fopenmp
FFLAGS_DEBUG = -g -O0 -Wall -Wextra -fcheck=all -fbacktrace -std=f2018
LDFLAGS = -fopenmp
BUILD_DIR = build
LIB_DIR = lib
OBJ_DIR = $(BUILD_DIR)/obj
LIB_NAME = libsovereign_ide
STATIC_LIB = $(LIB_DIR)/$(LIB_NAME).a
# ── Sources in strict dependency order (layer 0 first, layer 15 last) ──
SOURCES = \
layer-0-runtime/runtime.f90 \
layer-1-platform/platform.f90 \
layer-2-gui/gui.f90 \
layer-3-text-buffer/text_buffer.f90 \
layer-4-parser/parser.f90 \
layer-5-syntax/syntax.f90 \
layer-6-semantic/semantic.f90 \
layer-7-refactoring/refactoring.f90 \
layer-8-search/search.f90 \
layer-9-terminal/terminal.f90 \
layer-10-vcs/vcs.f90 \
layer-11-build/build_system.f90 \
layer-12-lsp/lsp_client.f90 \
layer-13-dap/dap_client.f90 \
layer-14-extensions/extension_host.f90 \
layer-15-shell/shell.f90
OBJECTS = $(patsubst %.f90,$(OBJ_DIR)/%.o,$(notdir $(SOURCES)))
.PHONY: all clean debug wasm run info
all: directories $(STATIC_LIB)
directories:
@mkdir -p $(OBJ_DIR) $(LIB_DIR)
$(STATIC_LIB): $(OBJECTS)
@echo "[AR] $@"
ar rcs $@ $^
# Pattern rule β€” compile any layer's .f90
$(OBJ_DIR)/%.o: layer-*/%.f90
@echo "[FC] $<"
$(FC) $(FFLAGS) -J$(OBJ_DIR) -c $< -o $@
# ── WASM target (requires wasm-pack + Rust bridge) ─────────────────────
wasm:
@echo "[WASM] sovereign-ide β†’ browser"
@echo "TODO: Rust bridge wrapping Fortran modules via C ABI"
# ── Debug build ────────────────────────────────────────────────────────
debug: FFLAGS = $(FFLAGS_DEBUG)
debug: clean all
# ── Run ────────────────────────────────────────────────────────────────
run: all
@echo "[RUN] Sovereign IDE"
@echo "TODO: link + execute shell module"
clean:
rm -rf $(BUILD_DIR) $(LIB_DIR)
info:
@echo "SOVEREIGN-IDE"
@echo "============="
@echo "Layers: 16"
@echo "Sources: $(words $(SOURCES))"
@echo "Target: $(STATIC_LIB)"
@echo ""
@echo "Targets: all wasm debug run clean info"