add timestamps to commands
This commit is contained in:
parent
8f9317f751
commit
d914f2ea62
2 changed files with 40 additions and 25 deletions
63
Makefile
63
Makefile
|
|
@ -25,6 +25,20 @@
|
||||||
|
|
||||||
export PATH := $(PATH):/usr/bin:/bin
|
export PATH := $(PATH):/usr/bin:/bin
|
||||||
|
|
||||||
|
# -- Colors -------------------------------------------------------------------
|
||||||
|
|
||||||
|
GREEN := \033[1;38;2;184;187;38m
|
||||||
|
YELLOW := \033[1;38;2;250;189;47m
|
||||||
|
RED := \033[1;38;2;251;73;52m
|
||||||
|
CYAN := \033[1;38;2;131;165;152m
|
||||||
|
NC := \033[0m
|
||||||
|
|
||||||
|
INFO = @printf '$(GREEN)[%s INFO]$(NC) %s\n' "$$(date +%H:%M:%S)"
|
||||||
|
WARN = @printf '$(YELLOW)[%s WARN]$(NC) %s\n' "$$(date +%H:%M:%S)"
|
||||||
|
ERROR = @printf '$(RED)[%s ERROR]$(NC) %s\n' "$$(date +%H:%M:%S)"
|
||||||
|
CC_ = @printf '$(CYAN)[%s CC]$(NC) %s\n' "$$(date +%H:%M:%S)"
|
||||||
|
SHD_ = @printf '$(CYAN)[%s SHADER]$(NC) %s\n' "$$(date +%H:%M:%S)"
|
||||||
|
|
||||||
# -- Platform detection -------------------------------------------------------
|
# -- Platform detection -------------------------------------------------------
|
||||||
|
|
||||||
UNAME := $(shell uname)
|
UNAME := $(shell uname)
|
||||||
|
|
@ -83,6 +97,7 @@ endif
|
||||||
|
|
||||||
ifeq ($(PLATFORM),windows)
|
ifeq ($(PLATFORM),windows)
|
||||||
LIBS = -lws2_32
|
LIBS = -lws2_32
|
||||||
|
LDFLAGS += -Wl,/SUBSYSTEM:CONSOLE
|
||||||
PXL8_DEF = $(BUILDDIR)/pxl8.def
|
PXL8_DEF = $(BUILDDIR)/pxl8.def
|
||||||
EXE_EXT = .exe
|
EXE_EXT = .exe
|
||||||
else ifeq ($(UNAME),Darwin)
|
else ifeq ($(UNAME),Darwin)
|
||||||
|
|
@ -252,31 +267,31 @@ DEPS_OK = lib/luajit/src/luajit.c lib/miniz/miniz.c lib/fennel/fennel.lua $(LINE
|
||||||
deps: $(DEPS_OK)
|
deps: $(DEPS_OK)
|
||||||
|
|
||||||
lib/luajit/src/luajit.c:
|
lib/luajit/src/luajit.c:
|
||||||
@echo "[INFO] Fetching LuaJIT"
|
$(INFO) "Fetching LuaJIT"
|
||||||
@rm -rf lib/luajit
|
@rm -rf lib/luajit
|
||||||
@git clone --quiet --branch v2.1 https://github.com/LuaJIT/LuaJIT.git lib/luajit
|
@git clone --quiet --branch v2.1 https://github.com/LuaJIT/LuaJIT.git lib/luajit
|
||||||
|
|
||||||
lib/linenoise/linenoise.c:
|
lib/linenoise/linenoise.c:
|
||||||
@mkdir -p lib/linenoise
|
@mkdir -p lib/linenoise
|
||||||
@echo "[INFO] Fetching linenoise"
|
$(INFO) "Fetching linenoise"
|
||||||
@curl -sL -o lib/linenoise/linenoise.c https://raw.githubusercontent.com/antirez/linenoise/master/linenoise.c
|
@curl -sL -o lib/linenoise/linenoise.c https://raw.githubusercontent.com/antirez/linenoise/master/linenoise.c
|
||||||
@curl -sL -o lib/linenoise/linenoise.h https://raw.githubusercontent.com/antirez/linenoise/master/linenoise.h
|
@curl -sL -o lib/linenoise/linenoise.h https://raw.githubusercontent.com/antirez/linenoise/master/linenoise.h
|
||||||
|
|
||||||
lib/linenoise-win32/linenoise.c:
|
lib/linenoise-win32/linenoise.c:
|
||||||
@echo "[INFO] Fetching linenoise-win32"
|
$(INFO) "Fetching linenoise-win32"
|
||||||
@rm -rf lib/linenoise-win32
|
@rm -rf lib/linenoise-win32
|
||||||
@git clone --quiet --depth 1 https://github.com/msteveb/linenoise.git lib/linenoise-win32
|
@git clone --quiet --depth 1 https://github.com/msteveb/linenoise.git lib/linenoise-win32
|
||||||
|
|
||||||
lib/miniz/miniz.c:
|
lib/miniz/miniz.c:
|
||||||
@mkdir -p lib/miniz
|
@mkdir -p lib/miniz
|
||||||
@echo "[INFO] Fetching miniz"
|
$(INFO) "Fetching miniz"
|
||||||
@curl -sL -o /tmp/miniz.zip "https://github.com/richgel999/miniz/releases/download/3.1.0/miniz-3.1.0.zip"
|
@curl -sL -o /tmp/miniz.zip "https://github.com/richgel999/miniz/releases/download/3.1.0/miniz-3.1.0.zip"
|
||||||
@unzip -qjo /tmp/miniz.zip miniz.c miniz.h -d lib/miniz/
|
@unzip -qjo /tmp/miniz.zip miniz.c miniz.h -d lib/miniz/
|
||||||
@rm -f /tmp/miniz.zip
|
@rm -f /tmp/miniz.zip
|
||||||
|
|
||||||
lib/fennel/fennel.lua:
|
lib/fennel/fennel.lua:
|
||||||
@mkdir -p lib/fennel
|
@mkdir -p lib/fennel
|
||||||
@echo "[INFO] Fetching Fennel"
|
$(INFO) "Fetching Fennel"
|
||||||
@curl -sL -o lib/fennel/fennel.lua "https://fennel-lang.org/downloads/fennel-1.6.1.lua"
|
@curl -sL -o lib/fennel/fennel.lua "https://fennel-lang.org/downloads/fennel-1.6.1.lua"
|
||||||
|
|
||||||
update:
|
update:
|
||||||
|
|
@ -285,23 +300,23 @@ update:
|
||||||
$(MAKE) deps
|
$(MAKE) deps
|
||||||
|
|
||||||
vendor-sdl:
|
vendor-sdl:
|
||||||
@echo "[INFO] Fetching SDL3"
|
$(INFO) "Fetching SDL3"
|
||||||
@if [ -d lib/SDL/.git ]; then cd lib/SDL && git pull --quiet origin main; \
|
@if [ -d lib/SDL/.git ]; then cd lib/SDL && git pull --quiet origin main; \
|
||||||
else rm -rf lib/SDL && git clone --quiet https://github.com/libsdl-org/SDL.git lib/SDL; fi
|
else rm -rf lib/SDL && git clone --quiet https://github.com/libsdl-org/SDL.git lib/SDL; fi
|
||||||
@echo "[INFO] Building SDL3"
|
$(INFO) "Building SDL3"
|
||||||
@mkdir -p lib/SDL/build && cd lib/SDL/build && \
|
@mkdir -p lib/SDL/build && cd lib/SDL/build && \
|
||||||
cmake .. -DCMAKE_BUILD_TYPE=Release && \
|
cmake .. -DCMAKE_BUILD_TYPE=Release && \
|
||||||
cmake --build . --config Release --parallel $(NPROC)
|
cmake --build . --config Release --parallel $(NPROC)
|
||||||
@echo "[INFO] Built SDL3"
|
$(INFO) "Built SDL3"
|
||||||
|
|
||||||
# -- LuaJIT build ------------------------------------------------------------
|
# -- LuaJIT build ------------------------------------------------------------
|
||||||
|
|
||||||
luajit: $(LUAJIT_LIB)
|
luajit: $(LUAJIT_LIB)
|
||||||
|
|
||||||
$(LUAJIT_LIB): lib/luajit/src/luajit.c
|
$(LUAJIT_LIB): lib/luajit/src/luajit.c
|
||||||
@echo "[INFO] Building LuaJIT"
|
$(INFO) "Building LuaJIT"
|
||||||
@$(LUAJIT_BUILD)
|
@$(LUAJIT_BUILD)
|
||||||
@echo "[INFO] Built LuaJIT"
|
$(INFO) "Built LuaJIT"
|
||||||
|
|
||||||
# -- Server (Rust) ------------------------------------------------------------
|
# -- Server (Rust) ------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -309,7 +324,7 @@ server: $(SERVER)
|
||||||
|
|
||||||
$(SERVER): $(wildcard pxl8d/src/*.rs pxl8d/Cargo.toml)
|
$(SERVER): $(wildcard pxl8d/src/*.rs pxl8d/Cargo.toml)
|
||||||
@mkdir -p $(BINDIR)
|
@mkdir -p $(BINDIR)
|
||||||
@echo "[INFO] Building pxl8d ($(MODE) mode)"
|
$(INFO) "Building pxl8d ($(MODE) mode)"
|
||||||
ifeq ($(MODE),release)
|
ifeq ($(MODE),release)
|
||||||
@cd pxl8d && PATH="$$(echo $$PATH | tr ':' '\n' | grep -v '/usr/bin' | tr '\n' ':')" cargo build --release --quiet
|
@cd pxl8d && PATH="$$(echo $$PATH | tr ':' '\n' | grep -v '/usr/bin' | tr '\n' ':')" cargo build --release --quiet
|
||||||
@cp pxl8d/target/release/pxl8d$(EXE_EXT) $(SERVER)
|
@cp pxl8d/target/release/pxl8d$(EXE_EXT) $(SERVER)
|
||||||
|
|
@ -317,7 +332,7 @@ else
|
||||||
@cd pxl8d && PATH="$$(echo $$PATH | tr ':' '\n' | grep -v '/usr/bin' | tr '\n' ':')" cargo build --quiet
|
@cd pxl8d && PATH="$$(echo $$PATH | tr ':' '\n' | grep -v '/usr/bin' | tr '\n' ':')" cargo build --quiet
|
||||||
@cp pxl8d/target/debug/pxl8d$(EXE_EXT) $(SERVER)
|
@cp pxl8d/target/debug/pxl8d$(EXE_EXT) $(SERVER)
|
||||||
endif
|
endif
|
||||||
@echo "[INFO] Built pxl8d"
|
$(INFO) "Built pxl8d"
|
||||||
|
|
||||||
# -- Client (C23) -------------------------------------------------------------
|
# -- Client (C23) -------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -325,7 +340,7 @@ client: deps $(CLIENT)
|
||||||
|
|
||||||
$(CLIENT): $(ALL_OBJS) $(SHADER_OBJS) $(LUAJIT_LIB)
|
$(CLIENT): $(ALL_OBJS) $(SHADER_OBJS) $(LUAJIT_LIB)
|
||||||
@mkdir -p $(BINDIR)
|
@mkdir -p $(BINDIR)
|
||||||
@echo "[INFO] Linking pxl8"
|
$(INFO) "Linking pxl8"
|
||||||
ifeq ($(PLATFORM),windows)
|
ifeq ($(PLATFORM),windows)
|
||||||
@(echo EXPORTS && llvm-nm --defined-only $(ALL_OBJS) $(SHADER_OBJS) | grep ' T pxl8_\| T SDL' | awk '{print $$3}') > $(PXL8_DEF)
|
@(echo EXPORTS && llvm-nm --defined-only $(ALL_OBJS) $(SHADER_OBJS) | grep ' T pxl8_\| T SDL' | awk '{print $$3}') > $(PXL8_DEF)
|
||||||
@MSYS_NO_PATHCONV=1 $(CC) $(LDFLAGS) $(ALL_OBJS) $(SHADER_OBJS) $(LUAJIT_LIB) $(LIBS) -Wl,/DEF:$(PXL8_DEF) -o $@
|
@MSYS_NO_PATHCONV=1 $(CC) $(LDFLAGS) $(ALL_OBJS) $(SHADER_OBJS) $(LUAJIT_LIB) $(LIBS) -Wl,/DEF:$(PXL8_DEF) -o $@
|
||||||
|
|
@ -333,31 +348,31 @@ ifeq ($(PLATFORM),windows)
|
||||||
else
|
else
|
||||||
@$(CC) $(LDFLAGS) $(ALL_OBJS) $(SHADER_OBJS) $(LUAJIT_LIB) $(LIBS) -o $@
|
@$(CC) $(LDFLAGS) $(ALL_OBJS) $(SHADER_OBJS) $(LUAJIT_LIB) $(LIBS) -o $@
|
||||||
endif
|
endif
|
||||||
@echo "[INFO] Built pxl8 -> $@"
|
$(INFO) "Built pxl8 -> $@"
|
||||||
|
|
||||||
# -- Compile rules ------------------------------------------------------------
|
# -- Compile rules ------------------------------------------------------------
|
||||||
|
|
||||||
# Lib sources (dep flags, no warnings)
|
# Lib sources (dep flags, no warnings)
|
||||||
$(OBJDIR)/linenoise.o: $(LINENOISE_DIR)/linenoise.c | $(OBJDIR)
|
$(OBJDIR)/linenoise.o: $(LINENOISE_DIR)/linenoise.c | $(OBJDIR)
|
||||||
@echo "[CC] $<"
|
$(CC_) "$<"
|
||||||
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
||||||
|
|
||||||
$(OBJDIR)/stringbuf.o: $(LINENOISE_DIR)/stringbuf.c | $(OBJDIR)
|
$(OBJDIR)/stringbuf.o: $(LINENOISE_DIR)/stringbuf.c | $(OBJDIR)
|
||||||
@echo "[CC] $<"
|
$(CC_) "$<"
|
||||||
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
||||||
|
|
||||||
$(OBJDIR)/utf8.o: $(LINENOISE_DIR)/utf8.c | $(OBJDIR)
|
$(OBJDIR)/utf8.o: $(LINENOISE_DIR)/utf8.c | $(OBJDIR)
|
||||||
@echo "[CC] $<"
|
$(CC_) "$<"
|
||||||
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
||||||
|
|
||||||
$(OBJDIR)/miniz.o: lib/miniz/miniz.c | $(OBJDIR)
|
$(OBJDIR)/miniz.o: lib/miniz/miniz.c | $(OBJDIR)
|
||||||
@echo "[CC] $<"
|
$(CC_) "$<"
|
||||||
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
@$(CC) -c $(DEP_CFLAGS) $(INCLUDES) $< -o $@
|
||||||
|
|
||||||
# Pattern rules for pxl8 sources by directory
|
# Pattern rules for pxl8 sources by directory
|
||||||
define PXL8_COMPILE_RULE
|
define PXL8_COMPILE_RULE
|
||||||
$(OBJDIR)/%.o: $(1)/%.c | $(OBJDIR)
|
$(OBJDIR)/%.o: $(1)/%.c | $(OBJDIR)
|
||||||
@echo "[CC] $$<"
|
@printf '$(CYAN)[%s CC]$(NC) %s\n' "$$$$(date +%H:%M:%S)" "$$<"
|
||||||
@$$(CC) -c $$(CFLAGS) $$(INCLUDES) $$< -o $$@
|
@$$(CC) -c $$(CFLAGS) $$(INCLUDES) $$< -o $$@
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
@ -369,7 +384,7 @@ $(OBJDIR)/pxl8_script.o: $(LUA_SRCS)
|
||||||
|
|
||||||
# Shader objects
|
# Shader objects
|
||||||
$(SHADERDIR)/obj/%.o: src/gfx/shaders/cpu/%.c | $(SHADERDIR)/obj
|
$(SHADERDIR)/obj/%.o: src/gfx/shaders/cpu/%.c | $(SHADERDIR)/obj
|
||||||
@echo "[SHADER] $<"
|
$(SHD_) "$<"
|
||||||
@$(CC) -c -O2 $(SHADER_INCLUDES) $< -o $@
|
@$(CC) -c -O2 $(SHADER_INCLUDES) $< -o $@
|
||||||
|
|
||||||
# -- Directory creation -------------------------------------------------------
|
# -- Directory creation -------------------------------------------------------
|
||||||
|
|
@ -414,7 +429,7 @@ install:
|
||||||
@mkdir -p $(HOME)/.local/bin
|
@mkdir -p $(HOME)/.local/bin
|
||||||
@cp bin/release/pxl8$(EXE_EXT) $(HOME)/.local/bin/pxl8$(EXE_EXT)
|
@cp bin/release/pxl8$(EXE_EXT) $(HOME)/.local/bin/pxl8$(EXE_EXT)
|
||||||
@chmod +x $(HOME)/.local/bin/pxl8$(EXE_EXT)
|
@chmod +x $(HOME)/.local/bin/pxl8$(EXE_EXT)
|
||||||
@echo "[INFO] Installed pxl8 to $(HOME)/.local/bin/pxl8$(EXE_EXT)"
|
$(INFO) "Installed pxl8 to $(HOME)/.local/bin/pxl8$(EXE_EXT)"
|
||||||
|
|
||||||
# -- Aseprite tools -----------------------------------------------------------
|
# -- Aseprite tools -----------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -424,8 +439,8 @@ ase:
|
||||||
# -- Profile (Linux) ----------------------------------------------------------
|
# -- Profile (Linux) ----------------------------------------------------------
|
||||||
|
|
||||||
profile: client
|
profile: client
|
||||||
@if [ "$$(uname)" != "Linux" ]; then echo "[ERROR] Profiling requires Linux + perf"; exit 1; fi
|
@if [ "$$(uname)" != "Linux" ]; then printf '$(RED)[ERROR]$(NC) %s\n' "Profiling requires Linux + perf"; exit 1; fi
|
||||||
@if ! command -v perf >/dev/null 2>&1; then echo "[ERROR] perf not found"; exit 1; fi
|
@if ! command -v perf >/dev/null 2>&1; then printf '$(RED)[ERROR]$(NC) %s\n' "perf not found"; exit 1; fi
|
||||||
@if [ ! -d lib/FlameGraph ]; then \
|
@if [ ! -d lib/FlameGraph ]; then \
|
||||||
echo "[INFO] Fetching FlameGraph"; \
|
echo "[INFO] Fetching FlameGraph"; \
|
||||||
git clone --quiet https://github.com/brendangregg/FlameGraph.git lib/FlameGraph; \
|
git clone --quiet https://github.com/brendangregg/FlameGraph.git lib/FlameGraph; \
|
||||||
|
|
@ -482,7 +497,7 @@ help:
|
||||||
# -- compile_commands.json ----------------------------------------------------
|
# -- compile_commands.json ----------------------------------------------------
|
||||||
|
|
||||||
compile_commands.json: $(LIB_SRCS) $(PXL8_SRCS)
|
compile_commands.json: $(LIB_SRCS) $(PXL8_SRCS)
|
||||||
@echo "[INFO] Generating compile_commands.json"
|
$(INFO) "Generating compile_commands.json"
|
||||||
@echo '[' > $@.tmp
|
@echo '[' > $@.tmp
|
||||||
@first=true; \
|
@first=true; \
|
||||||
for f in $(LIB_SRCS); do \
|
for f in $(LIB_SRCS); do \
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
make # Build pxl8 system
|
make # Build pxl8 system
|
||||||
make install # Install pxl8 binary to ~/.local/bin
|
make install # Install pxl8 binary to ~/.local/bin
|
||||||
make run # Run pxl8 demo
|
make run # Run pxl8 demo
|
||||||
make run CART="game.cart --repl" # Run a specific game with a REPL
|
make run CART="game.cart --repl" # Run a specific game with a REPL
|
||||||
```
|
```
|
||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue