:: commit cb9edd2a7bf26f87e876221fc962c07cf89c3c86

mintsuki <mintsuki@protonmail.com> — 2020-09-14 17:32

parents: 6a6171d5e1

Reorganise source tree

diff --git a/Makefile b/Makefile
index 8321224f..bc74b047 100644
--- a/Makefile
+++ b/Makefile
@@ -6,28 +6,39 @@ CC = cc
 OBJCOPY = objcopy
 CFLAGS = -O2 -pipe -Wall -Wextra
 
-.PHONY: all toolchain limine install clean echfs-test ext2-test test.img
+.PHONY: all toolchain stage2 stage2-clean decompressor decompressor-clean limine install clean echfs-test ext2-test fat32-test test.img
 
 all: limine-install
 
 toolchain:
 	cd toolchain && ./make_toolchain.sh -j`nproc`
 
-limine:
-	$(MAKE) -C src all
-	cp src/limine.bin ./
+stage2:
+	$(MAKE) -C stage2 all
 
-install: all
-	install -s limine-install $(DESTDIR)$(PREFIX)/bin/
+stage2-clean:
+	$(MAKE) -C stage2 clean
+
+decompressor:
+	$(MAKE) -C decompressor all
+
+decompressor-clean:
+	$(MAKE) -C decompressor clean
 
-clean:
+limine: stage2 decompressor
+	gzip -n -9 < stage2/stage2.bin > stage2/stage2.bin.gz
+	cd bootsect && nasm bootsect.asm -fbin -o ../limine.bin
+
+clean: stage2-clean decompressor-clean
 	rm -f limine-install
-	$(MAKE) -C src clean
 
 limine-install: limine.bin limine-install.c
 	$(OBJCOPY) -I binary -O default limine.bin limine.o
 	$(CC) $(CFLAGS) limine.o limine-install.c -o limine-install
 
+install: all
+	install -s limine-install $(DESTDIR)$(PREFIX)/bin/
+
 test.img:
 	rm -f test.img
 	dd if=/dev/zero bs=1M count=0 seek=64 of=test.img
diff --git a/src/bootsect/a20_enabler.inc b/bootsect/a20_enabler.inc
similarity index 100%
rename from src/bootsect/a20_enabler.inc
rename to bootsect/a20_enabler.inc
diff --git a/src/bootsect/bootsect.asm b/bootsect/bootsect.asm
similarity index 98%
rename from src/bootsect/bootsect.asm
rename to bootsect/bootsect.asm
index 1dfc80c1..57fcda78 100644
--- a/src/bootsect/bootsect.asm
+++ b/bootsect/bootsect.asm
@@ -156,7 +156,7 @@ incbin '../decompressor/decompressor.bin'
 
 align 16
 stage2:
-incbin '../stage2.bin.gz'
+incbin '../stage2/stage2.bin.gz'
 .size: equ $ - stage2
 
 times 32768-($-$$) db 0
diff --git a/src/bootsect/disk.inc b/bootsect/disk.inc
similarity index 100%
rename from src/bootsect/disk.inc
rename to bootsect/disk.inc
diff --git a/src/bootsect/gdt.inc b/bootsect/gdt.inc
similarity index 100%
rename from src/bootsect/gdt.inc
rename to bootsect/gdt.inc
diff --git a/src/bootsect/simple_print.inc b/bootsect/simple_print.inc
similarity index 100%
rename from src/bootsect/simple_print.inc
rename to bootsect/simple_print.inc
diff --git a/src/decompressor/Makefile b/decompressor/Makefile
similarity index 82%
rename from src/decompressor/Makefile
rename to decompressor/Makefile
index 602d4457..aac8135a 100644
--- a/src/decompressor/Makefile
+++ b/decompressor/Makefile
@@ -1,6 +1,6 @@
-CC = ../../toolchain/bin/i386-elf-gcc
-LD = ../../toolchain/bin/i386-elf-gcc
-OBJCOPY = ../../toolchain/bin/i386-elf-objcopy
+CC = ../toolchain/bin/i386-elf-gcc
+LD = ../toolchain/bin/i386-elf-gcc
+OBJCOPY = ../toolchain/bin/i386-elf-objcopy
 
 CFLAGS = -flto -Os -pipe -Wall -Wextra
 
@@ -9,8 +9,10 @@ INTERNAL_CFLAGS =  \
 	-ffreestanding \
 	-fno-stack-protector \
 	-fno-pic \
+	-fomit-frame-pointer \
 	-mno-80387 \
 	-mno-mmx \
+	-mno-3dnow \
 	-mno-sse \
 	-mno-sse2 \
 	-I. \
diff --git a/src/decompressor/gzip/tinf.h b/decompressor/gzip/tinf.h
similarity index 100%
rename from src/decompressor/gzip/tinf.h
rename to decompressor/gzip/tinf.h
diff --git a/src/decompressor/gzip/tinfgzip.c b/decompressor/gzip/tinfgzip.c
similarity index 100%
rename from src/decompressor/gzip/tinfgzip.c
rename to decompressor/gzip/tinfgzip.c
diff --git a/src/decompressor/gzip/tinflate.c b/decompressor/gzip/tinflate.c
similarity index 100%
rename from src/decompressor/gzip/tinflate.c
rename to decompressor/gzip/tinflate.c
diff --git a/src/decompressor/lib/asm.h b/decompressor/lib/asm.h
similarity index 100%
rename from src/decompressor/lib/asm.h
rename to decompressor/lib/asm.h
diff --git a/src/decompressor/linker.ld b/decompressor/linker.ld
similarity index 100%
rename from src/decompressor/linker.ld
rename to decompressor/linker.ld
diff --git a/src/decompressor/main.c b/decompressor/main.c
similarity index 100%
rename from src/decompressor/main.c
rename to decompressor/main.c
diff --git a/src/Makefile b/stage2/Makefile
similarity index 64%
rename from src/Makefile
rename to stage2/Makefile
index 3f04c413..c14a94c7 100644
--- a/src/Makefile
+++ b/stage2/Makefile
@@ -9,8 +9,10 @@ INTERNAL_CFLAGS =  \
 	-ffreestanding \
 	-fno-stack-protector \
 	-fno-pic \
+	-fomit-frame-pointer \
 	-mno-80387 \
 	-mno-mmx \
+	-mno-3dnow \
 	-mno-sse \
 	-mno-sse2 \
 	-I. \
@@ -28,8 +30,8 @@ INTERNAL_LDFLAGS = \
 
 .PHONY: all clean
 
-C_FILES := $(shell find ./ -type f -name '*.c' | grep -v bootsect | grep -v decompressor | sort)
-ASM_FILES := $(shell find ./ -type f -name '*.asm' | grep -v bootsect | grep -v decompressor | sort)
+C_FILES := $(shell find ./ -type f -name '*.c' | sort)
+ASM_FILES := $(shell find ./ -type f -name '*.asm' | sort)
 OBJ := $(ASM_FILES:.asm=.o) $(C_FILES:.c=.o)
 
 all: limine.bin
@@ -37,9 +39,6 @@ all: limine.bin
 limine.bin: $(OBJ)
 	$(LD) $(OBJ) $(LDFLAGS) $(INTERNAL_LDFLAGS) -o stage2.elf
 	$(OBJCOPY) -O binary stage2.elf stage2.bin
-	gzip -n -9 < stage2.bin > stage2.bin.gz
-	$(MAKE) -C decompressor
-	cd bootsect && nasm bootsect.asm -fbin -o ../limine.bin
 
 %.o: %.c
 	$(CC) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@
@@ -48,5 +47,4 @@ limine.bin: $(OBJ)
 	nasm $< -f elf32 -o $@
 
 clean:
-	$(MAKE) -C decompressor clean
-	rm -f stage2.bin.gz stage2.bin stage2.elf limine.bin $(OBJ)
+	rm -f stage2.bin stage2.elf $(OBJ)
diff --git a/src/drivers/disk.c b/stage2/drivers/disk.c
similarity index 100%
rename from src/drivers/disk.c
rename to stage2/drivers/disk.c
diff --git a/src/drivers/disk.h b/stage2/drivers/disk.h
similarity index 100%
rename from src/drivers/disk.h
rename to stage2/drivers/disk.h
diff --git a/src/drivers/pic.c b/stage2/drivers/pic.c
similarity index 100%
rename from src/drivers/pic.c
rename to stage2/drivers/pic.c
diff --git a/src/drivers/pic.h b/stage2/drivers/pic.h
similarity index 100%
rename from src/drivers/pic.h
rename to stage2/drivers/pic.h
diff --git a/src/drivers/vbe.c b/stage2/drivers/vbe.c
similarity index 100%
rename from src/drivers/vbe.c
rename to stage2/drivers/vbe.c
diff --git a/src/drivers/vbe.h b/stage2/drivers/vbe.h
similarity index 100%
rename from src/drivers/vbe.h
rename to stage2/drivers/vbe.h
diff --git a/src/drivers/vga_textmode.c b/stage2/drivers/vga_textmode.c
similarity index 100%
rename from src/drivers/vga_textmode.c
rename to stage2/drivers/vga_textmode.c
diff --git a/src/drivers/vga_textmode.h b/stage2/drivers/vga_textmode.h
similarity index 100%
rename from src/drivers/vga_textmode.h
rename to stage2/drivers/vga_textmode.h
diff --git a/src/fs/echfs.c b/stage2/fs/echfs.c
similarity index 100%
rename from src/fs/echfs.c
rename to stage2/fs/echfs.c
diff --git a/src/fs/echfs.h b/stage2/fs/echfs.h
similarity index 100%
rename from src/fs/echfs.h
rename to stage2/fs/echfs.h
diff --git a/src/fs/ext2.c b/stage2/fs/ext2.c
similarity index 100%
rename from src/fs/ext2.c
rename to stage2/fs/ext2.c
diff --git a/src/fs/ext2.h b/stage2/fs/ext2.h
similarity index 100%
rename from src/fs/ext2.h
rename to stage2/fs/ext2.h
diff --git a/src/fs/fat32.c b/stage2/fs/fat32.c
similarity index 100%
rename from src/fs/fat32.c
rename to stage2/fs/fat32.c
diff --git a/src/fs/fat32.h b/stage2/fs/fat32.h
similarity index 100%
rename from src/fs/fat32.h
rename to stage2/fs/fat32.h
diff --git a/src/fs/file.c b/stage2/fs/file.c
similarity index 100%
rename from src/fs/file.c
rename to stage2/fs/file.c
diff --git a/src/fs/file.h b/stage2/fs/file.h
similarity index 100%
rename from src/fs/file.h
rename to stage2/fs/file.h
diff --git a/src/lib/acpi.c b/stage2/lib/acpi.c
similarity index 100%
rename from src/lib/acpi.c
rename to stage2/lib/acpi.c
diff --git a/src/lib/acpi.h b/stage2/lib/acpi.h
similarity index 100%
rename from src/lib/acpi.h
rename to stage2/lib/acpi.h
diff --git a/src/lib/asm.h b/stage2/lib/asm.h
similarity index 100%
rename from src/lib/asm.h
rename to stage2/lib/asm.h
diff --git a/src/lib/blib.c b/stage2/lib/blib.c
similarity index 100%
rename from src/lib/blib.c
rename to stage2/lib/blib.c
diff --git a/src/lib/blib.h b/stage2/lib/blib.h
similarity index 100%
rename from src/lib/blib.h
rename to stage2/lib/blib.h
diff --git a/src/lib/builtins.asm b/stage2/lib/builtins.asm
similarity index 100%
rename from src/lib/builtins.asm
rename to stage2/lib/builtins.asm
diff --git a/src/lib/cio.h b/stage2/lib/cio.h
similarity index 100%
rename from src/lib/cio.h
rename to stage2/lib/cio.h
diff --git a/src/lib/config.c b/stage2/lib/config.c
similarity index 100%
rename from src/lib/config.c
rename to stage2/lib/config.c
diff --git a/src/lib/config.h b/stage2/lib/config.h
similarity index 100%
rename from src/lib/config.h
rename to stage2/lib/config.h
diff --git a/src/lib/e820.c b/stage2/lib/e820.c
similarity index 100%
rename from src/lib/e820.c
rename to stage2/lib/e820.c
diff --git a/src/lib/e820.h b/stage2/lib/e820.h
similarity index 100%
rename from src/lib/e820.h
rename to stage2/lib/e820.h
diff --git a/src/lib/elf.c b/stage2/lib/elf.c
similarity index 100%
rename from src/lib/elf.c
rename to stage2/lib/elf.c
diff --git a/src/lib/elf.h b/stage2/lib/elf.h
similarity index 100%
rename from src/lib/elf.h
rename to stage2/lib/elf.h
diff --git a/src/lib/libc.c b/stage2/lib/libc.c
similarity index 100%
rename from src/lib/libc.c
rename to stage2/lib/libc.c
diff --git a/src/lib/libc.h b/stage2/lib/libc.h
similarity index 100%
rename from src/lib/libc.h
rename to stage2/lib/libc.h
diff --git a/src/lib/memmap.c b/stage2/lib/memmap.c
similarity index 100%
rename from src/lib/memmap.c
rename to stage2/lib/memmap.c
diff --git a/src/lib/memmap.h b/stage2/lib/memmap.h
similarity index 100%
rename from src/lib/memmap.h
rename to stage2/lib/memmap.h
diff --git a/src/lib/part.c b/stage2/lib/part.c
similarity index 100%
rename from src/lib/part.c
rename to stage2/lib/part.c
diff --git a/src/lib/part.h b/stage2/lib/part.h
similarity index 100%
rename from src/lib/part.h
rename to stage2/lib/part.h
diff --git a/src/lib/print.c b/stage2/lib/print.c
similarity index 100%
rename from src/lib/print.c
rename to stage2/lib/print.c
diff --git a/src/lib/print.h b/stage2/lib/print.h
similarity index 100%
rename from src/lib/print.h
rename to stage2/lib/print.h
diff --git a/src/lib/rand.c b/stage2/lib/rand.c
similarity index 100%
rename from src/lib/rand.c
rename to stage2/lib/rand.c
diff --git a/src/lib/rand.h b/stage2/lib/rand.h
similarity index 100%
rename from src/lib/rand.h
rename to stage2/lib/rand.h
diff --git a/src/lib/real.asm b/stage2/lib/real.asm
similarity index 100%
rename from src/lib/real.asm
rename to stage2/lib/real.asm
diff --git a/src/lib/real.h b/stage2/lib/real.h
similarity index 100%
rename from src/lib/real.h
rename to stage2/lib/real.h
diff --git a/src/lib/sleep.asm b/stage2/lib/sleep.asm
similarity index 100%
rename from src/lib/sleep.asm
rename to stage2/lib/sleep.asm
diff --git a/src/lib/term.c b/stage2/lib/term.c
similarity index 100%
rename from src/lib/term.c
rename to stage2/lib/term.c
diff --git a/src/lib/term.h b/stage2/lib/term.h
similarity index 100%
rename from src/lib/term.h
rename to stage2/lib/term.h
diff --git a/src/lib/time.c b/stage2/lib/time.c
similarity index 100%
rename from src/lib/time.c
rename to stage2/lib/time.c
diff --git a/src/lib/time.h b/stage2/lib/time.h
similarity index 100%
rename from src/lib/time.h
rename to stage2/lib/time.h
diff --git a/src/limine.h b/stage2/limine.h
similarity index 100%
rename from src/limine.h
rename to stage2/limine.h
diff --git a/src/linker.ld b/stage2/linker.ld
similarity index 100%
rename from src/linker.ld
rename to stage2/linker.ld
diff --git a/src/main.c b/stage2/main.c
similarity index 100%
rename from src/main.c
rename to stage2/main.c
diff --git a/src/menu.c b/stage2/menu.c
similarity index 100%
rename from src/menu.c
rename to stage2/menu.c
diff --git a/src/menu.h b/stage2/menu.h
similarity index 100%
rename from src/menu.h
rename to stage2/menu.h
diff --git a/src/mm/vmm64.c b/stage2/mm/vmm64.c
similarity index 100%
rename from src/mm/vmm64.c
rename to stage2/mm/vmm64.c
diff --git a/src/mm/vmm64.h b/stage2/mm/vmm64.h
similarity index 100%
rename from src/mm/vmm64.h
rename to stage2/mm/vmm64.h
diff --git a/src/protos/chainload.c b/stage2/protos/chainload.c
similarity index 100%
rename from src/protos/chainload.c
rename to stage2/protos/chainload.c
diff --git a/src/protos/chainload.h b/stage2/protos/chainload.h
similarity index 100%
rename from src/protos/chainload.h
rename to stage2/protos/chainload.h
diff --git a/src/protos/linux.c b/stage2/protos/linux.c
similarity index 100%
rename from src/protos/linux.c
rename to stage2/protos/linux.c
diff --git a/src/protos/linux.h b/stage2/protos/linux.h
similarity index 100%
rename from src/protos/linux.h
rename to stage2/protos/linux.h
diff --git a/src/protos/stivale.c b/stage2/protos/stivale.c
similarity index 100%
rename from src/protos/stivale.c
rename to stage2/protos/stivale.c
diff --git a/src/protos/stivale.h b/stage2/protos/stivale.h
similarity index 100%
rename from src/protos/stivale.h
rename to stage2/protos/stivale.h
diff --git a/src/protos/stivale2.c b/stage2/protos/stivale2.c
similarity index 100%
rename from src/protos/stivale2.c
rename to stage2/protos/stivale2.c
diff --git a/src/protos/stivale2.h b/stage2/protos/stivale2.h
similarity index 100%
rename from src/protos/stivale2.h
rename to stage2/protos/stivale2.h
tab: 248 wrap: offon