/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile.fpc

https://github.com/slibre/freepascal · Unknown · 81 lines · 70 code · 11 blank · 0 comment · 0 complexity · 6e019500d991bbbdf2d8bd0178379391 MD5 · raw file

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