juegos

Juegos de terminal de Pancho: Catan (TUI, GUI, web, servidor, PicoCalc), ajedrez, calculadora y minijuegos
git clone https://git.lu3dhn.xyz/juegos.git
Log | Files | Refs

Makefile (2820B)


      1 CC      ?= cc
      2 CFLAGS  ?= -O2 -g
      3 CFLAGS  += -std=c99 -Wall -Wextra -Wshadow -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
      4 COMUN   ?= ../comun
      5 include $(COMUN)/comun.mk
      6 CPPFLAGS += -I. $(COMUN_INC)
      7 CORE    := $(wildcard core/*.c)
      8 GFX     := $(wildcard gfx/*.c)
      9 LINUX   := $(wildcard linux/*.c)
     10 NCURSES := $(shell pkg-config --libs ncursesw 2>/dev/null || echo -lncursesw)
     11 SDL     := $(shell pkg-config --cflags --libs sdl3 2>/dev/null)
     12 LDLIBS  += $(NCURSES) $(SDL) -lpthread -lm
     13 HDRS    := $(wildcard core/*.h gfx/*.h linux/*.h server/*.h) app_config.h $(COMUN_HDRS)
     14 
     15 SERVER  := server/chess_game.c
     16 CLIENT_SRC := $(CORE) $(GFX) $(LINUX) $(SERVER) $(COMUN_BASE) $(COMUN_GFX) $(COMUN_LINUX) $(COMUN_TUI) $(COMUN_GUI) $(COMUN_SERVER)
     17 SERVER_SRC := $(CORE) $(SERVER) server/main.c $(COMUN_BASE) $(COMUN_SERVER)
     18 
     19 SIM_SRC    := $(CORE) $(GFX) pico/app.c $(COMUN_BASE) $(COMUN_GFX) $(COMUN_SIM)
     20 
     21 all: ajedrez ajedrez-server ajedrez-picosim
     22 
     23 ajedrez: $(CLIENT_SRC) $(HDRS)
     24 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $(CLIENT_SRC) $(LDLIBS)
     25 
     26 # servidor: solo nucleo + server, sin ncurses ni SDL (estatico para copiar al VPS)
     27 ajedrez-server: $(SERVER_SRC) $(HDRS)
     28 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $(SERVER_SRC) -lm
     29 
     30 ajedrez-server-static: $(SERVER_SRC) $(HDRS)
     31 	$(CC) $(CPPFLAGS) $(CFLAGS) -static -o ajedrez-server $(SERVER_SRC) -lm
     32 
     33 # simulador de la PicoCalc en la PC (mismo codigo que el firmware, con SDL)
     34 ajedrez-picosim: $(SIM_SRC) $(HDRS)
     35 	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $(SIM_SRC) $(SDL)
     36 
     37 # firmware para la PicoCalc (necesita arm-none-eabi-gcc y PICO_SDK_PATH)
     38 pico:
     39 	cmake -S pico -B pico/build -DPICO_SDK_PATH=$${PICO_SDK_PATH:-$$HOME/pico-sdk} -DCOMUN_DIR=$(abspath $(COMUN)) && $(MAKE) -C pico/build -j4
     40 	@mkdir -p sd/pico1-apps sd/firmware
     41 	cp pico/build/ajedrez_picocalc.uf2 sd/pico1-apps/Ajedrez.uf2
     42 	cp pico/build/ajedrez_picocalc_sd200k.bin sd/firmware/Ajedrez.bin
     43 	python3 $(COMUN_TOOLS)/patch_reset.py pico/build/ajedrez_picocalc_sd200k.elf sd/firmware/Ajedrez.bin
     44 	@test -f sd/AJEDREZ.LOG || head -c 262144 /dev/zero | tr '\0' ' ' > sd/AJEDREZ.LOG
     45 	@test -f sd/AJEDREZ.SAV || head -c 81920 /dev/zero > sd/AJEDREZ.SAV
     46 	@echo "Listo: copiá el contenido de sd/ a la raíz de la tarjeta SD de la PicoCalc"
     47 	@echo "AJEDREZ.LOG y AJEDREZ.SAV van solo la primera vez: si los pisás, perdés el log y la partida guardada"
     48 
     49 core/book_data.c: tools/mkbook.py ../ajedrez/lib/openings.tsv
     50 	python3 tools/mkbook.py ../ajedrez/lib/openings.tsv > $@
     51 
     52 core/puzzles_data.c: tools/mkpuzzles.py puzzles.tsv
     53 	python3 tools/mkpuzzles.py puzzles.tsv > $@
     54 
     55 debug:
     56 	$(MAKE) -B ajedrez CFLAGS="-O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer"
     57 
     58 test: ajedrez
     59 	./ajedrez --selftest
     60 	./ajedrez --sim 100 1
     61 
     62 clean:
     63 	rm -f ajedrez ajedrez-server ajedrez-picosim
     64 	rm -rf pico/build
     65 
     66 .PHONY: all debug test clean pico ajedrez-server-static