53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|  | # Aedrix root Makefile
 | ||
|  | # Copyright (C) 2012 Aaron Lindsay <aaron@aclindsay.com>
 | ||
|  | 
 | ||
|  | # Config options for the code itself (should be separated from the Makefile sometime)
 | ||
|  | ARCH = arm | ||
|  | 
 | ||
|  | # Config options concerning the build process itself
 | ||
|  | VERBOSE = 0 # 1 shows all compiler flags, 0 shows cleaner output | ||
|  | 
 | ||
|  | # Define the tools to be used
 | ||
|  | TOOL_PREFIX = arm-elf- | ||
|  | AS = $(TOOL_PREFIX)as | ||
|  | CC = $(TOOL_PREFIX)gcc | ||
|  | LD = $(TOOL_PREFIX)ld | ||
|  | 
 | ||
|  | # Define the flags we'll need for our tools
 | ||
|  | KCFLAGS = -Wall -Wextra -Werror -nostdlib -nostartfiles -ffreestanding -std=gnu99 | ||
|  | KLDFLAGS = -T link.ld | ||
|  | 
 | ||
|  | KOBJS =  | ||
|  | 
 | ||
|  | include boot/Makefile.inc | ||
|  | include kernel/Makefile.inc | ||
|  | 
 | ||
|  | all: aedrix-kernel | ||
|  | #all: 
 | ||
|  | #	@echo $(KOBJS)
 | ||
|  | 
 | ||
|  | aedrix-kernel: $(KOBJS) | ||
|  | 	$(if $(VERBOSE:1=),@echo '     LD $@') | ||
|  | 	$(if $(VERBOSE:1=),@)$(LD) $(KLDFLAGS) -o $@ $(KOBJS) | ||
|  | 
 | ||
|  | %.o: %.c | ||
|  | 	$(if $(VERBOSE:1=),@echo '     CC $@') | ||
|  | 	$(if $(VERBOSE:1=),@)$(CC) $(KCFLAGS) -c -o $@ $< | ||
|  | 
 | ||
|  | # Assembly files without preprocessor directives
 | ||
|  | %.o: %.s | ||
|  | 	$(if $(VERBOSE:1=),@echo '     AS $@') | ||
|  | 	$(if $(VERBOSE:1=),@)$(AS) -o $@ $< | ||
|  | 
 | ||
|  | # Assembly files with preprocessor directives
 | ||
|  | %.o: %.S | ||
|  | 	$(if $(VERBOSE:1=),@echo '     AS $@') | ||
|  | 	$(if $(VERBOSE:1=),@)$(AS) -o $@ $< | ||
|  | 
 | ||
|  | .PHONY : clean | ||
|  | clean: | ||
|  | 	@echo '  CLEAN *.o' | ||
|  | 	@rm -f $(KOBJS) | ||
|  | 	@echo '  CLEAN aedrix-kernel' | ||
|  | 	@rm -f aedrix-kernel |