Makefile 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. TARGET ?= preload
  2. #################################
  3. # GNU ARM Embedded Toolchain
  4. #################################
  5. CC=aarch64-elf-gcc
  6. CXX=aarch64-elf-g++
  7. LD=aarch64-elf-ld
  8. AR=aarch64-elf-ar
  9. AS=aarch64-elf-as
  10. CP=aarch64-elf-objcopy
  11. OD=aarch64-elf-objdump
  12. NM=aarch64-elf-nm
  13. SIZE=aarch64-elf-size
  14. A2L=aarch64-elf-addr2line
  15. #################################
  16. # Working directories
  17. #################################
  18. ROOT = .
  19. #################################
  20. # Source Files
  21. #################################
  22. # Search path and source files
  23. ASMSOURCES = $(notdir $(wildcard *.ASM))
  24. INCLUDE_DIRS = -I$(ROOT)
  25. #################################
  26. # Object List
  27. #################################
  28. OBJECTS=
  29. #################################
  30. # Target Output Files
  31. #################################
  32. TARGET_O=$(TARGET).o
  33. TARGET_ASM=$(TARGET).asm
  34. #################################
  35. # Flags
  36. #################################
  37. MCFLAGS=-march=armv8-a
  38. OPTIMIZE = -O2
  39. AFLAGS=-c $(MCFLAGS) -x assembler-with-cpp -D__ASSEMBLY__
  40. LDSCRIPT=
  41. LDFLAGS = -nostartfiles -Wl,--gc-sections,-cref,-Map=$(TARGET).map,-cref,-u,_start -T $(TARGET).ld
  42. #################################
  43. # Build
  44. #################################
  45. all: clean $(TARGET_O)
  46. $(TARGET_O):
  47. @echo -n "Build $@ ..."
  48. $(CC) -c $(INCLUDE_DIRS) $(AFLAGS) $(ASMSOURCES) $(LDFLAGS)
  49. $(OD) -d $@ > $(TARGET).txt
  50. #################################
  51. # Recipes
  52. #################################
  53. .PHONY: all clean
  54. clean:
  55. rm -f $(TARGET_O)