33 lines
		
	
	
		
			848 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			848 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Makefile fragment for the JOS kernel.
							 | 
						||
| 
								 | 
							
								# This is NOT a complete makefile;
							 | 
						||
| 
								 | 
							
								# you must run GNU make in the top-level directory
							 | 
						||
| 
								 | 
							
								# where the GNUmakefile is located.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								OBJDIRS += boot
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								BOOT_OBJS := $(OBJDIR)/boot/boot.o $(OBJDIR)/boot/main.o
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$(OBJDIR)/boot/%.o: boot/%.c
							 | 
						||
| 
								 | 
							
									@echo + cc -Os $<
							 | 
						||
| 
								 | 
							
									@mkdir -p $(@D)
							 | 
						||
| 
								 | 
							
									$(V)$(CC) -nostdinc $(KERN_CFLAGS) -Os -c -o $@ $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$(OBJDIR)/boot/%.o: boot/%.S
							 | 
						||
| 
								 | 
							
									@echo + as $<
							 | 
						||
| 
								 | 
							
									@mkdir -p $(@D)
							 | 
						||
| 
								 | 
							
									$(V)$(CC) -nostdinc $(KERN_CFLAGS) -c -o $@ $<
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$(OBJDIR)/boot/main.o: boot/main.c
							 | 
						||
| 
								 | 
							
									@echo + cc -Os $<
							 | 
						||
| 
								 | 
							
									$(V)$(CC) -nostdinc $(KERN_CFLAGS) -Os -c -o $(OBJDIR)/boot/main.o boot/main.c
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$(OBJDIR)/boot/boot: $(BOOT_OBJS)
							 | 
						||
| 
								 | 
							
									@echo + ld boot/boot
							 | 
						||
| 
								 | 
							
									$(V)$(LD) $(LDFLAGS) -N -e start -Ttext 0x7C00 -o $@.out $^
							 | 
						||
| 
								 | 
							
									$(V)$(OBJDUMP) -S $@.out >$@.asm
							 | 
						||
| 
								 | 
							
									$(V)$(OBJCOPY) -S -O binary -j .text $@.out $@
							 | 
						||
| 
								 | 
							
									$(V)perl boot/sign.pl $(OBJDIR)/boot/boot
							 | 
						||
| 
								 | 
							
								
							 |