Le samedi 12 juillet 2025, Edgar a écrit :
> [...] Si le graphe de dépendances est correctement décrit, ça doit
> marcher en parallèle.
Bon, mes dépendances semblent ok, mais lorsque j'utilise l'option -j,
toutes les cibles ne sont pas générées.
Ici, en l'occurence, il crée bien les cibles 'menu', 'intro', et 'game',
mais pas la cible 'dsk', ni la cible 'run' ! C'est pourtant la cible (par
défaut) 'run' qui crée la cible 'dsk', qui à son tour crée les 3 autres...
Sans l'option -j, ça marche très bien.
Une idée du problème ?
--
Frédéric
# Makefile to build Fugitif 31th
BUILD_DIR = ../build
TOOLS_DIR = ../tools
FONT_DIR = $(TOOLS_DIR)/font
# SCREENS_DIR = ./screens
# SCREENS_SRC_DIR = ../screens
DSK_DIR = ../dsk
FONT_FILE = ./font_charset.asm
FONT_SRC_FILE = $(FONT_DIR)/fontNormalAsSprites.py
DATA_FILES = $(foreach i, $(shell seq -f "%02g" 1 21), $(BUILD_DIR)/gameplay_data_$(i).bin.zx0)
# SCREENS_FILES = $(foreach i, $(shell seq -f "%02g" 0 71), $(SCREENS_DIR)/$i.zx0)
STATE_FILE = $(BUILD_DIR)/state.bin
MENU_FILE = $(BUILD_DIR)/menu.bin
MENU_SRC_FILE = ./menu.asm
MENU_DEP_FILES =
INTRO_FILE = $(BUILD_DIR)/intro.bin
INTRO_SRC_FILE = ./intro.asm
INTRO_DEP_FILES =
GAME_FILE = $(BUILD_DIR)/game.bin
GAME_SRC_FILE = ./game.asm
GAME_DEP_FILES =
DSK_FILE = $(DSK_DIR)/Fugitif.dsk
ASM_CMD = sjasmplus
SIM_CMD = RetroVirtualMachine
ZX0_CMD = zx0
DSK_CMD = $(TOOLS_DIR)/sectorize.py
FONT_CMD = $(FONT_DIR)/fontNormalAsSprites2Charset.py
# DEBUG_SYM_PY = $(TOOLS_DIR)/debugSym.py
ASM_OPTS = --nofakes --syntax=b --outprefix=$(BUILD_DIR)/ --lst=$(BUILD_DIR)/$@.lst --sym=$(BUILD_DIR)/$@.sym #--sld=$(BUILD_DIR)/$@.sld
SIM_OPTS = -noshader
# Defines
L = $(shell echo $${LANG%_*})
LANGUAGE = -DLANG_$(shell echo $${LANG%_*} | tr [:lower:] [:upper:])
# TODO: handle LANG=C
ifdef DEVELOP
DEVELOP_ = -DDEVELOP # display develop stuffs (pointer coords...) implies FAST
endif
ifdef FAST
FAST_ = -DFAST # speed up messages output
endif
ifdef INTRO_ONLY
INTRO_ONLY_ = -DINTRO_ONLY # directly run intro
endif
ifdef GAME_ONLY
GAME_ONLY_ = -DGAME_ONLY # directly run game
endif
ifdef LOGGER
LOGGER_ = -DLOGGER=${LOGGER} # general logger level
else
LOGGER_ = -DLOGGER=error
endif
ifdef LOGGER_ENGINE
LOGGER_ENGINE_ = -DLOGGER_ENGINE=${LOGGER_ENGINE} # engine logger level
else
LOGGER_ENGINE_ = -DLOGGER_ENGINE=error
endif
DEFINES = $(LANGUAGE) $(DEVELOP_) $(FAST_) ${INTRO_ONLY_} ${GAME_ONLY_} $(LOGGER_) $(LOGGER_ENGINE_)
# Default target
.DEFAULT_GOAL := run
%.bin.zx0: %.bin
@echo "\n * Compressing '$<'...\n"
@rm -f $@
$(ZX0_CMD) $< $@
$(MENU_FILE): $(MENU_SRC_FILE) # TODO: $(MENU_DEP_FILES)
@echo "\n * 'Generating menu.bin'...\n"
$(ASM_CMD) $(ASM_OPTS) $(DEFINES) -DMENU $(MENU_SRC_FILE)
menu: $(MENU_FILE)
$(INTRO_FILE): $(INTRO_SRC_FILE) # TODO: $(INTRO_DEP_FILES)
@echo "\n *Generating 'intro.bin'...\n"
$(ASM_CMD) $(ASM_OPTS) $(DEFINES) -DINTRO $(INTRO_SRC_FILE)
intro: $(INTRO_FILE)
${FONT_FILE}: $(FONT_SRC_FILE)
@echo "\n * Generating 'font_charset.asm'...\n"
$(FONT_CMD) >$(FONT_FILE)
# $(FONT_CMD) | tee $(FONT_FILE) # debug
$(STATE_FILE): # TODO: add asm files
$(GAME_FILE): $(FONT_FILE) $(STATE_FILE) $(GAME_SRC_FILE) #TODO: $(GAME_DEP_FILES)
@echo "\n * Generating 'game.bin'...\n"
$(ASM_CMD) $(ASM_OPTS) $(DEFINES) -DGAME $(GAME_SRC_FILE)
# $(DEBUG_SYM_PY) $(BUILD_DIR)/game.sym
game: $(GAME_FILE)
${DSK_FILE}: $(MENU_FILE) $(INTRO_FILE) $(GAME_FILE) $(DATA_FILES) # TODO: $(SCREEN_FILES)
@echo "\n * Generating 'Fugitif.dsk'...\n"
${DSK_CMD}
dsk: ${DSK_FILE}
# $(SCREENS_DIR)%.zx0: $(SCREENS_SCR_DIR)/%.bin
# @echo "\n * Compressing '$<'...\n"
# @rm -f $@
# $(ZX0_CMD) $< $@
#
# screens: $(SCREENS_FILES)
run: run_${L}
run_en: ${DSK_FILE}
${SIM_CMD} -boot=cpc6128 ${SIM_OPTS} -insert ${DSK_FILE} -command='run"F\n'
run_fr: ${DSK_FILE}
${SIM_CMD} -boot=cpc6128@fr ${SIM_OPTS} -insert ${DSK_FILE} -command='run3F\n'
run_es: ${DSK_FILE}
${SIM_CMD} -boot=cpc6128@es ${SIM_OPTS} -insert ${DSK_FILE} -command='run"F\n'
cat: cat_${L}
cat_en: ${DSK_FILE}
${SIM_CMD} -boot=cpc6128 ${SIM_OPTS} -insert ${DSK_FILE} -command='cat\n'
cat_fr: ${DSK_FILE}
${SIM_CMD} -boot=cpc6128@fr ${SIM_OPTS} -insert ${DSK_FILE} -command='cqt\n'
cat_es: ${DSK_FILE}
${SIM_CMD} -boot=cpc6128@es ${SIM_OPTS} -insert ${DSK_FILE} -command='cat\n'
clean:
rm -rf $(BUILD_DIR)/*
.PHONY: default menu intro game dsk screens run run_en run_es run_es cat cat_en cat_fr cat_es clean