@@ -48,10 +48,10 @@ SECTOR_COUNT_BT_STAGE2 = 19
48
48
SECTOR_START_SHARED_LIBRARY = 1
49
49
SECTOR_COUNT_SHARED_LIBRARY = 1
50
50
SECTOR_START_KERNEL = 27
51
- SECTOR_COUNT_KERNEL = 41
52
- SECTOR_START_APP_TTT = 68
51
+ SECTOR_COUNT_KERNEL = 33
52
+ SECTOR_START_APP_TTT = 60
53
53
SECTOR_COUNT_APP_TTT = 25
54
- SECTOR_START_APP_CALC = 93
54
+ SECTOR_START_APP_CALC = 85
55
55
SECTOR_COUNT_APP_CALC = 25
56
56
57
57
MEMORY_STATIC_LIBRARY = 0x7E00
@@ -63,6 +63,10 @@ SOURCE_SNAPSHOT="\"$$(git rev-parse --short HEAD)$$(git diff --quiet || echo '_u
63
63
# General Assumptions
64
64
# # Integer is 4 bytes
65
65
66
+ # Tools
67
+ CC =gcc -std=c++11 -Os
68
+
69
+ # Targets
66
70
rebuild : clean all_artifacts
67
71
68
72
test : $(image_vmdk ) $(wildcard tests/** /* )
@@ -157,7 +161,7 @@ $(bt_stage1): $(SRC_BOOTLOADER)/stage1.asm $(SRC_BOOTLOADER)/constants.asm $(SRC
157
161
$(bt_stage2 ) : $(SRC_BOOTLOADER ) /stage2.asm $(SRC_BOOTLOADER ) /stage2.c $(SRC_MEMMGR ) /tables/gdt.c $(SRC_BOOTLOADER ) /io.asm $(SRC_BOOTLOADER ) /constants.asm $(SRC_REALMODE ) /stub.asm $(BUILD_LIB_UTILS ) /libutils_16 $(BUILD_DRIVERS ) /display/libtm_bios $(BUILD_DRIVERS ) /disk/libdisk_16
158
162
mkdir -p $$(dirname $(bt_stage2 ) )
159
163
nasm -o $(BUILD_BOOTLOADER ) /stage2_asm.o -f elf32 -i $(SRC_BOOTLOADER ) / -i $(SRC_REALMODE ) / $(SRC_BOOTLOADER ) /stage2.asm
160
- gcc -m16 -fno-pie -c -Isrc \
164
+ $( CC ) -m16 -fno-pie -c -Isrc \
161
165
-D SECTOR_START_SHARED_LIBRARY=$(SECTOR_START_SHARED_LIBRARY ) \
162
166
-D SECTOR_COUNT_SHARED_LIBRARY=$(SECTOR_COUNT_SHARED_LIBRARY ) \
163
167
-D SECTOR_START_KERNEL=$(SECTOR_START_KERNEL ) \
@@ -179,7 +183,7 @@ $(kernel_core): $(SRC_KERNEL)/core.asm $(SRC_KERNEL)/core.c $(SRC_KERNEL)/essent
179
183
nasm -o $(BUILD_KERNEL ) /core_asm.o -f elf32 -i $(SRC_REALMODE ) / $(SRC_KERNEL ) /core.asm
180
184
nasm -o $(BUILD_KERNEL ) /process_asm.o -f elf32 -i $(SRC_REALMODE ) / $(SRC_KERNEL ) /process.asm
181
185
nasm -o $(BUILD_KERNEL ) /interrupts_asm.o -f elf32 $(SRC_KERNEL ) /interrupts.asm
182
- gcc -m32 -fno-pie -c -Isrc \
186
+ $( CC ) -m32 -fno-pie -c -Isrc \
183
187
-D SECTOR_START_APP_TTT=$(SECTOR_START_APP_TTT ) \
184
188
-D SECTOR_COUNT_APP_TTT=$(SECTOR_COUNT_APP_TTT ) \
185
189
-D MEMORY_LOCATION_KERNEL=$(MEMORY_LOCATION_KERNEL ) \
@@ -199,66 +203,66 @@ $(app_entry): $(SRC_LIB)/app/entry.asm
199
203
$(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
200
204
# 16 bit mode
201
205
mkdir -p $(BUILD_DRIVERS ) /display/
202
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_bios_c.o $(SRC_DRIVERS ) /display/text_mode_bios.c
206
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_bios_c.o $(SRC_DRIVERS ) /display/text_mode_bios.c
203
207
nasm -o $(SRC_DRIVERS ) /display/text_mode_bios_asm.o -f elf32 $(SRC_DRIVERS ) /display/text_mode_bios.asm
204
208
ar rc $@ $(BUILD_DRIVERS ) /display/text_mode_bios_c.o $(SRC_DRIVERS ) /display/text_mode_bios_asm.o
205
209
206
210
$(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
207
211
mkdir -p $(BUILD_DRIVERS ) /display/
208
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_vga_c.o $(SRC_DRIVERS ) /display/text_mode_vga.c
212
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /display/text_mode_vga_c.o $(SRC_DRIVERS ) /display/text_mode_vga.c
209
213
nasm -o $(SRC_DRIVERS ) /display/text_mode_vga_asm.o -f elf32 $(SRC_DRIVERS ) /display/text_mode_vga.asm
210
214
ar rc $@ $(BUILD_DRIVERS ) /display/text_mode_vga_c.o $(SRC_DRIVERS ) /display/text_mode_vga_asm.o
211
215
212
216
$(BUILD_DRIVERS ) /keyboard/libkeyboard : $(SRC_DRIVERS ) /keyboard/keyboard.c $(SRC_DRIVERS ) /keyboard/keyboard.asm $(SRC_DRIVERS ) /keyboard/keyboard.h $(SRC_DRIVERS ) /keyboard/scancode_handler.c $(SRC_LIB_UTILS ) /time.h $(SRC_LIB_DS ) /queue.h $(BUILD_LIB_DS ) /libds
213
217
mkdir -p $(BUILD_DRIVERS ) /keyboard/
214
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /keyboard/keyboard_c.o $(SRC_DRIVERS ) /keyboard/keyboard.c
218
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /keyboard/keyboard_c.o $(SRC_DRIVERS ) /keyboard/keyboard.c
215
219
nasm -o $(BUILD_DRIVERS ) /keyboard/keyboard_asm.o -f elf32 $(SRC_DRIVERS ) /keyboard/keyboard.asm
216
220
ar rc $@ $(BUILD_DRIVERS ) /keyboard/keyboard_c.o $(BUILD_DRIVERS ) /keyboard/keyboard_asm.o
217
221
218
222
$(BUILD_DRIVERS ) /disk/libdisk_16 : $(SRC_DRIVERS ) /disk/disk_16.c $(SRC_DRIVERS ) /disk/disk_16.asm $(SRC_DRIVERS ) /disk/disk.h
219
223
mkdir -p $(BUILD_DRIVERS ) /disk/
220
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /disk/disk_16_c.o $(SRC_DRIVERS ) /disk/disk_16.c
224
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /disk/disk_16_c.o $(SRC_DRIVERS ) /disk/disk_16.c
221
225
nasm -o $(BUILD_DRIVERS ) /disk/disk_16_asm.o -f elf32 $(SRC_DRIVERS ) /disk/disk_16.asm
222
226
ar rc $@ $(BUILD_DRIVERS ) /disk/disk_16_c.o $(BUILD_DRIVERS ) /disk/disk_16_asm.o
223
227
224
228
$(BUILD_DRIVERS ) /disk/libdisk : $(SRC_DRIVERS ) /disk/disk.c $(SRC_DRIVERS ) /disk/disk.asm $(SRC_DRIVERS ) /disk/disk.h $(SRC_REALMODE ) /stub.asm
225
229
mkdir -p $(BUILD_DRIVERS ) /disk/
226
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /disk/disk_c.o $(SRC_DRIVERS ) /disk/disk.c
230
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_DRIVERS ) /disk/disk_c.o $(SRC_DRIVERS ) /disk/disk.c
227
231
nasm -o $(BUILD_DRIVERS ) /disk/disk_asm.o -f elf32 -i $(SRC_REALMODE ) / $(SRC_DRIVERS ) /disk/disk.asm
228
232
ar rc $@ $(BUILD_DRIVERS ) /disk/disk_c.o $(BUILD_DRIVERS ) /disk/disk_asm.o
229
233
230
234
$(BUILD_LIB_UTILS ) /libutils_16 : $(SRC_LIB_UTILS ) /basic.c $(SRC_LIB_UTILS ) /basic_16.asm $(SRC_LIB_UTILS ) /logging.c $(SRC_LIB_UTILS ) /output.c $(SRC_LIB_UTILS ) /output.h $(SRC_LIB_UTILS ) /string.c $(SRC_LIB_UTILS ) /string.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
231
235
mkdir -p $(BUILD_LIB_UTILS ) /
232
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /basic_16_c.o $(SRC_LIB_UTILS ) /basic.c
236
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /basic_16_c.o $(SRC_LIB_UTILS ) /basic.c
233
237
nasm -o $(BUILD_LIB_UTILS ) /basic_16_asm.o -f elf32 $(SRC_LIB_UTILS ) /basic_16.asm
234
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /logging_16.o $(SRC_LIB_UTILS ) /logging.c
235
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /output_16.o $(SRC_LIB_UTILS ) /output.c
236
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /string_16.o $(SRC_LIB_UTILS ) /string.c
237
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /color_16.o $(SRC_LIB_UTILS ) /color.c
238
- gcc -m16 -fno-pie -c -D__SOURCE_SNAPSHOT__=$(SOURCE_SNAPSHOT ) -Isrc -o $(BUILD_LIB_UTILS ) /panic_16_c.o $(SRC_LIB_UTILS ) /panic.c
238
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /logging_16.o $(SRC_LIB_UTILS ) /logging.c
239
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /output_16.o $(SRC_LIB_UTILS ) /output.c
240
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /string_16.o $(SRC_LIB_UTILS ) /string.c
241
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /color_16.o $(SRC_LIB_UTILS ) /color.c
242
+ $( CC ) -m16 -fno-pie -c -D__SOURCE_SNAPSHOT__=$(SOURCE_SNAPSHOT ) -Isrc -o $(BUILD_LIB_UTILS ) /panic_16_c.o $(SRC_LIB_UTILS ) /panic.c
239
243
nasm -o $(BUILD_LIB_UTILS ) /panic_16_asm.o -f elf32 $(SRC_LIB_UTILS ) /panic.asm
240
- gcc -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /time_16_c.o $(SRC_LIB_UTILS ) /time.c
244
+ $( CC ) -m16 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /time_16_c.o $(SRC_LIB_UTILS ) /time.c
241
245
nasm -o $(BUILD_LIB_UTILS ) /time_16_asm.o -f elf32 $(SRC_LIB_UTILS ) /time.asm
242
246
ar rc $@ $(BUILD_LIB_UTILS ) /basic_16_asm.o $(BUILD_LIB_UTILS ) /basic_16_c.o $(BUILD_LIB_UTILS ) /logging_16.o $(BUILD_LIB_UTILS ) /output_16.o $(BUILD_LIB_UTILS ) /string_16.o $(BUILD_LIB_UTILS ) /color_16.o $(BUILD_LIB_UTILS ) /panic_16_c.o $(BUILD_LIB_UTILS ) /panic_16_asm.o $(BUILD_LIB_UTILS ) /time_16_c.o $(BUILD_LIB_UTILS ) /time_16_asm.o
243
247
244
248
$(BUILD_LIB_UTILS ) /libutils : $(SRC_LIB_UTILS ) /basic.c $(SRC_LIB_UTILS ) /basic.asm $(SRC_LIB_UTILS ) /logging.c $(SRC_LIB_UTILS ) /output.c $(SRC_LIB_UTILS ) /output.h $(SRC_LIB_UTILS ) /input.c $(SRC_LIB_UTILS ) /input.h $(SRC_LIB_UTILS ) /string.c $(SRC_LIB_UTILS ) /string.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
245
249
mkdir -p $(BUILD_LIB_UTILS ) /
246
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /basic_c.o $(SRC_LIB_UTILS ) /basic.c
250
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /basic_c.o $(SRC_LIB_UTILS ) /basic.c
247
251
nasm -o $(BUILD_LIB_UTILS ) /basic_asm.o -f elf32 $(SRC_LIB_UTILS ) /basic.asm
248
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /logging.o $(SRC_LIB_UTILS ) /logging.c
249
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /output.o $(SRC_LIB_UTILS ) /output.c
250
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /input.o $(SRC_LIB_UTILS ) /input.c
251
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /string.o $(SRC_LIB_UTILS ) /string.c
252
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /color.o $(SRC_LIB_UTILS ) /color.c
253
- gcc -m32 -fno-pie -c -D__SOURCE_SNAPSHOT__=$(SOURCE_SNAPSHOT ) -Isrc -o $(BUILD_LIB_UTILS ) /panic_c.o $(SRC_LIB_UTILS ) /panic.c
252
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /logging.o $(SRC_LIB_UTILS ) /logging.c
253
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /output.o $(SRC_LIB_UTILS ) /output.c
254
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /input.o $(SRC_LIB_UTILS ) /input.c
255
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /string.o $(SRC_LIB_UTILS ) /string.c
256
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /color.o $(SRC_LIB_UTILS ) /color.c
257
+ $( CC ) -m32 -fno-pie -c -D__SOURCE_SNAPSHOT__=$(SOURCE_SNAPSHOT ) -Isrc -o $(BUILD_LIB_UTILS ) /panic_c.o $(SRC_LIB_UTILS ) /panic.c
254
258
nasm -o $(BUILD_LIB_UTILS ) /panic_asm.o -f elf32 $(SRC_LIB_UTILS ) /panic.asm
255
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /time_c.o $(SRC_LIB_UTILS ) /time.c
259
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_UTILS ) /time_c.o $(SRC_LIB_UTILS ) /time.c
256
260
nasm -o $(BUILD_LIB_UTILS ) /time_asm.o -f elf32 $(SRC_LIB_UTILS ) /time.asm
257
261
ar rc $@ $(BUILD_LIB_UTILS ) /basic_asm.o $(BUILD_LIB_UTILS ) /basic_c.o $(BUILD_LIB_UTILS ) /logging.o $(BUILD_LIB_UTILS ) /output.o $(BUILD_LIB_UTILS ) /input.o $(BUILD_LIB_UTILS ) /string.o $(BUILD_LIB_UTILS ) /color.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
258
262
259
263
$(BUILD_LIB_DS ) /libds : $(SRC_LIB_DS ) /queue.h $(SRC_LIB_DS ) /queue.c
260
264
mkdir -p $(BUILD_LIB_DS ) /
261
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_DS ) /queue.o $(SRC_LIB_DS ) /queue.c
265
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_LIB_DS ) /queue.o $(SRC_LIB_DS ) /queue.c
262
266
ar rc $@ $(BUILD_LIB_DS ) /queue.o
263
267
264
268
$(BUILD_LIB_SYSCALL ) /libsyscall : $(SRC_LIB_SYSCALL ) /syscall.h $(SRC_LIB_SYSCALL ) /syscall.asm
@@ -269,12 +273,12 @@ $(BUILD_LIB_SYSCALL)/libsyscall: $(SRC_LIB_SYSCALL)/syscall.h $(SRC_LIB_SYSCALL)
269
273
# User Applications
270
274
$(app_calc ) : $(app_entry ) $(SRC_APP ) /calc.c $(SRC_LIB_UTILS ) /output.h $(SRC_LIB_UTILS ) /time.h $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_vga $(BUILD_LIB_SYSCALL ) /libsyscall # And dependecies :/
271
275
mkdir -p $$(dirname $(app_calc ) )
272
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_APP ) /calc.o $(SRC_APP ) /calc.c
276
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_APP ) /calc.o $(SRC_APP ) /calc.c
273
277
ld --oformat binary -m elf_i386 -Ttext 0x0 --strip-all -o $@ $(app_entry ) $(BUILD_APP ) /calc.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_vga $(BUILD_LIB_SYSCALL ) /libsyscall
274
278
truncate --size=%512 $@
275
279
276
280
$(app_tic_tac_toe ) : $(app_entry ) $(SRC_APP ) /tic_tac_toe.c $(SRC_LIB_UTILS ) /output.h $(SRC_LIB_UTILS ) /input.h $(SRC_LIB_UTILS ) /time.h $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_vga $(BUILD_LIB_SYSCALL ) /libsyscall # And dependecies :/
277
281
mkdir -p $$(dirname $(app_tic_tac_toe ) )
278
- gcc -m32 -fno-pie -c -Isrc -o $(BUILD_APP ) /tic_tac_toe.o $(SRC_APP ) /tic_tac_toe.c
282
+ $( CC ) -m32 -fno-pie -c -Isrc -o $(BUILD_APP ) /tic_tac_toe.o $(SRC_APP ) /tic_tac_toe.c
279
283
ld --oformat binary -m elf_i386 -Ttext 0x0 --strip-all -o $@ $(app_entry ) $(BUILD_APP ) /tic_tac_toe.o $(BUILD_LIB_UTILS ) /libutils $(BUILD_DRIVERS ) /display/libtm_vga $(BUILD_LIB_SYSCALL ) /libsyscall
280
284
truncate --size=%512 $@
0 commit comments