Advertisement
Guest User

makefile-example

a guest
Jan 24th, 2022
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.40 KB | None | 0 0
  1. ifdef $(JAGDEV)
  2. ROOTDIR = $(JAGDEV)
  3. else
  4. ROOTDIR = /opt/toolchains/jaguar
  5. endif
  6.  
  7. HEADERDIR = $(ROOTDIR)/headers
  8. HEADER = $(HEADERDIR)/Univ.bin
  9.  
  10. LDSCRIPTSDIR = $(ROOTDIR)/ldscripts
  11. LINK_FLAGS = -T$(LDSCRIPTSDIR)/jaguar-bjl.ld -Map map.txt -nostdlib
  12.  
  13. LIBPATH = -L$(ROOTDIR)/m68k-elf/lib -L$(ROOTDIR)/m68k-elf/lib/gcc/m68k-elf/11.2.0 -L$(ROOTDIR)/m68k-elf/m68k-elf/lib
  14. INCPATH = -I$(CURDIR)/include -I$(ROOTDIR)/m68k-elf/include -I$(ROOTDIR)/m68k-elf/m68k-elf/include
  15. CCFLAGS = -m68000 -G 0 -O2 -Wall -Werror -c $(INCPATH) -fomit-frame-pointer
  16. CPPFLAGS = -m68000 -G 0 -O2 -Wall -Werror -c $(INCPATH) -fomit-frame-pointer -nostdlib -ffreestanding -fno-exceptions -fno-rtti
  17. ASFLAGS = -m68000 --register-prefix-optional
  18.  
  19. JAGPREFIX = $(ROOTDIR)/m68k-elf/bin/m68k-elf-
  20. CPP = $(JAGPREFIX)g++
  21. CC = $(JAGPREFIX)gcc
  22. AS = $(JAGPREFIX)as
  23. LD = $(JAGPREFIX)ld
  24. OBJCOPY = $(JAGPREFIX)objcopy
  25.  
  26. PROG_NAME = TicTacToe
  27. OBJS = crt0.o crtstuff.o main.o hw_jag.o font.o
  28. LIBS = -lm -lstdc++ -lc -lgcc
  29.  
  30. $(PROG_NAME).bin: $(PROG_NAME).elf
  31. $(OBJCOPY) $(PROG_NAME).elf $(PROG_NAME).bin -O binary
  32.  
  33. $(PROG_NAME).elf : $(OBJS)
  34. $(LD) -o $(PROG_NAME).elf $(OBJS) $(LINK_FLAGS) $(LIBPATH) $(LIBS)
  35.  
  36. %.o: %.cpp
  37. $(CPP) $(CPPFLAGS) $< -o $@
  38.  
  39. %.o: %.c
  40. $(CC) $(CCFLAGS) $< -o $@
  41.  
  42. %.o: %.S
  43. $(CC) $(CCFLAGS) $< -o $@
  44.  
  45. %.o: %.s
  46. $(AS) $(ASFLAGS) $< -o $@
  47.  
  48. all: $(PROG_NAME).bin
  49.  
  50. clean:
  51. rm -f *.bin *.elf *.o *.bin map.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement