51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
|  | TARGET   = rtti2 | ||
|  | 
 | ||
|  | TARGET_ARCH = riscv32 | ||
|  | 
 | ||
|  | CC       = riscv32-unknown-elf-g++ | ||
|  | 
 | ||
|  | # compiling flags here
 | ||
|  | CFLAGS = -Wall -I. -O0 -static -march=rv32imac -mabi=ilp32 --specs=nosys.specs | ||
|  | 
 | ||
|  | LINKER   = riscv32-unknown-elf-g++ | ||
|  | # linking flags here
 | ||
|  | LDFLAGS   = -I. -static  | ||
|  | LIBS   = $(EXTRA_LIBS) | ||
|  | 
 | ||
|  | 
 | ||
|  | # change these to proper directories where each file should be
 | ||
|  | SRCDIR   = ./ | ||
|  | OBJDIR   = . | ||
|  | BINDIR   = ./ | ||
|  | INCDIR = -I. | ||
|  | LIBDIR = -L. | ||
|  | 
 | ||
|  | 
 | ||
|  | SOURCES  := $(wildcard $(SRCDIR)/*.cpp) | ||
|  | INCLUDES := $(wildcard $(INCDIR)/*.h) | ||
|  | OBJECTS  := $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o) | ||
|  | 
 | ||
|  | rm       = rm -f | ||
|  | 
 | ||
|  | 
 | ||
|  | $(BINDIR)/$(TARGET): $(OBJECTS) | ||
|  | 	$(LINKER) $(CFLAGS) $(LDFLAGS) $(LIBS) $(LIBDIR) $(OBJECTS) -o $@ | ||
|  | 	riscv32-unknown-elf-objdump -d $@ > dump | ||
|  | 	riscv32-unknown-elf-objcopy -Oihex $@ $(TARGET).hex | ||
|  | 	@echo "Linking complete!" | ||
|  | 
 | ||
|  | $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cpp | ||
|  | 	@echo "Compiling "$<" ..." | ||
|  | 	$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@ | ||
|  | 	@echo "Done!" | ||
|  | 
 | ||
|  | .PHONY: clean | ||
|  | clean: | ||
|  | 	@$(rm) $(OBJECTS) *.hex dump | ||
|  | 	@echo "Cleanup complete!" | ||
|  | 
 | ||
|  | .PHONY: remove | ||
|  | remove: clean | ||
|  | 	@$(rm) $(BINDIR)/$(TARGET) | ||
|  | 	@echo "Executable removed!" |