@@ -32,6 +32,7 @@ app_dashboard = $(BUILD_APP)/dashboard
3232
3333# Parameters
3434BT_STAGE2_SECTOR_COUNT = 19 # In Hex
35+ KERNEL_MEMORY_LOCATION = 0xC000 # 16 bit for now
3536SOURCE_SNAPSHOT="\"$$(git rev-parse --short HEAD )$$(git diff --quiet || echo '_unstaged' ) \""
3637
3738# General Assumptions
@@ -54,17 +55,17 @@ $(image_vmdk): $(bt_stage1) $(bt_stage2) $(kernel_core) $(app_calc) $(app_tick_t
5455 @echo " Stage 2 Size : " $$(stat -c %s $(bt_stage2 ) )
5556 @echo " Want BT_STAGE2_SECTOR_COUNT : 0x" $$(printf "%x\n" $$(( $$(stat -c %s $(bt_stage2 ) ) / 512 ) ) )
5657 @echo " Got BT_STAGE2_SECTOR_COUNT : 0x" $(BT_STAGE2_SECTOR_COUNT )
57-
58+
5859 @echo "AppCalc Sector Start : "$$(( 1 + $$(stat -c %s $(image_vmdk)) / 512 ))
5960 cat $(app_calc) >> $@
6061 @echo "AppCalc Sector Count : "$$(( $$(stat -c %s $(app_calc)) / 512))
6162 @echo "App Calc Size : " $$(stat -c %s $(app_calc))
62-
63+
6364 @echo "App TickTacToe Sector Start : "$$(( 1 + $$(stat -c %s $(image_vmdk)) / 512 ))
6465 cat $(app_tick_tac_toe) >> $@
6566 @echo "App TickTacToe Sector Count : "$$(( $$(stat -c %s $(app_tick_tac_toe)) / 512))
6667 @echo "App TickTacToe Size : " $$(stat -c %s $(app_tick_tac_toe))
67-
68+
6869 @echo "Kernel Core Sector Start : "$$(( 1 + $$(stat -c %s $(image_vmdk)) / 512 ))
6970 cat $(kernel_core) >> $@
7071 @echo "Kernel Core Sector Count : "$$(( $$(stat -c %s $(kernel_core)) / 512))
@@ -98,18 +99,18 @@ $(bt_stage1): $(SRC_BOOTLOADER)/stage1.asm $(SRC_BOOTLOADER)/constants.asm $(SRC
9899 nasm -o $@ -f bin -i $(SRC_BOOTLOADER ) / -D BT_STAGE2_SECTOR_COUNT=$(BT_STAGE2_SECTOR_COUNT ) $<
99100 truncate --size=%512 $@
100101
101- $(bt_stage2 ) : $(SRC_BOOTLOADER ) /stage2.asm $(SRC_BOOTLOADER ) /stage2.c $(SRC_BOOTLOADER ) /io.asm $(SRC_BOOTLOADER ) /constants.asm $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_bios
102+ $(bt_stage2 ) : $(SRC_BOOTLOADER ) /stage2.asm $(SRC_BOOTLOADER ) /stage2.c $(SRC_BOOTLOADER ) /io.asm $(SRC_BOOTLOADER ) /constants.asm $(BUILD_LIB_UTILS ) /libutils_16 $(BUILD_DRIVERS ) /display/libtm_bios
102103 mkdir -p $$(dirname $(bt_stage2 ) )
103104 nasm -o $(BUILD_BOOTLOADER ) /stage2_asm.o -f elf32 -i $(SRC_BOOTLOADER ) / $(SRC_BOOTLOADER ) /stage2.asm
104- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_BOOTLOADER ) /stage2_c.o $(SRC_BOOTLOADER ) /stage2.c
105- ld --oformat binary -m elf_i386 -Ttext 0x8000 --strip-all -o $@ $(BUILD_BOOTLOADER ) /stage2_asm.o $(BUILD_BOOTLOADER ) /stage2_c.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_bios
105+ gcc -m16 -fno-pie -c -Isrc -D KERNEL_MEMORY_LOCATION= $( KERNEL_MEMORY_LOCATION ) - o $(BUILD_BOOTLOADER ) /stage2_c.o $(SRC_BOOTLOADER ) /stage2.c
106+ ld --oformat binary -m elf_i386 -Ttext 0x8000 --strip-all -o $@ $(BUILD_BOOTLOADER ) /stage2_asm.o $(BUILD_BOOTLOADER ) /stage2_c.o $(BUILD_LIB_UTILS ) /libutils_16 $(BUILD_DRIVERS ) /display/libtm_bios
106107 truncate --size=%512 $@
107108
108109$(kernel_core ) : $(SRC_KERNEL ) /core.asm $(SRC_KERNEL ) /core.c $(SRC_KERNEL ) /essentials.c $(SRC_LIB_UTILS ) /io.h $(SRC_DRIVERS ) /keyboard/keyboard.h $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /keyboard/libkeyboard $(BUILD_DRIVERS ) /display/libtm_vga # And other io.h dependecies -_-
109110 mkdir -p $$(dirname $(kernel_core ) )
110111 nasm -o $(BUILD_KERNEL ) /core_asm.o -f elf32 $(SRC_KERNEL ) /core.asm
111- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_KERNEL ) /core_c.o $(SRC_KERNEL ) /core.c
112- ld --oformat binary -m elf_i386 --trace -Ttext 0xC000 --strip-all -o $(kernel_core ) $(BUILD_KERNEL ) /core_asm.o $(BUILD_KERNEL ) /core_c.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /keyboard/libkeyboard $(BUILD_DRIVERS ) /display/libtm_vga
112+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_KERNEL ) /core_c.o $(SRC_KERNEL ) /core.c
113+ ld --oformat binary -m elf_i386 --trace -Ttext 0x0000 --strip-all -o $(kernel_core ) $(BUILD_KERNEL ) /core_asm.o $(BUILD_KERNEL ) /core_c.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /keyboard/libkeyboard $(BUILD_DRIVERS ) /display/libtm_vga
113114 truncate --size=%512 $(kernel_core )
114115
115116# Libraries
@@ -119,24 +120,25 @@ $(app_entry): $(SRC_LIB)/app/entry.asm
119120 nasm -o $@ -f elf32 $<
120121
121122$(BUILD_DRIVERS ) /display/libtm_bios : $(SRC_DRIVERS ) /display/text_mode_bios.c $(SRC_DRIVERS ) /display/text_mode_bios.asm $(SRC_DRIVERS ) /display/text_mode.h
123+ # 16 bit mode
122124 mkdir -p $(BUILD_DRIVERS ) /display/
123125 gcc -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_bios_c.o $(SRC_DRIVERS ) /display/text_mode_bios.c
124126 nasm -o $(SRC_DRIVERS ) /display/text_mode_bios_asm.o -f elf32 $(SRC_DRIVERS ) /display/text_mode_bios.asm
125127 ar rc $@ $(BUILD_DRIVERS ) /display/text_mode_bios_c.o $(SRC_DRIVERS ) /display/text_mode_bios_asm.o
126128
127129$(BUILD_DRIVERS ) /display/libtm_vga : $(SRC_DRIVERS ) /display/text_mode_vga.c $(SRC_DRIVERS ) /display/text_mode_vga.asm $(SRC_DRIVERS ) /display/text_mode.h
128130 mkdir -p $(BUILD_DRIVERS ) /display/
129- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_vga_c.o $(SRC_DRIVERS ) /display/text_mode_vga.c
131+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_vga_c.o $(SRC_DRIVERS ) /display/text_mode_vga.c
130132 nasm -o $(SRC_DRIVERS ) /display/text_mode_vga_asm.o -f elf32 $(SRC_DRIVERS ) /display/text_mode_vga.asm
131133 ar rc $@ $(BUILD_DRIVERS ) /display/text_mode_vga_c.o $(SRC_DRIVERS ) /display/text_mode_vga_asm.o
132134
133135$(BUILD_DRIVERS ) /keyboard/libkeyboard : $(SRC_DRIVERS ) /keyboard/keyboard.c $(SRC_DRIVERS ) /keyboard/keyboard.asm $(SRC_DRIVERS ) /keyboard/keyboard.h $(SRC_LIB_UTILS ) /time.h
134136 mkdir -p $(BUILD_DRIVERS ) /keyboard/
135- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /keyboard/keyboard_c.o $(SRC_DRIVERS ) /keyboard/keyboard.c
137+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /keyboard/keyboard_c.o $(SRC_DRIVERS ) /keyboard/keyboard.c
136138 nasm -o $(SRC_DRIVERS ) /keyboard/keyboard_asm.o -f elf32 $(SRC_DRIVERS ) /keyboard/keyboard.asm
137139 ar rc $@ $(BUILD_DRIVERS ) /keyboard/keyboard_c.o $(SRC_DRIVERS ) /keyboard/keyboard_asm.o
138140
139- $(BUILD_LIB_UTILS ) /libutils : $(SRC_LIB_UTILS ) /io.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /string.c $(SRC_LIB_UTILS ) /string.h $(SRC_LIB_UTILS ) /disk.c $(SRC_LIB_UTILS ) /disk.asm $(SRC_LIB_UTILS ) /disk.h $(SRC_LIB_UTILS ) /panic.c $(SRC_LIB_UTILS ) /panic.h $(SRC_LIB_UTILS ) /panic.asm $(SRC_LIB_UTILS ) /time.c $(SRC_LIB_UTILS ) /time.h $(SRC_LIB_UTILS ) /time.asm $(SRC_LIB_UTILS ) /color.c $(SRC_LIB_UTILS ) /color.h
141+ $(BUILD_LIB_UTILS ) /libutils_16 : $(SRC_LIB_UTILS ) /io.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /string.c $(SRC_LIB_UTILS ) /string.h $(SRC_LIB_UTILS ) /disk.c $(SRC_LIB_UTILS ) /disk.asm $(SRC_LIB_UTILS ) /disk.h $(SRC_LIB_UTILS ) /panic.c $(SRC_LIB_UTILS ) /panic.h $(SRC_LIB_UTILS ) /panic.asm $(SRC_LIB_UTILS ) /time.c $(SRC_LIB_UTILS ) /time.h $(SRC_LIB_UTILS ) /time.asm $(SRC_LIB_UTILS ) /color.c $(SRC_LIB_UTILS ) /color.h
140142 mkdir -p $(BUILD_LIB_UTILS ) /
141143 gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /io.o $(SRC_LIB_UTILS ) /io.c
142144 gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /string.o $(SRC_LIB_UTILS ) /string.c
@@ -149,14 +151,27 @@ $(BUILD_LIB_UTILS)/libutils: $(SRC_LIB_UTILS)/io.c $(SRC_LIB_UTILS)/io.h $(SRC_L
149151 nasm -o $(BUILD_LIB_UTILS ) /time_asm.o -f elf32 $(SRC_LIB_UTILS ) /time.asm
150152 ar rc $@ $(BUILD_LIB_UTILS ) /io.o $(BUILD_LIB_UTILS ) /string.o $(BUILD_LIB_UTILS ) /color.o $(BUILD_LIB_UTILS ) /disk_c.o $(BUILD_LIB_UTILS ) /disk_asm.o $(BUILD_LIB_UTILS ) /panic_c.o $(BUILD_LIB_UTILS ) /panic_asm.o $(BUILD_LIB_UTILS ) /time_c.o $(BUILD_LIB_UTILS ) /time_asm.o
151153
154+ $(BUILD_LIB_UTILS ) /libutils : $(SRC_LIB_UTILS ) /io.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /string.c $(SRC_LIB_UTILS ) /string.h $(SRC_LIB_UTILS ) /disk.c $(SRC_LIB_UTILS ) /disk.asm $(SRC_LIB_UTILS ) /disk.h $(SRC_LIB_UTILS ) /panic.c $(SRC_LIB_UTILS ) /panic.h $(SRC_LIB_UTILS ) /panic.asm $(SRC_LIB_UTILS ) /time.c $(SRC_LIB_UTILS ) /time.h $(SRC_LIB_UTILS ) /time.asm $(SRC_LIB_UTILS ) /color.c $(SRC_LIB_UTILS ) /color.h
155+ mkdir -p $(BUILD_LIB_UTILS ) /
156+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /io.o $(SRC_LIB_UTILS ) /io.c
157+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /string.o $(SRC_LIB_UTILS ) /string.c
158+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /color.o $(SRC_LIB_UTILS ) /color.c
159+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /disk_c.o $(SRC_LIB_UTILS ) /disk.c
160+ nasm -o $(BUILD_LIB_UTILS ) /disk_asm.o -f elf32 $(SRC_LIB_UTILS ) /disk.asm
161+ gcc -m32 -fno-pie -c -D__SOURCE_SNAPSHOT__=$(SOURCE_SNAPSHOT ) -Isrc -o $(BUILD_LIB_UTILS ) /panic_c.o $(SRC_LIB_UTILS ) /panic.c
162+ nasm -o $(BUILD_LIB_UTILS ) /panic_asm.o -f elf32 $(SRC_LIB_UTILS ) /panic.asm
163+ gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /time_c.o $(SRC_LIB_UTILS ) /time.c
164+ nasm -o $(BUILD_LIB_UTILS ) /time_asm.o -f elf32 $(SRC_LIB_UTILS ) /time.asm
165+ ar rc $@ $(BUILD_LIB_UTILS ) /io.o $(BUILD_LIB_UTILS ) /string.o $(BUILD_LIB_UTILS ) /color.o $(BUILD_LIB_UTILS ) /disk_c.o $(BUILD_LIB_UTILS ) /disk_asm.o $(BUILD_LIB_UTILS ) /panic_c.o $(BUILD_LIB_UTILS ) /panic_asm.o $(BUILD_LIB_UTILS ) /time_c.o $(BUILD_LIB_UTILS ) /time_asm.o
166+
152167# User Applications
153- $(app_calc ) : $(app_entry ) $(SRC_APP ) /calc.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /time.h $(BUILD_LIB_UTILS ) /libutils # And dependecies :/
168+ $(app_calc ) : $(app_entry ) $(SRC_APP ) /calc.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /time.h $(BUILD_LIB_UTILS ) /libutils $( BUILD_DRIVERS ) /display/libtm_vga # And dependecies :/
154169 mkdir -p $$(dirname $(app_calc ) )
155170 gcc -m16 -fno-pie -c -Isrc -o $(BUILD_APP ) /calc.o $(SRC_APP ) /calc.c
156171 ld --oformat binary -m elf_i386 -Ttext 0x2000 --strip-all -o $@ $(app_entry ) $(BUILD_APP ) /calc.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_vga
157172 truncate --size=%512 $@
158173
159- $(app_tick_tac_toe ) : $(app_entry ) $(SRC_APP ) /tic_tac_toe.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /time.h $(BUILD_LIB_UTILS ) /libutils # And dependecies :/
174+ $(app_tick_tac_toe ) : $(app_entry ) $(SRC_APP ) /tic_tac_toe.c $(SRC_LIB_UTILS ) /io.h $(SRC_LIB_UTILS ) /time.h $(BUILD_LIB_UTILS ) /libutils $( BUILD_DRIVERS ) /display/libtm_vga # And dependecies :/
160175 mkdir -p $$(dirname $(app_tick_tac_toe ) )
161176 gcc -m16 -fno-pie -c -Isrc -o $(BUILD_APP ) /tic_tac_toe.o $(SRC_APP ) /tic_tac_toe.c
162177 ld --oformat binary -m elf_i386 -Ttext 0x2000 --strip-all -o $@ $(app_entry ) $(BUILD_APP ) /tic_tac_toe.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_vga
0 commit comments