Rev 8131 | Rev 8150 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8131 | Rev 8148 | ||
---|---|---|---|
Line 823... | Line 823... | ||
823 | then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}} |
823 | then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}} |
824 | else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}} |
824 | else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}} |
825 | end |
825 | end |
826 | end |
826 | end |
Line 827... | Line 827... | ||
827 | 827 | ||
828 | -- generate command and dependencies for kolibri.raw |
828 | -- kolibri.raw |
829 | input_deps = {"kolibri.img", |
829 | raw_mbr = "../programs/hd_load/usb_boot/mbr" |
- | 830 | raw_bootsector = "../kernel/trunk/bootloader/extended_primary_loader/fat32/bootsect.bin" |
|
- | 831 | raw_files = { |
|
830 | "../kernel/trunk/bootloader/extended_primary_loader/fat32/kordldr.f32", |
832 | {"KOLIBRI.IMG", "kolibri.img"}, |
831 | "../kernel/trunk/bootloader/extended_primary_loader/fat32/bootsect.bin", |
833 | {"KORDLDR.F32", "../kernel/trunk/bootloader/extended_primary_loader/fat32/kordldr.f32"}, |
- | 834 | {"KERNEL.MNT", "../kernel/trunk/kernel.mnt.ext_loader"}, |
|
832 | "../kernel/trunk/kernel.mnt.ext_loader", |
835 | {"CONFIG.INI", "../kernel/trunk/bootloader/extended_primary_loader/config.ini"}, |
- | 836 | {"EFI/BOOT/BOOTX64.EFI", "../kernel/trunk/bootloader/uefi4kos/kolibri.efi"}, |
|
833 | "../kernel/trunk/bootloader/uefi4kos/kolibri.efi", |
837 | {"EFI/BOOT/KOLIBRI.IMG", "kolibri.img"}, |
834 | "../kernel/trunk/bootloader/uefi4kos/kolibri.ini", |
838 | {"EFI/BOOT/KOLIBRI.INI", "../kernel/trunk/bootloader/uefi4kos/kolibri.ini"}, |
- | 839 | {"EFI/BOOT/KOLIBRI.KRN", "../kernel/trunk/kolibri.krn"} |
|
- | 840 | } |
|
- | 841 | ||
835 | "../kernel/trunk/kolibri.krn", |
842 | for i,v in ipairs(img_files) do |
- | 843 | raw_file = "KOLIBRIOS/" .. string.upper(v[1]) |
|
- | 844 | local_file = v[2] |
|
- | 845 | tup.append_table(raw_files, {{raw_file, local_file}}) |
|
- | 846 | end |
|
- | 847 | ||
- | 848 | tup.append_table(raw_files, extra_files) |
|
836 | "../programs/hd_load/usb_boot/mbr"} |
849 | |
837 | make_raw_command = '^ MKIMG kolibri.raw^ ' -- for tup: don't write full command to logs |
850 | make_raw_command = '^ MKIMG kolibri.raw^ ' -- for tup: don't write full command to logs |
838 | make_raw_command = make_raw_command .. "dd if=/dev/zero of=kolibri.raw bs=1MiB count=64 2>&1" |
851 | make_raw_command = make_raw_command .. "dd if=/dev/zero of=kolibri.raw bs=1MiB count=128 2>&1" |
839 | make_raw_command = make_raw_command .. " && parted --script kolibri.raw mktable gpt" |
852 | make_raw_command = make_raw_command .. " && parted --script kolibri.raw mktable gpt" |
840 | make_raw_command = make_raw_command .. " && parted --script kolibri.raw unit MiB mkpart primary fat32 1 63" |
853 | make_raw_command = make_raw_command .. " && parted --script kolibri.raw unit MiB mkpart primary fat32 1 127" |
841 | make_raw_command = make_raw_command .. " && parted --script kolibri.raw set 1 esp on" |
854 | make_raw_command = make_raw_command .. " && parted --script kolibri.raw set 1 esp on" |
842 | make_raw_command = make_raw_command .. " && sgdisk kolibri.raw --hybrid 1:EE" |
855 | make_raw_command = make_raw_command .. " && sgdisk kolibri.raw --hybrid 1:EE" |
843 | make_raw_command = make_raw_command .. " && dd if=../programs/hd_load/usb_boot/mbr of=kolibri.raw bs=1 count=\\$((0x1b8)) conv=notrunc" |
856 | make_raw_command = make_raw_command .. " && dd if=" .. raw_mbr .. " of=kolibri.raw bs=1 count=\\$((0x1b8)) conv=notrunc" |
844 | make_raw_command = make_raw_command .. " && dd if=../programs/hd_load/usb_boot/mbr of=kolibri.raw bs=1 count=1 skip=\\$((0x5a)) seek=\\$((0x1be)) conv=notrunc" |
- | |
845 | bootsector = "../kernel/trunk/bootloader/extended_primary_loader/fat32/bootsect.bin" |
857 | make_raw_command = make_raw_command .. " && dd if=" .. raw_mbr .. " of=kolibri.raw bs=1 count=1 skip=\\$((0x5a)) seek=\\$((0x1be)) conv=notrunc" |
846 | make_raw_command = make_raw_command .. " && mformat -i kolibri.raw@@1M -v KOLIBRIOS -T 126976 -h 16 -s 32 -H 2048 -c 1 -F -B " .. bootsector .. " ::" |
858 | make_raw_command = make_raw_command .. " && mformat -i kolibri.raw@@1M -v KOLIBRIOS -T \\$(((128-1-1)*1024*1024/512)) -h 16 -s 32 -H 2048 -c 1 -F -B " .. raw_bootsector .. " ::" |
847 | -- BIOS boot |
- | |
848 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M ../kernel/trunk/kernel.mnt.ext_loader ::KERNEL.MNT" |
859 | |
849 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M kolibri.img ::KOLIBRI.IMG" |
- | |
850 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M ../kernel/trunk/bootloader/extended_primary_loader/fat32/kordldr.f32 ::KORDLDR.F32" |
- | |
851 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M ../kernel/trunk/bootloader/extended_primary_loader/config.ini ::CONFIG.INI" |
860 | -- generate list of directories to be created inside kolibri.raw |
852 | -- UEFI boot |
861 | raw_dirs = {} |
853 | make_raw_command = make_raw_command .. ' && mmd -i kolibri.raw@@1M ::EFI' |
862 | input_deps = {raw_mbr, raw_bootsector} |
854 | make_raw_command = make_raw_command .. ' && mmd -i kolibri.raw@@1M ::EFI/BOOT' |
- | |
855 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M ../kernel/trunk/bootloader/uefi4kos/kolibri.efi ::EFI/BOOT/BOOTX64.EFI" |
- | |
856 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M ../kernel/trunk/bootloader/uefi4kos/kolibri.ini ::EFI/BOOT/KOLIBRI.INI" |
863 | for i,v in ipairs(raw_files) do |
857 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M ../kernel/trunk/kolibri.krn ::EFI/BOOT/KOLIBRI.KRN" |
864 | raw_file = v[1] |
Line -... | Line 865... | ||
- | 865 | local_file = v[2] |
|
- | 866 | ||
- | 867 | if raw_file ~= "/" then |
|
- | 868 | slash_pos = 0 |
|
- | 869 | while true do |
|
- | 870 | slash_pos = string.find(raw_file, '/', slash_pos + 1) |
|
- | 871 | if not slash_pos then break end |
|
- | 872 | table.insert(raw_dirs, string.sub(raw_file, 1, slash_pos - 1)) |
|
- | 873 | end |
|
- | 874 | end |
|
- | 875 | ||
- | 876 | -- tup does not want to see hidden files as dependencies |
|
- | 877 | if not string.match(local_file, "/%.") then |
|
- | 878 | table.insert(input_deps, v.group or local_file) |
|
- | 879 | end |
|
858 | make_raw_command = make_raw_command .. " && mcopy -moi kolibri.raw@@1M kolibri.img ::EFI/BOOT/KOLIBRI.IMG" |
880 | end |
- | 881 | ||
- | 882 | -- img_files and extra_files have some common dirs with different case |
|
- | 883 | for i,d in ipairs(raw_dirs) do |
|
Line 859... | Line 884... | ||
859 | 884 | raw_dirs[i] = string.upper(raw_dirs[i]) |
|
860 | make_raw_command = make_raw_command .. ' && mmd -i kolibri.raw@@1M ::KOLIBRIOS' |
885 | end |
861 | 886 | ||
862 | -- make folders |
887 | -- make folders |
863 | table.sort(img_dirs) |
888 | table.sort(raw_dirs) |
864 | for i,v in ipairs(img_dirs) do |
889 | for i,v in ipairs(raw_dirs) do |
865 | if v ~= img_dirs[i-1] then |
890 | if v ~= raw_dirs[i-1] then |
Line -... | Line 891... | ||
- | 891 | make_raw_command = make_raw_command .. ' && mmd -i kolibri.raw@@1M "::' .. v .. '"' |
|
866 | make_raw_command = make_raw_command .. ' && mmd -i kolibri.raw@@1M "::KOLIBRIOS/' .. v .. '"' |
892 | end |
867 | end |
893 | end |
868 | end |
894 | |
869 | 895 | -- copy files |
|
Line 870... | Line 896... | ||
870 | for i,v in ipairs(img_files) do |
896 | for i,v in ipairs(raw_files) do |
871 | local_file = v[2] |
897 | local_file = v[2] |