Makefile.fpc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #
  2. # Makefile.fpc for Free Pascal libgbafpc 2.x.y Examples
  3. #
  4. [package]
  5. name=libgbafpc-template-examples
  6. version=3.3.1
  7. [target]
  8. loaders=
  9. programs=template
  10. [require]
  11. packages=libgbafpc
  12. tools=bin2s mmutil grit rmdir
  13. nortl=y
  14. [install]
  15. fpcpackage=y
  16. [default]
  17. cpu=arm
  18. target=gba
  19. fpcdir=../../../..
  20. [clean]
  21. files=*.elf *.o *.s *.gba *.h *.bin *.map \
  22. $(BUILD)/* \
  23. $(INC)/*
  24. units=*
  25. [prerules]
  26. BUILD = build
  27. INC = inc
  28. AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
  29. GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
  30. BIN_FILES = $(foreach dir,data,$(notdir $(wildcard $(dir)/*)))
  31. [rules]
  32. .NOTPARALLEL:
  33. clean: dir_delete fpc_clean fpc_cleanall
  34. all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
  35. #
  36. # Delete temp directories
  37. #
  38. dir_delete:
  39. @$(DELTREE) $(CURDIR)/$(BUILD)
  40. @$(DELTREE) $(CURDIR)/$(INC)
  41. #
  42. # Create temp directories
  43. #
  44. dir_make:
  45. ifneq ($(BUILD), $(CURDIR))
  46. @$(MKDIR) $(BUILD)
  47. endif
  48. ifneq ($(INC), $(CURDIR))
  49. @$(MKDIR) $(INC)
  50. endif
  51. #
  52. # Png files processing rule
  53. #
  54. $(GFX_FILES): $(wildcard %.png)
  55. @echo 'Converting $(@) file to asm...'
  56. $(GRIT) gfx/$(@) -fts -ff gfx/$(basename $(@)).grit -o$(BUILD)/$(@)
  57. @echo 'Assembling $(@).s file...'
  58. $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
  59. @echo 'Done!'
  60. #
  61. # Binary files processing rule
  62. #
  63. $(BIN_FILES): $(wildcard %.*)
  64. @echo 'Converting $(@) file to asm...'
  65. @$(BIN2S) data/$(@) > $(BUILD)/$(@).s
  66. @echo 'Creating $(@).inc include file...'
  67. @echo "var" > `(echo "inc/"$(@F) | tr . .)`.inc
  68. @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
  69. @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
  70. @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
  71. @echo 'Assembling $(@).s file...'
  72. @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
  73. @echo 'Done!'