Mon 14 Oct 23:13:50 CEST 2024
This commit is contained in:
		
							parent
							
								
									66769b1980
								
							
						
					
					
						commit
						886cc8adfa
					
				|  | @ -1,54 +1,23 @@ | ||||||
| include Makefile.config | KERNEL_CCFLAGS=-Wall -c -ffreestanding -fno-pie -g -std=gnu99 | ||||||
| 
 | 
 | ||||||
| LIBRARY_SOURCES=$(wildcard library/*.c) | # These settings select the native compiler,
 | ||||||
| LIBRARY_HEADERS=$(wildcard library/*.h) | # which is likely to work on native linux-x86.
 | ||||||
| USER_SOURCES=$(wildcard user/*.c) | #
 | ||||||
| USER_PROGRAMS=$(USER_SOURCES:c=exe) | CC=gcc -m32 | ||||||
| KERNEL_SOURCES=$(wildcard kernel/*.[chS]) | LD=ld -melf_i386 | ||||||
| WORDS=/usr/share/dict/words | #LD=ld -arch i386
 | ||||||
|  | AR=ar | ||||||
|  | OBJCOPY=objcopy -R .note.gnu.property | ||||||
|  | ISOGEN=genisoimage | ||||||
| 
 | 
 | ||||||
| .PHONY: build-kernel build-library build-userspace build-cdrom-image | # If you are compiling from another platform,
 | ||||||
|  | # then use the script build-cross-compiler.sh
 | ||||||
|  | # add cross/bin to your path, and uncomment these lines:
 | ||||||
|  | #CC=i686-elf-gcc
 | ||||||
|  | #LD=i686-elf-ld
 | ||||||
|  | #AR=i686-elf-ar
 | ||||||
|  | #OBJCOPY=i686-elf-objcopy
 | ||||||
| 
 | 
 | ||||||
| all: build-cdrom-image | # If building on OSX, then install mkisofs via ports or brew
 | ||||||
| 
 | # and uncomment this:
 | ||||||
| build-kernel: kernel/basekernel.img | #ISOGEN=mkisofs
 | ||||||
| 
 |  | ||||||
| build-library: library/baselib.a |  | ||||||
| 
 |  | ||||||
| build-userspace: $(USER_PROGRAMS) |  | ||||||
| 
 |  | ||||||
| build-cdrom-image: basekernel.iso |  | ||||||
| 
 |  | ||||||
| kernel/basekernel.img: $(KERNEL_SOURCES) $(LIBRARY_HEADERS) |  | ||||||
| 	cd kernel && make |  | ||||||
| 
 |  | ||||||
| library/baselib.a: $(LIBRARY_SOURCES) $(LIBRARY_HEADERS) |  | ||||||
| 	cd library && make |  | ||||||
| 
 |  | ||||||
| $(USER_PROGRAMS): $(USER_SOURCES) library/baselib.a $(LIBRARY_HEADERS) |  | ||||||
| 	cd user && make |  | ||||||
| 
 |  | ||||||
| image: kernel/basekernel.img $(USER_PROGRAMS) |  | ||||||
| 	rm -rf image |  | ||||||
| 	mkdir image image/boot image/bin image/data |  | ||||||
| 	cp kernel/basekernel.img image/boot |  | ||||||
| 	cp $(USER_PROGRAMS) image/bin |  | ||||||
| 	if [ -f ${WORDS} ]; then head -2000 ${WORDS} > image/data/words; fi |  | ||||||
| 
 |  | ||||||
| basekernel.iso: image |  | ||||||
| 	${ISOGEN} -input-charset utf-8 -iso-level 2 -J -R -o $@ -b boot/basekernel.img image |  | ||||||
| 
 |  | ||||||
| disk.img: |  | ||||||
| 	qemu-img create disk.img 10M |  | ||||||
| 
 |  | ||||||
| run: basekernel.iso disk.img |  | ||||||
| 	qemu-system-i386 -cdrom basekernel.iso -hda disk.img |  | ||||||
| 
 |  | ||||||
| debug: basekernel.iso disk.img |  | ||||||
| 	qemu-system-i386 -cdrom basekernel.iso -hda disk.img -s -S & |  | ||||||
| 
 |  | ||||||
| clean: |  | ||||||
| 	rm -rf basekernel.iso image disk.img |  | ||||||
| 	cd kernel && make clean |  | ||||||
| 	cd library && make clean |  | ||||||
| 	cd user && make clean |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user