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
