74 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| include makefile.conf
 | |
| 
 | |
| NAME = main
 | |
| TARGET = $(NAME).elf
 | |
| 
 | |
| #VPATH=
 | |
| 
 | |
| OBJDIR = obj
 | |
| OUTDIR = bin
 | |
| 
 | |
| LDSCRIPTS = -L. -L$(BASE)/ldscripts -T gcc.ld
 | |
| 
 | |
| DEFINE = -D __NO_SYSTEM_INIT
 | |
| 
 | |
| #ASFLAGS=
 | |
| #CFLAGS  = -std=c99 -Og -g -Wall -ffreestanding
 | |
| LDFLAGS=-nostdlib $(ARCH_FLAGS) $(USE_SEMIHOST) $(LDSCRIPTS) $(DEFINE) $(DI) $(MAP)
 | |
| 
 | |
| SOURCES = $(wildcard *.s *.S *.c)
 | |
| HEADERS = $(wildcard *.h)
 | |
| #SOURCES = main.s
 | |
| 
 | |
| OBJECTS = $(SOURCES)
 | |
| OBJECTS := $(SOURCES:%.s=%.o)
 | |
| OBJECTS := $(OBJECTS:%.S=%.o)
 | |
| OBJECTS := $(OBJECTS:%.c=%.o)
 | |
| 
 | |
| all: build
 | |
| 
 | |
| build: $(NAME).elf $(NAME).hex size
 | |
| 
 | |
| envmake:
 | |
| 	@echo VARIABLES:
 | |
| 	@echo SHELL: $(SHELL)
 | |
| 	@echo STARTUP: $(STARTUP)
 | |
| 	@echo CFLAGS: $(CFLAGS)
 | |
| 	@echo CXXFLAGS: $(CXXFLAGS)
 | |
| 	@echo LDFLAGS: $(LDFLAGS)
 | |
| 	@echo OBJECTS: $(OBJECTS)
 | |
| 
 | |
| $(TARGET): $(SOURCES) $(STARTUP)
 | |
| 	$(LINK.s) $^ $(LDLIBS) -o $@
 | |
| 
 | |
| #$(TARGET): $(OBJECTS) $(STARTUP)
 | |
| #	$(LINK.o) $^ $(LDLIBS) -o $@
 | |
| 
 | |
| # This pattern rule extract binary from an ELF executable
 | |
| # filename.bin is built from filename.elf
 | |
| %.bin: %.elf
 | |
| 	$(OBJCOPY) $< -O binary $@
 | |
| 
 | |
| # Produce firmware file in Intel Hex format
 | |
| %.hex: %.elf
 | |
| 	$(OBJCOPY) $< -O ihex $@
 | |
| 
 | |
| # Disassemble
 | |
| %.lst: %.elf
 | |
| 	$(OBJDUMP) -d $< > $@
 | |
| 
 | |
| #.PHONY: build
 | |
| 
 | |
| size:
 | |
| #	@echo Size: $(TARGET)
 | |
| 	@$(SIZE) $(TARGET)
 | |
| 
 | |
| .PHONY: clean
 | |
| clean:
 | |
| 	$(RM) $(TARGET) *.o *.elf *.bin *.hex *.map *.lst
 | |
| 
 | |
| #.SUFFIXES:
 | |
| #.SUFFIXES: .s .S .c .o .elf .bin .hex .ln
 | |
| 
 | |
| #.DEFAULT_TARGET: all
 |