mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-06 15:52:34 +02:00

* Changed nds tool: grit has been replaced by grit_fpc (https://github.com/flodd/grit_fpc) to simplify the nds programming workflow git-svn-id: trunk@30074 -
127 lines
3.3 KiB
Makefile
127 lines
3.3 KiB
Makefile
#
|
|
# Makefile.fpc for Free Pascal libndsfpc 2.x.y Examples
|
|
#
|
|
|
|
[target]
|
|
loaders=
|
|
programs=scrolling
|
|
|
|
[require]
|
|
packages=libndsfpc
|
|
tools=bin2s mmutil grit_fpc rmdir mv ndstool
|
|
nortl=y
|
|
|
|
[install]
|
|
fpcpackage=y
|
|
|
|
[default]
|
|
cpu=arm
|
|
target=nds
|
|
fpcdir=../../../../..
|
|
|
|
[compiler]
|
|
options=-Xm
|
|
targetdir=$(BIN)
|
|
unittargetdir=$(BUILD)
|
|
|
|
[clean]
|
|
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
|
|
$(BUILD)/* \
|
|
$(INC)/* \
|
|
$(BIN)/*
|
|
units=*
|
|
|
|
|
|
[prerules]
|
|
BIN = bin
|
|
BUILD = build
|
|
DATA = data
|
|
FILESYSTEM = filesystem
|
|
GFX = gfx
|
|
INC = inc
|
|
AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
|
|
GFX_FILES = $(foreach dir, $(GFX), $(notdir $(wildcard $(dir)/*.bmp $(dir)/*.png)))
|
|
BIN_FILES = $(foreach dir, $(DATA), $(notdir $(wildcard $(dir)/*)))
|
|
GBFS_FILES = $(foreach dir, GBFS, $(notdir $(wildcard $(dir)/*)))
|
|
|
|
[rules]
|
|
.NOTPARALLEL:
|
|
clean: dir_delete fpc_clean fpc_cleanall
|
|
all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
|
|
filesystem: all make_filesystem
|
|
|
|
|
|
|
|
#
|
|
# Delete temp directories
|
|
#
|
|
dir_delete:
|
|
@$(DELTREE) $(CURDIR)/$(BUILD)
|
|
@$(DELTREE) $(CURDIR)/$(INC)
|
|
@$(DELTREE) $(CURDIR)/$(BIN)
|
|
|
|
#
|
|
# Create temp directories
|
|
#
|
|
dir_make:
|
|
ifneq ($(BUILD), $(CURDIR))
|
|
@$(MKDIR) $(BUILD)
|
|
endif
|
|
ifneq ($(INC), $(CURDIR))
|
|
@$(MKDIR) $(INC)
|
|
endif
|
|
ifneq ($(BIN), $(CURDIR))
|
|
@$(MKDIR) $(BIN)
|
|
endif
|
|
|
|
#
|
|
# Audio files processing rule
|
|
#
|
|
soundbank.bin.o : $(AUDIO_FILES)
|
|
@$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
|
|
$(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
|
|
$(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
|
|
|
|
#
|
|
# Png files processing rule
|
|
#
|
|
$(GFX_FILES): $(wildcard %.bmp %.png)
|
|
@echo 'Converting $(@) file to asm...'
|
|
$(GRIT_FPC) $(GFX)/$(@) -fp -fts -ff $(GFX)/$(basename $(@)).grit -o$(BUILD)/$(@)
|
|
@echo 'Assembling $(@).s file...'
|
|
$(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
|
|
$(MV) -f $(BUILD)/$(basename $(@)).inc $(INC)/$(basename $(@)).inc
|
|
@echo 'Done!'
|
|
|
|
#
|
|
# Binary files processing rule
|
|
#
|
|
$(BIN_FILES): $(wildcard %.*)
|
|
@echo 'Converting $(@) file to asm...'
|
|
@$(BIN2S) $(DATA)/$(@) > $(BUILD)/$(@).s
|
|
@echo 'Creating $(@).inc include file...'
|
|
@echo "var" > `(echo "$(INC)/"$(@F) | tr . .)`.inc
|
|
@echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
|
|
@echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
|
|
@echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
|
|
@echo 'Assembling $(@).s file...'
|
|
@$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
|
|
@echo 'Done!'
|
|
|
|
|
|
#
|
|
# GBFS files processing rule
|
|
#
|
|
data.gbfs.o:
|
|
@cd GBFS && gbfs ../$(BUILD)/data.gbfs $(GBFS_FILES)
|
|
$(BIN2S) $(BUILD)/data.gbfs > $(BUILD)/data.gbfs.s
|
|
$(AS) -o $(BUILD)/data.gbfs.o $(BUILD)/data.gbfs.s
|
|
|
|
#
|
|
# Nitro Filesystem processing rule
|
|
#
|
|
make_filesystem:
|
|
@$(NDSTOOL) -c $(BIN)/$(TARGET_PROGRAMS).fs.nds -9 $(BIN)/$(TARGET_PROGRAMS).nef.bin -d $(CURDIR)/$(FILESYSTEM)
|
|
|
|
patch:
|
|
@dlditool r4tf.dldi $(TARGET_PROGRAMS).nds
|