71
71
# install necessary packages, compile cross-compiler etc..
72
72
tools : fonts
73
73
make --quiet -C tools all
74
+ make --quiet -C boot gnuefi
74
75
75
76
tools_workflow0 : fonts
76
77
make --quiet -C tools do_initrd
@@ -84,11 +85,19 @@ tools_workflow2:
84
85
tools_workflow3 :
85
86
make --quiet -C tools do_gcc
86
87
87
- build : build_kernel build_libc build_userspace build_image
88
+ tools_workflow4 :
89
+ make --quiet -C boot gnuefi
90
+
91
+ build : build_bootloader build_kernel build_libc build_userspace build_image
88
92
89
93
rebuild : clean build
90
94
91
95
# quickly build the operating system (it won't create the ISO file and doxygen documentation)
96
+ build_bootloader :
97
+ ifeq ($(BOOTLOADER ) , lynx)
98
+ make --quiet -C boot build
99
+ endif
100
+
92
101
build_kernel :
93
102
make -j$(shell nproc) --quiet -C kernel build
94
103
@@ -99,18 +108,26 @@ build_libc:
99
108
make --quiet -C libc build
100
109
101
110
build_image :
102
- mkdir -p limine-bootloader
111
+ mkdir -p iso_tmp_data
103
112
tar cf initrd.tar.gz -C resources/initrd/ ./ --format=ustar
104
- cp kernel/kernel.fsys limine.cfg initrd.tar.gz startup.nsh \
105
- ${LIMINE_FOLDER} /limine.sys \
106
- ${LIMINE_FOLDER} /limine-cd.bin \
107
- ${LIMINE_FOLDER} /limine-cd-efi.bin \
108
- limine-bootloader/
113
+ cp kernel/kernel.fsys initrd.tar.gz startup.nsh \
114
+ iso_tmp_data/
115
+ ifeq ($(BOOTLOADER ) , lynx)
116
+ cp lynx.cfg boot/BIOS/loader.bin boot/UEFI/efi-loader.bin iso_tmp_data/
117
+ xorriso -as mkisofs -b loader.bin \
118
+ -no-emul-boot -boot-load-size 4 -boot-info-table \
119
+ --efi-boot efi-loader.bin \
120
+ -efi-boot-part --efi-boot-image --protective-msdos-label \
121
+ iso_tmp_data -o $(OSNAME).iso
122
+ endif
123
+ ifeq ($(BOOTLOADER ) , limine)
124
+ cp limine.cfg ${LIMINE_FOLDER}/limine.sys ${LIMINE_FOLDER}/limine-cd.bin ${LIMINE_FOLDER}/limine-cd-efi.bin iso_tmp_data/
109
125
xorriso -as mkisofs -b limine-cd.bin \
110
126
-no-emul-boot -boot-load-size 4 -boot-info-table \
111
127
--efi-boot limine-cd-efi.bin \
112
128
-efi-boot-part --efi-boot-image --protective-msdos-label \
113
- limine-bootloader -o $(OSNAME ) .iso
129
+ iso_tmp_data -o $(OSNAME).iso
130
+ endif
114
131
115
132
vscode_debug : build_kernel build_libc build_userspace build_image
116
133
rm -f serial.log
@@ -129,7 +146,10 @@ run: build qemu_vdisk qemu
129
146
130
147
# clean
131
148
clean :
132
- rm -rf doxygen-doc limine-bootloader initrd.tar.gz * .iso
149
+ rm -rf doxygen-doc iso_tmp_data initrd.tar.gz * .iso
150
+ ifeq ($(BOOTLOADER ) , lynx)
151
+ make --quiet -C boot clean
152
+ endif
133
153
make --quiet -C tools clean
134
154
make --quiet -C kernel clean
135
155
make --quiet -C userspace clean
0 commit comments