47 lines
1.6 KiB
Makefile
47 lines
1.6 KiB
Makefile
ASSETS := \
|
|
player_sheets/player_idle_sheet.png \
|
|
player_sheets/player_walk_sheet.png \
|
|
player_sheets/player_run_sheet.png \
|
|
props_sheets/lever_sheet.png \
|
|
props_sheets/barred_door_sheet.png \
|
|
props_sheets/wooden_door_sheet.png \
|
|
tileset/tileset.png \
|
|
maps/dungeon_entry.map \
|
|
maps/dungeon_room_1.map
|
|
|
|
ASSETS := $(addprefix $(ASSETS_DIR)/,$(ASSETS))
|
|
|
|
ASSETS_OBJECTS = $(ASSETS:%=$(BUILD_DIR)/%.o)
|
|
|
|
|
|
ASSET_BUILDER_DIR = $(ASSETS_DIR)/asset_builder/src
|
|
ASSET_BUILDER_OUTPUT = $(BUILD_DIR)/$(ASSETS_DIR)/asset_builder/asset_builder
|
|
include $(ASSET_BUILDER_DIR)/Makefile
|
|
|
|
build_assets: setup_asset build_asset_builder count_assets_build asset_end
|
|
|
|
# Current file nb to process
|
|
CURRENT_ASSET_FILE := 0
|
|
|
|
# Count nb of files to build
|
|
count_assets_build:
|
|
$(eval export TOTAL_ASSETS_FILES := $(shell echo $$(($$(make -n $(ASSETS_OBJECTS) 2>/dev/null | grep -c "Building") + 1))))
|
|
|
|
setup_asset:
|
|
@echo "Building $(notdir $(ASSET_OUTPUT))"
|
|
$(Q)mkdir -p $(dir $(ASSETS_OBJECTS))
|
|
|
|
$(ASSET_OUTPUT): $(ASSETS_OBJECTS) $(ASSET_BUILDER_OUTPUT)
|
|
@echo -e "[100%] $(YELLOW)Building $(notdir $(ASSET_OUTPUT))$(RESET)"
|
|
$(Q)$(ASSET_BUILDER_OUTPUT) $@ $(ASSETS_OBJECTS)
|
|
|
|
# Build .o files
|
|
$(BUILD_DIR)/$(ASSETS_DIR)/%.o: $(ASSETS_DIR)/% $(ASSET_BUILDER_OUTPUT)
|
|
$(eval CURRENT_ASSET_FILE := $(shell echo $$(($(CURRENT_ASSET_FILE)+1))))
|
|
$(eval PERCENTAGE := $(shell echo $$(($(CURRENT_ASSET_FILE)*100/$(TOTAL_ASSETS_FILES)))))
|
|
@echo -e "[$(PERCENTAGE)%] $(GREEN)Building ASSET object $@$(RESET)"
|
|
$(Q)$(ASSET_BUILDER_OUTPUT) $@ -c $<
|
|
|
|
asset_end: $(ASSET_OUTPUT)
|
|
@echo "Built target $(notdir $(ASSET_OUTPUT))"
|