Subversion Repositories Kolibri OS

Rev

Rev 7591 | Rev 7606 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7591 Rev 7592
1
-- Do nothing unless explicitly requested in tup.config.
1
-- Do nothing unless explicitly requested in tup.config.
2
build_type = tup.getconfig('BUILD_TYPE')
2
build_type = tup.getconfig('BUILD_TYPE')
3
if build_type == "" then
3
if build_type == "" then
4
  return
4
  return
5
end
5
end
6
 
6
 
7
--[================================[ DATA ]================================]--
7
--[================================[ DATA ]================================]--
8
 
8
 
9
PROGS = "../programs"
9
PROGS = "../programs"
10
 
10
 
11
-- Static data that doesn't need to be compiled
11
-- Static data that doesn't need to be compiled
12
-- Files to be included in kolibri.img.
12
-- Files to be included in kolibri.img.
13
-- The first subitem of every item is name inside kolibri.img, the second is name of local file.
13
-- The first subitem of every item is name inside kolibri.img, the second is name of local file.
14
img_files = {
14
img_files = {
15
 {"MACROS.INC", PROGS .. "/macros.inc"},
15
 {"MACROS.INC", PROGS .. "/macros.inc"},
16
 {"CONFIG.INC", PROGS .. "/config.inc"},
16
 {"CONFIG.INC", PROGS .. "/config.inc"},
17
 {"STRUCT.INC", PROGS .. "/struct.inc"},
17
 {"STRUCT.INC", PROGS .. "/struct.inc"},
18
 {"FB2READ", "common/fb2read"},
18
 {"FB2READ", "common/fb2read"},
19
 {"ALLGAMES", "common/allgames"},
19
 {"ALLGAMES", "common/allgames"},
20
 {"ICONS32.PNG", "common/icons32.png"},
20
 {"ICONS32.PNG", "common/icons32.png"},
21
 {"ICONS16.PNG", "common/icons16.png"},
21
 {"ICONS16.PNG", "common/icons16.png"},
22
 {"INDEX.HTM", "common/index_htm"},
22
 {"INDEX.HTM", "common/index_htm"},
23
 {"KUZKINA.MID", "common/kuzkina.mid"},
23
 {"KUZKINA.MID", "common/kuzkina.mid"},
24
 {"LANG.INC", build_type .. "/lang.inc"},
24
 {"LANG.INC", build_type .. "/lang.inc"},
25
 {"NOTIFY3.PNG", "common/notify3.png"},
25
 {"NOTIFY3.PNG", "common/notify3.png"},
26
 {"TOOLBAR.PNG", PROGS .. "/cmm/txtread/toolbar.png"},
26
 {"TOOLBAR.PNG", PROGS .. "/cmm/txtread/toolbar.png"},
27
 {"VMODE", "common/vmode"},
27
 {"VMODE", "common/vmode"},
28
 {"3D/HOUSE.3DS", "common/3d/house.3ds"},
28
 {"3D/HOUSE.3DS", "common/3d/house.3ds"},
29
 {"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"},
29
 {"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"},
30
 {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
30
 {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
31
 {"File Managers/KFM.INI", "common/File Managers/kfm.ini"},
31
 {"File Managers/KFM.INI", "common/File Managers/kfm.ini"},
32
 {"File Managers/BUTTONS.BMP", PROGS .. "/fs/kfm/trunk/buttons.bmp"},
32
 {"File Managers/BUTTONS.BMP", PROGS .. "/fs/kfm/trunk/buttons.bmp"},
33
 {"File Managers/ICONS.BMP", PROGS .. "/fs/kfm/trunk/icons.bmp"},
33
 {"File Managers/ICONS.BMP", PROGS .. "/fs/kfm/trunk/icons.bmp"},
34
 {"File Managers/FNAV/ABOUT.TXT", "common/File Managers/fNav/About.txt"},
34
 {"File Managers/FNAV/ABOUT.TXT", "common/File Managers/fNav/About.txt"},
35
 {"File Managers/FNAV/FNAV", "common/File Managers/fNav/fNav.kex"},
35
 {"File Managers/FNAV/FNAV", "common/File Managers/fNav/fNav.kex"},
36
 {"File Managers/FNAV/FNAV.EXT", "common/File Managers/fNav/fnav.ext"},
36
 {"File Managers/FNAV/FNAV.EXT", "common/File Managers/fNav/fnav.ext"},
37
 {"File Managers/FNAV/FNAV.SET", "common/File Managers/fNav/fnav.set"},
37
 {"File Managers/FNAV/FNAV.SET", "common/File Managers/fNav/fnav.set"},
38
 {"File Managers/FNAV/FNAV_CUR.PNG", "common/File Managers/fNav/fnav_cur.png"},
38
 {"File Managers/FNAV/FNAV_CUR.PNG", "common/File Managers/fNav/fnav_cur.png"},
39
 {"File Managers/FNAV/FNAV_FNT.PNG", "common/File Managers/fNav/fnav_fnt.png"},
39
 {"File Managers/FNAV/FNAV_FNT.PNG", "common/File Managers/fNav/fnav_fnt.png"},
40
 {"File Managers/FNAV/FNAV_ICN.PNG", "common/File Managers/fNav/fnav_icn.png"},
40
 {"File Managers/FNAV/FNAV_ICN.PNG", "common/File Managers/fNav/fnav_icn.png"},
41
 {"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
41
 {"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
42
 {"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
42
 {"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
43
 {"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
43
 {"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
44
 {"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
44
 {"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
45
 {"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
45
 {"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
46
 {"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
46
 {"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
47
 {"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
47
 {"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
48
 {"MEDIA/IMGF/DITHER.OBJ", "common/media/ImgF/dither.obj"},
48
 {"MEDIA/IMGF/DITHER.OBJ", "common/media/ImgF/dither.obj"},
49
 {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
49
 {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
50
 {"MEDIA/PIXIE/SKIN.PNG", PROGS .. "/cmm/pixie2/skin.png"},
50
 {"MEDIA/PIXIE/SKIN.PNG", PROGS .. "/cmm/pixie2/skin.png"},
51
 {"NETWORK/FTPC.INI", PROGS .. "/network/ftpc/ftpc.ini"},
51
 {"NETWORK/FTPC.INI", PROGS .. "/network/ftpc/ftpc.ini"},
52
 {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
52
 {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
53
 {"NETWORK/USERS.INI", "common/network/users.ini"},
53
 {"NETWORK/USERS.INI", "common/network/users.ini"},
54
 {"NETWORK/TL_SYS_16.PNG", PROGS .. "/network/ftpc/tl_sys_16.png"},
54
 {"NETWORK/TL_SYS_16.PNG", PROGS .. "/network/ftpc/tl_sys_16.png"},
55
 {"NETWORK/TL_NOD_16.PNG", PROGS .. "/network/ftpc/tl_nod_16.png"},
55
 {"NETWORK/TL_NOD_16.PNG", PROGS .. "/network/ftpc/tl_nod_16.png"},
56
 {"SETTINGS/APP.INI", "common/settings/app.ini"},
56
 {"SETTINGS/APP.INI", "common/settings/app.ini"},
57
 {"SETTINGS/APP_PLUS.INI", "common/settings/app_plus.ini"},
57
 {"SETTINGS/APP_PLUS.INI", "common/settings/app_plus.ini"},
58
 {"SETTINGS/ASSOC.INI", "common/settings/assoc.ini"},
58
 {"SETTINGS/ASSOC.INI", "common/settings/assoc.ini"},
59
 {"SETTINGS/AUTORUN.DAT", "common/settings/AUTORUN.DAT"},
59
 {"SETTINGS/AUTORUN.DAT", "common/settings/AUTORUN.DAT"},
60
 {"SETTINGS/DOCKY.INI", "common/settings/docky.ini"},
60
 {"SETTINGS/DOCKY.INI", "common/settings/docky.ini"},
61
 {"SETTINGS/ESKIN.INI", "common/settings/eskin.ini"},
61
 {"SETTINGS/ESKIN.INI", "common/settings/eskin.ini"},
62
 {"SETTINGS/FB2READ.INI", "common/settings/fb2read.ini"},
62
 {"SETTINGS/FB2READ.INI", "common/settings/fb2read.ini"},
63
 {"SETTINGS/HOTANGLES.CFG", PROGS .. "/other/ha/SETTINGS/HOTANGLES.CFG"},
63
 {"SETTINGS/HOTANGLES.CFG", PROGS .. "/other/ha/SETTINGS/HOTANGLES.CFG"},
64
 {"SETTINGS/ICON.INI", build_type .. "/settings/icon.ini"},
64
 {"SETTINGS/ICON.INI", build_type .. "/settings/icon.ini"},
65
 {"SETTINGS/KEYMAP.KEY", PROGS .. "/system/taskbar/trunk/KEYMAP.KEY"},
65
 {"SETTINGS/KEYMAP.KEY", PROGS .. "/system/taskbar/trunk/KEYMAP.KEY"},
66
 {"SETTINGS/KOLIBRI.LBL", build_type .. "/settings/kolibri.lbl"},
66
 {"SETTINGS/KOLIBRI.LBL", build_type .. "/settings/kolibri.lbl"},
67
 {"SETTINGS/LANG.INI", build_type .. "/settings/lang.ini"},
67
 {"SETTINGS/LANG.INI", build_type .. "/settings/lang.ini"},
68
 {"SETTINGS/MENU.DAT", build_type .. "/settings/menu.dat"},
68
 {"SETTINGS/MENU.DAT", build_type .. "/settings/menu.dat"},
69
 {"SETTINGS/NETWORK.INI", "common/settings/network.ini"},
69
 {"SETTINGS/NETWORK.INI", "common/settings/network.ini"},
70
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
70
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
71
 {"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
71
 {"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
72
 {"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
72
 {"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
73
}
73
}
74
 
74
 
75
-- For russian build, add russian-only files.
75
-- For russian build, add russian-only files.
76
if build_type == "rus" then tup.append_table(img_files, {
76
if build_type == "rus" then tup.append_table(img_files, {
77
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt"},
77
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt"},
78
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/rus/.shell"},
78
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/rus/.shell"},
79
 {"SETTINGS/GAMES.INI", "rus/settings/games.ini"},
79
 {"SETTINGS/GAMES.INI", "rus/settings/games.ini"},
80
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
80
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
81
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"},
81
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"},
82
 {"PIPETKA", build_type .. "/pipetka"},
82
 {"PIPETKA", build_type .. "/pipetka"},
83
 {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
83
 {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
84
 {"GAMES/ATAKA", build_type .. "/games/ataka"},
84
 {"GAMES/ATAKA", build_type .. "/games/ataka"},
85
 {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
85
 {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
86
 {"GAMES/PADENIE", build_type .. "/games/padenie"}, 
86
 {"GAMES/PADENIE", build_type .. "/games/padenie"}, 
87
}) elseif build_type == "eng" then tup.append_table(img_files, {
87
}) elseif build_type == "eng" then tup.append_table(img_files, {
88
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
88
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
89
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
89
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
90
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
90
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
91
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
91
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
92
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
92
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
93
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, 
93
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, 
94
}) elseif build_type == "sp" then tup.append_table(img_files, {
94
}) elseif build_type == "sp" then tup.append_table(img_files, {
95
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
95
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
96
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
96
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
97
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
97
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
98
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
98
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
99
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
99
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
100
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, 
100
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"}, 
101
}) elseif build_type == "it" then tup.append_table(img_files, {
101
}) elseif build_type == "it" then tup.append_table(img_files, {
102
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
102
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
103
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
103
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
104
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
104
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
105
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
105
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
106
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey_it.ini"},
106
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey_it.ini"},
107
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
107
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
108
}) else tup.append_table(img_files, {
108
}) else tup.append_table(img_files, {
109
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
109
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
110
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
110
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
111
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
111
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
112
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
112
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
113
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
113
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
114
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
114
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
115
}) end
115
}) end
116
 
116
 
117
--[[
117
--[[
118
Files to be included in kolibri.iso and distribution kit outside of kolibri.img.
118
Files to be included in kolibri.iso and distribution kit outside of kolibri.img.
119
 
119
 
120
The first subitem of every item is name relative to the root of ISO or distribution kit,
120
The first subitem of every item is name relative to the root of ISO or distribution kit,
121
the second is name of local file.
121
the second is name of local file.
122
 
122
 
123
If the first subitem ends in /, the last component of local file name is appended.
123
If the first subitem ends in /, the last component of local file name is appended.
124
The last component of the second subitem may contain '*'; if so, it will be expanded
124
The last component of the second subitem may contain '*'; if so, it will be expanded
125
according to usual rules, but without matching directories.
125
according to usual rules, but without matching directories.
126
 
126
 
127
Tup does not allow a direct dependency on a file that is generated in a directory
127
Tup does not allow a direct dependency on a file that is generated in a directory
128
other than where Tupfile.lua is and its children. Most files are generated
128
other than where Tupfile.lua is and its children. Most files are generated
129
in the directory with Tupfile.lua; for other files, the item should contain
129
in the directory with Tupfile.lua; for other files, the item should contain
130
a named subitem "group=path/" and the file should be put in .
130
a named subitem "group=path/" and the file should be put in .
131
--]]
131
--]]
132
extra_files = {
132
extra_files = {
133
 {"/", "common/distr_data/autorun.inf"},
133
 {"/", "common/distr_data/autorun.inf"},
134
 {"/", "common/distr_data/KolibriOS_icon.ico"},
134
 {"/", "common/distr_data/KolibriOS_icon.ico"},
135
 {"/", build_type .. "/settings/kolibri.lbl"},
135
 {"/", build_type .. "/settings/kolibri.lbl"},
136
 {"Docs/stack.txt", build_type .. "/docs/STACK.TXT"},
136
 {"Docs/stack.txt", build_type .. "/docs/STACK.TXT"},
137
 {"HD_Load/9x2klbr/", "common/HD_load/9x2klbr/LDKLBR.VXD"},
137
 {"HD_Load/9x2klbr/", "common/HD_load/9x2klbr/LDKLBR.VXD"},
138
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/AUTOEXEC.BAT"},
138
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/AUTOEXEC.BAT"},
139
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/CONFIG.SYS"},
139
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/CONFIG.SYS"},
140
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme.txt"},
140
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme.txt"},
141
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme_Win.txt"},
141
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme_Win.txt"},
142
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_install.bat"},
142
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_install.bat"},
143
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_remove.bat"},
143
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_remove.bat"},
144
 {"HD_Load/", "common/HD_load/memdisk"},
144
 {"HD_Load/", "common/HD_load/memdisk"},
145
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot.rtf"},
145
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot.rtf"},
146
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
146
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
147
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
147
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
148
 {"kolibrios/3D/info3ds/INFO3DS.INI", PROGS .. "/develop/info3ds/info3ds.ini"},
148
 {"kolibrios/3D/info3ds/INFO3DS.INI", PROGS .. "/develop/info3ds/info3ds.ini"},
149
 {"kolibrios/3D/info3ds/OBJECTS.PNG", PROGS .. "/develop/info3ds/objects.png"},
149
 {"kolibrios/3D/info3ds/OBJECTS.PNG", PROGS .. "/develop/info3ds/objects.png"},
150
 {"kolibrios/3D/info3ds/TL_SYS_16.PNG", PROGS .. "/develop/info3ds/tl_sys_16.png"},
150
 {"kolibrios/3D/info3ds/TL_SYS_16.PNG", PROGS .. "/develop/info3ds/tl_sys_16.png"},
151
 {"kolibrios/3D/info3ds/TOOLBAR.PNG", PROGS .. "/develop/info3ds/toolbar.png"},
151
 {"kolibrios/3D/info3ds/TOOLBAR.PNG", PROGS .. "/develop/info3ds/toolbar.png"},
152
 {"kolibrios/3D/info3ds/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
152
 {"kolibrios/3D/info3ds/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
153
 {"kolibrios/3D/md2view/", "common/3d/md2view/*"},
153
 {"kolibrios/3D/md2view/", "common/3d/md2view/*"},
154
 {"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
154
 {"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
155
 {"kolibrios/3D/voxel_editor/VOX_EDITOR.INI", PROGS .. "/media/voxel_editor/trunk/vox_editor.ini"},
155
 {"kolibrios/3D/voxel_editor/VOX_EDITOR.INI", PROGS .. "/media/voxel_editor/trunk/vox_editor.ini"},
156
 {"kolibrios/3D/voxel_editor/HOUSE1.VOX", PROGS .. "/media/voxel_editor/trunk/house1.vox"},
156
 {"kolibrios/3D/voxel_editor/HOUSE1.VOX", PROGS .. "/media/voxel_editor/trunk/house1.vox"},
157
 {"kolibrios/3D/voxel_editor/HOUSE2.VOX", PROGS .. "/media/voxel_editor/trunk/house2.vox"},
157
 {"kolibrios/3D/voxel_editor/HOUSE2.VOX", PROGS .. "/media/voxel_editor/trunk/house2.vox"},
158
 {"kolibrios/3D/voxel_editor/SQUIRREL.VOX", PROGS .. "/media/voxel_editor/trunk/squirrel.vox"},
158
 {"kolibrios/3D/voxel_editor/SQUIRREL.VOX", PROGS .. "/media/voxel_editor/trunk/squirrel.vox"},
159
 {"kolibrios/3D/voxel_utilites/VOX_MOVER.INI" , PROGS .. "/media/voxel_editor/utilites/vox_mover.ini"},
159
 {"kolibrios/3D/voxel_utilites/VOX_MOVER.INI" , PROGS .. "/media/voxel_editor/utilites/vox_mover.ini"},
160
 {"kolibrios/3D/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
160
 {"kolibrios/3D/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
161
 {"kolibrios/3D/TOOLB_1.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/toolb_1.png"},
161
 {"kolibrios/3D/TOOLB_1.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/toolb_1.png"},
162
 {"kolibrios/3D/TEST_GLU1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu1"},
162
 {"kolibrios/3D/TEST_GLU1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu1"},
163
 {"kolibrios/3D/TEST_GLU2", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu2"},
163
 {"kolibrios/3D/TEST_GLU2", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu2"},
164
 {"kolibrios/3D/TEXT_2.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/text_2.png"},
164
 {"kolibrios/3D/TEXT_2.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/text_2.png"},
165
 {"kolibrios/develop/oberon07/", PROGS .. "/develop/oberon07/*"},
165
 {"kolibrios/develop/oberon07/", PROGS .. "/develop/oberon07/*"},
166
 {"kolibrios/develop/oberon07/Docs/", PROGS .. "/develop/oberon07/Docs/*"},
166
 {"kolibrios/develop/oberon07/Docs/", PROGS .. "/develop/oberon07/Docs/*"},
167
 {"kolibrios/develop/oberon07/Lib/KolibriOS/", PROGS .. "/develop/oberon07/Lib/KolibriOS/*"},
167
 {"kolibrios/develop/oberon07/Lib/KolibriOS/", PROGS .. "/develop/oberon07/Lib/KolibriOS/*"},
168
 {"kolibrios/develop/oberon07/Samples/", PROGS .. "/develop/oberon07/Samples/*"},
168
 {"kolibrios/develop/oberon07/Samples/", PROGS .. "/develop/oberon07/Samples/*"},
169
 {"kolibrios/develop/c--/", PROGS .. "/cmm/c--/*"},
169
 {"kolibrios/develop/c--/", PROGS .. "/cmm/c--/*"},
170
 {"kolibrios/develop/tcc/", "common/develop/tcc/*"},
170
 {"kolibrios/develop/tcc/", "common/develop/tcc/*"},
171
 {"kolibrios/develop/TinyBasic/", "common/develop/TinyBasic/*"},
171
 {"kolibrios/develop/TinyBasic/", "common/develop/TinyBasic/*"},
172
 {"kolibrios/utils/cnc_editor/cnc_editor", PROGS .. "/other/cnc_editor/cnc_editor"},
172
 {"kolibrios/utils/cnc_editor/cnc_editor", PROGS .. "/other/cnc_editor/cnc_editor"},
173
 {"kolibrios/utils/cnc_editor/kolibri.NC", PROGS .. "/other/cnc_editor/kolibri.NC"},
173
 {"kolibrios/utils/cnc_editor/kolibri.NC", PROGS .. "/other/cnc_editor/kolibri.NC"},
174
 {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
174
 {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
175
 {"kolibrios/emul/e80/readme.txt", PROGS .. "/emulator/e80/trunk/readme.txt"},
175
 {"kolibrios/emul/e80/readme.txt", PROGS .. "/emulator/e80/trunk/readme.txt"},
176
 {"kolibrios/emul/fceu/fceu", PROGS .. "/emulator/fceu/fceu"},
176
 {"kolibrios/emul/fceu/fceu", PROGS .. "/emulator/fceu/fceu"},
177
 {"kolibrios/emul/fceu/FCEU ReadMe.txt", PROGS .. "/emulator/fceu/FCEU ReadMe.txt"},
177
 {"kolibrios/emul/fceu/FCEU ReadMe.txt", PROGS .. "/emulator/fceu/FCEU ReadMe.txt"},
178
 {"kolibrios/emul/", "common/emul/gameboy"},
178
 {"kolibrios/emul/", "common/emul/gameboy"},
179
 {"kolibrios/emul/", "common/emul/pokemini"},
179
 {"kolibrios/emul/", "common/emul/pokemini"},
180
 {"kolibrios/emul/", "common/emul/scummvm"},
180
 {"kolibrios/emul/", "common/emul/scummvm"},
181
 {"kolibrios/emul/", "common/emul/zsnes"},
181
 {"kolibrios/emul/", "common/emul/zsnes"},
182
 {"kolibrios/demos/ak47.lif", "common/demos/ak47.lif"},
182
 {"kolibrios/demos/ak47.lif", "common/demos/ak47.lif"},
183
 {"kolibrios/demos/life2", "common/demos/life2"},
183
 {"kolibrios/demos/life2", "common/demos/life2"},
184
 {"kolibrios/demos/life3tb.png", PROGS .. "/games/life3/trunk/life3tb.png"},
184
 {"kolibrios/demos/life3tb.png", PROGS .. "/games/life3/trunk/life3tb.png"},
185
 {"kolibrios/demos/relay.lif", "common/demos/relay.lif"},
185
 {"kolibrios/demos/relay.lif", "common/demos/relay.lif"},
186
 {"kolibrios/demos/rpento.lif", "common/demos/rpento.lif"},
186
 {"kolibrios/demos/rpento.lif", "common/demos/rpento.lif"},
187
 {"kolibrios/games/BabyPainter", "common/games/BabyPainter"},
187
 {"kolibrios/games/BabyPainter", "common/games/BabyPainter"},
188
 {"kolibrios/games/bomber/ackack.bmp", PROGS .. "/games/bomber/ackack.bmp"},
188
 {"kolibrios/games/bomber/ackack.bmp", PROGS .. "/games/bomber/ackack.bmp"},
189
 {"kolibrios/games/bomber/bomb.bmp", PROGS .. "/games/bomber/bomb.bmp"},
189
 {"kolibrios/games/bomber/bomb.bmp", PROGS .. "/games/bomber/bomb.bmp"},
190
 {"kolibrios/games/bomber/plane.bmp", PROGS .. "/games/bomber/plane.bmp"},
190
 {"kolibrios/games/bomber/plane.bmp", PROGS .. "/games/bomber/plane.bmp"},
191
 {"kolibrios/games/bomber/tile.bmp", PROGS .. "/games/bomber/tile.bmp"},
191
 {"kolibrios/games/bomber/tile.bmp", PROGS .. "/games/bomber/tile.bmp"},
192
 {"kolibrios/games/doom1/", "common/games/doom/*"},
192
 {"kolibrios/games/doom1/", "common/games/doom/*"},
193
 {"kolibrios/games/fara/fara.gfx", "common/games/fara.gfx"},
193
 {"kolibrios/games/fara/fara.gfx", "common/games/fara.gfx"},
194
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
194
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
195
 {"kolibrios/games/knight", "common/games/knight"},
195
 {"kolibrios/games/knight", "common/games/knight"},
196
 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
196
 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
197
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
197
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
198
 {"kolibrios/games/mun/data/", "common/games/mun/data/*"},
198
 {"kolibrios/games/mun/data/", "common/games/mun/data/*"},
199
 {"kolibrios/games/mun/libc.dll", "common/games/mun/libc.dll"},
199
 {"kolibrios/games/mun/libc.dll", "common/games/mun/libc.dll"},
200
 {"kolibrios/games/mun/mun", "common/games/mun/mun"}, 
200
 {"kolibrios/games/mun/mun", "common/games/mun/mun"}, 
201
 {"kolibrios/games/pig/", "common/games/pig/*"},
201
 {"kolibrios/games/pig/", "common/games/pig/*"},
202
 {"kolibrios/games/soko/", "common/games/soko/*"},
202
 {"kolibrios/games/soko/", "common/games/soko/*"},
203
 {"kolibrios/games/sstartrek/", "common/games/sstartrek/*"},
203
 {"kolibrios/games/sstartrek/", "common/games/sstartrek/*"},
204
 {"kolibrios/games/the_bus/menu.png", PROGS .. "/cmm/the_bus/menu.png"},
204
 {"kolibrios/games/the_bus/menu.png", PROGS .. "/cmm/the_bus/menu.png"},
205
 {"kolibrios/games/the_bus/objects.png", PROGS .. "/cmm/the_bus/objects.png"},
205
 {"kolibrios/games/the_bus/objects.png", PROGS .. "/cmm/the_bus/objects.png"},
206
 {"kolibrios/games/the_bus/road.png", PROGS .. "/cmm/the_bus/road.png"},
206
 {"kolibrios/games/the_bus/road.png", PROGS .. "/cmm/the_bus/road.png"},
207
 {"kolibrios/grafx2/fonts/", "common/media/grafx2/fonts/*"},
207
 {"kolibrios/grafx2/fonts/", "common/media/grafx2/fonts/*"},
208
 {"kolibrios/grafx2/scripts/", "common/media/grafx2/scripts/libs/*"},
208
 {"kolibrios/grafx2/scripts/", "common/media/grafx2/scripts/libs/*"},
209
 {"kolibrios/grafx2/scripts/libs/", "common/media/grafx2/scripts/*"},
209
 {"kolibrios/grafx2/scripts/libs/", "common/media/grafx2/scripts/*"},
210
 {"kolibrios/grafx2/skins/", "common/media/grafx2/skins/*"},
210
 {"kolibrios/grafx2/skins/", "common/media/grafx2/skins/*"},
211
 {"kolibrios/grafx2/", "common/media/grafx2/*"},
211
 {"kolibrios/grafx2/", "common/media/grafx2/*"},
212
 {"kolibrios/drivers/drvinf.ini", "common/drivers/drvinf.ini"},
212
 {"kolibrios/drivers/drvinf.ini", "common/drivers/drvinf.ini"},
213
 {"kolibrios/drivers/ahci/", "common/drivers/ahci/*"},
213
 {"kolibrios/drivers/ahci/", "common/drivers/ahci/*"},
214
 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
214
 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
215
 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
215
 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
216
 {"kolibrios/drivers/test/", "common/drivers/test/*"},
216
 {"kolibrios/drivers/test/", "common/drivers/test/*"},
217
 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
217
 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
218
 {"kolibrios/lib/avcodec-56.dll", "common/lib/avcodec-56.dll"},
218
 {"kolibrios/lib/avcodec-56.dll", "common/lib/avcodec-56.dll"},
219
 {"kolibrios/lib/avdevice-56.dll", "common/lib/avdevice-56.dll"},
219
 {"kolibrios/lib/avdevice-56.dll", "common/lib/avdevice-56.dll"},
220
 {"kolibrios/lib/avformat-56.dll", "common/lib/avformat-56.dll"},
220
 {"kolibrios/lib/avformat-56.dll", "common/lib/avformat-56.dll"},
221
 {"kolibrios/lib/swscale-3.dll", "common/lib/swscale-3.dll"},
221
 {"kolibrios/lib/swscale-3.dll", "common/lib/swscale-3.dll"},
222
 {"kolibrios/lib/avutil-54.dll", "common/lib/avutil-54.dll"},
222
 {"kolibrios/lib/avutil-54.dll", "common/lib/avutil-54.dll"},
223
 {"kolibrios/lib/cairo2.dll", "common/lib/cairo2.dll"},
223
 {"kolibrios/lib/cairo2.dll", "common/lib/cairo2.dll"},
224
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
224
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
225
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
225
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
226
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
226
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
227
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
227
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
228
 {"kolibrios/lib/libeglut.dll", "common/lib/libeglut.dll"},
228
 {"kolibrios/lib/libeglut.dll", "common/lib/libeglut.dll"},
229
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
229
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
230
 {"kolibrios/lib/libjpeg.dll", "common/lib/libjpeg.dll"},
230
 {"kolibrios/lib/libjpeg.dll", "common/lib/libjpeg.dll"},
231
 {"kolibrios/lib/libpng16.dll", "common/lib/libpng16.dll"},
231
 {"kolibrios/lib/libpng16.dll", "common/lib/libpng16.dll"},
232
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
232
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
233
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
233
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
234
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
234
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
235
 {"kolibrios/lib/osmesa.dll", "common/lib/osmesa.dll"},
235
 {"kolibrios/lib/osmesa.dll", "common/lib/osmesa.dll"},
236
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
236
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
237
 {"kolibrios/lib/pixman-1.dll", "common/lib/pixman-1.dll"},
237
 {"kolibrios/lib/pixman-1.dll", "common/lib/pixman-1.dll"},
238
 {"kolibrios/lib/swresample-1.dll", "common/lib/swresample-1.dll"},
238
 {"kolibrios/lib/swresample-1.dll", "common/lib/swresample-1.dll"},
239
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
239
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
240
 {"kolibrios/media/fplay", "common/media/fplay"},
240
 {"kolibrios/media/fplay", "common/media/fplay"},
241
 {"kolibrios/media/fplay_run", "common/media/fplay_run"},
241
 {"kolibrios/media/fplay_run", "common/media/fplay_run"},
242
 {"kolibrios/media/updf", "common/media/updf"},
242
 {"kolibrios/media/updf", "common/media/updf"},
243
 {"kolibrios/media/vttf", "common/media/vttf"},
243
 {"kolibrios/media/vttf", "common/media/vttf"},
244
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
244
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
245
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
245
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
246
 {"kolibrios/res/skins/", "../skins/authors.txt"},
246
 {"kolibrios/res/skins/", "../skins/authors.txt"},
247
 {"kolibrios/res/templates/", "common/templates/*"},
247
 {"kolibrios/res/templates/", "common/templates/*"},
248
 {"kolibrios/res/wallpapers/", "common/wallpapers/*"},
248
 {"kolibrios/res/wallpapers/", "common/wallpapers/*"},
249
 }
249
 }
250
if build_type == "rus" then tup.append_table(extra_files, {
250
if build_type == "rus" then tup.append_table(extra_files, {
251
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
251
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
252
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
252
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
253
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
253
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
254
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
254
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
255
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
255
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
256
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
256
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
257
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
257
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
258
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
258
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
259
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
259
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
260
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
260
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
261
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
261
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
262
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
262
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
263
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
263
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
264
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
264
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
265
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
265
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
266
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
266
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
267
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
267
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
268
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
268
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
269
 {"kolibrios/games/Dungeons/Resources/Textures/Environment/", PROGS .. "/games/Dungeons/Resources/Textures/Environment/*"},
269
 {"kolibrios/games/Dungeons/Resources/Textures/Environment/", PROGS .. "/games/Dungeons/Resources/Textures/Environment/*"},
270
 {"kolibrios/games/Dungeons/Resources/Textures/Objects/", PROGS .. "/games/Dungeons/Resources/Textures/Objects/*"},
270
 {"kolibrios/games/Dungeons/Resources/Textures/Objects/", PROGS .. "/games/Dungeons/Resources/Textures/Objects/*"},
271
 {"kolibrios/games/Dungeons/Resources/Textures/HUD/", PROGS .. "/games/Dungeons/Resources/Textures/HUD/*"},
271
 {"kolibrios/games/Dungeons/Resources/Textures/HUD/", PROGS .. "/games/Dungeons/Resources/Textures/HUD/*"},
272
 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
272
 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
273
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
273
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
274
 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/whowtbam"},
274
 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/whowtbam"},
275
 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"},
275
 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"},
276
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
276
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
277
 {"kolibrios/res/guide/", build_type .. "/docs/guide/*"}, 
277
 {"kolibrios/res/guide/", build_type .. "/docs/guide/*"}, 
278
}) else tup.append_table(extra_files, {
278
}) else tup.append_table(extra_files, {
279
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
279
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
280
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
280
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
281
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
281
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
282
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
282
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
283
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
283
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
284
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
284
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
285
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
285
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
286
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
286
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
287
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
287
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
288
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
288
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
289
}) end
289
}) end
290
--[[
290
--[[
291
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
291
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
292
Same syntax as extra_files.
292
Same syntax as extra_files.
293
]]--
293
]]--
294
if build_type == "rus" then
294
if build_type == "rus" then
295
distr_extra_files = {
295
distr_extra_files = {
296
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
296
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
297
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
297
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
298
}
298
}
299
else
299
else
300
distr_extra_files = {
300
distr_extra_files = {
301
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
301
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
302
}
302
}
303
end
303
end
304
--[[
304
--[[
305
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
305
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
306
Same syntax as extra_files.
306
Same syntax as extra_files.
307
]]--
307
]]--
308
if build_type == "rus" then
308
if build_type == "rus" then
309
iso_extra_files = {
309
iso_extra_files = {
310
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
310
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
311
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
311
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
312
}
312
}
313
else
313
else
314
iso_extra_files = {
314
iso_extra_files = {
315
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
315
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
316
}
316
}
317
end
317
end
318
 
318
 
319
-- Programs that require FASM to compile.
319
-- Programs that require FASM to compile.
320
if tup.getconfig('NO_FASM') ~= 'full' then
320
if tup.getconfig('NO_FASM') ~= 'full' then
321
tup.append_table(img_files, {
321
tup.append_table(img_files, {
322
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
322
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
323
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
323
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
324
 {"@HOTANGLES", PROGS .. "/other/ha/HOTANGLES"},
324
 {"@HOTANGLES", PROGS .. "/other/ha/HOTANGLES"},
325
 {"@ICON", PROGS .. "/system/icon_new/icon"},
325
 {"@ICON", PROGS .. "/system/icon_new/icon"},
326
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
326
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
327
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
327
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
328
 {"@OPEN", PROGS .. "/system/open/open"},
328
 {"@OPEN", PROGS .. "/system/open/open"},
329
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
329
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
330
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
330
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
331
 {"@VOLUME", PROGS .. "/media/volume/volume"},
331
 {"@VOLUME", PROGS .. "/media/volume/volume"},
332
 {"HACONFIG", PROGS .. "/other/ha/HACONFIG"},
332
 {"HACONFIG", PROGS .. "/other/ha/HACONFIG"},
333
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
333
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
334
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
334
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
335
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
335
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
336
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
336
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
337
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
337
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
338
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
338
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
339
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
339
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
340
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
340
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
341
 {"DEFAULT.SKN", "../skins/Leency/Shkvorka/Shkvorka.skn"},
341
 {"DEFAULT.SKN", "../skins/Leency/Shkvorka/Shkvorka.skn"},
342
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
342
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
343
 {"END", PROGS .. "/system/end/light/end"},
343
 {"END", PROGS .. "/system/end/light/end"},
344
 {"ESKIN", PROGS .. "/system/eskin/trunk/eskin"},
344
 {"ESKIN", PROGS .. "/system/eskin/trunk/eskin"},
345
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
345
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
346
 {"GMON", PROGS .. "/system/gmon/gmon"},
346
 {"GMON", PROGS .. "/system/gmon/gmon"},
347
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
347
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
348
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
348
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
349
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
349
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
350
 {"KERPACK", PROGS .. "/other/outdated/kerpack/trunk/kerpack"},
350
 {"KERPACK", PROGS .. "/other/outdated/kerpack/trunk/kerpack"},
351
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
351
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
352
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
352
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
353
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
353
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
354
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
354
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
355
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
355
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
356
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
356
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
357
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
357
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
358
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
358
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
359
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
359
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
360
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
360
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
361
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
361
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
362
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
362
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
363
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
363
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
364
 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
364
 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
365
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
365
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
366
 {"TEST", PROGS .. "/system/test/trunk/test"},
366
 {"TEST", PROGS .. "/system/test/trunk/test"},
367
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
367
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
368
 {"UNZ", PROGS .. "/fs/unz/unz"},
368
 {"UNZ", PROGS .. "/fs/unz/unz"},
369
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
369
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
370
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
370
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
371
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
371
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
372
 {"3D/3DCUBE2", PROGS .. "/demos/3dcube2/trunk/3DCUBE2"},
372
 {"3D/3DCUBE2", PROGS .. "/demos/3dcube2/trunk/3DCUBE2"},
373
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
373
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
374
 {"3D/GEARS", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/gears"},
374
 {"3D/GEARS", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/gears"},
375
 {"3D/RAY", PROGS .. "/demos/ray/ray"},
375
 {"3D/RAY", PROGS .. "/demos/ray/ray"},
376
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
376
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
377
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
377
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
378
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
378
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
379
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
379
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
380
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
380
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
381
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
381
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
382
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
382
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
383
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
383
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
384
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
384
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
385
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
385
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
386
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
386
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
387
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
387
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
388
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
388
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
389
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
389
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
390
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
390
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
391
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
391
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
392
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
392
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
393
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
393
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
394
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
394
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
395
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
395
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
396
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
396
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
397
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
397
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
398
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
398
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
399
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
399
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
400
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
400
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
401
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
401
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
402
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
402
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
403
 {"DEVELOP/INFO/CPP_KOL_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
403
 {"DEVELOP/INFO/CPP_KOL_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
404
 {"DEVELOP/INFO/CPP_KOL_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
404
 {"DEVELOP/INFO/CPP_KOL_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
405
 {"DEVELOP/INFO/CPP_KOL_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
405
 {"DEVELOP/INFO/CPP_KOL_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
406
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
406
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
407
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
407
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
408
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
408
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
409
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
409
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
410
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
410
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
411
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
411
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
412
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
412
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
413
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
413
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
414
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
414
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
415
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
415
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
416
 {"GAMES/LIGHTS", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
416
 {"GAMES/LIGHTS", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
417
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
417
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
418
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
418
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
419
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
419
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
420
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
420
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
421
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
421
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
422
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
422
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
423
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
423
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
424
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
424
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
425
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
425
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
426
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
426
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
427
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
427
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
428
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
428
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
429
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
429
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
430
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
430
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
431
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console_coff/console.obj"},
431
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console_coff/console.obj"},
432
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
432
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
433
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
433
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
434
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
434
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
435
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
435
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
436
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
436
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
437
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
437
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
438
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
438
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
439
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
439
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
440
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
440
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
441
 {"LIB/RASTERWORKS.OBJ", PROGS .. "/develop/libraries/fontRasterWorks(unicode)/RasterWorks.obj"},
441
 {"LIB/RASTERWORKS.OBJ", PROGS .. "/develop/libraries/fontRasterWorks(unicode)/RasterWorks.obj"},
442
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
442
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
443
 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
443
 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
444
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
444
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
445
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
445
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
446
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
446
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
447
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
447
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
448
 {"MEDIA/MP3INFO", PROGS .. "/media/mp3info/mp3info"},
448
 {"MEDIA/MP3INFO", PROGS .. "/media/mp3info/mp3info"},
449
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
449
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
450
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
450
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
451
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
451
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
452
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
452
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
453
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
453
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
454
 {"NETWORK/NSINSTALL", PROGS .. "/network/netsurf/nsinstall"},
454
 {"NETWORK/NSINSTALL", PROGS .. "/network/netsurf/nsinstall"},
455
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
455
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
456
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
456
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
457
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
457
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
458
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
458
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
459
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
459
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
460
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
460
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
461
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
461
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
462
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
462
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
463
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
463
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
464
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
464
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
465
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
465
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
466
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
466
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
467
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
467
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
468
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
468
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
469
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
469
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
470
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
470
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
471
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
471
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
472
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
472
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
473
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
473
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
474
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
474
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
475
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
475
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
476
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
476
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
477
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
477
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
478
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
478
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
479
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
479
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
480
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
480
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
481
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
481
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
482
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
482
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
483
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
483
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
484
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
484
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
485
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
485
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
486
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
486
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
487
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
487
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
488
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
488
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
489
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
489
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
490
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
490
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
491
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
491
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
492
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
492
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
493
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
493
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
494
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
494
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
495
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
495
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
496
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
496
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
497
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
497
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
498
})
498
})
499
tup.append_table(extra_files, {
499
tup.append_table(extra_files, {
500
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
500
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
501
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
501
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
502
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
502
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
503
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
503
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
504
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
504
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
505
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
505
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
506
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
506
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
507
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
507
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
508
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
508
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
509
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
509
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
510
 {"kolibrios/3D/3dsheart", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
510
 {"kolibrios/3D/3dsheart", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
511
 {"kolibrios/3D/info3ds/INFO3DS", PROGS .. "/develop/info3ds/info3ds"},
511
 {"kolibrios/3D/info3ds/INFO3DS", PROGS .. "/develop/info3ds/info3ds"},
512
 {"kolibrios/3D/info3ds/INFO3DS_U", PROGS .. "/develop/info3ds/info3ds_u"},
512
 {"kolibrios/3D/info3ds/INFO3DS_U", PROGS .. "/develop/info3ds/info3ds_u"},
513
 {"kolibrios/3D/mos3de", PROGS .. "/demos/mos3de/mos3de"},
513
 {"kolibrios/3D/mos3de", PROGS .. "/demos/mos3de/mos3de"},
514
 {"kolibrios/3D/voxel_editor/VOXEL_EDITOR", PROGS .. "/media/voxel_editor/trunk/voxel_editor"},
514
 {"kolibrios/3D/voxel_editor/VOXEL_EDITOR", PROGS .. "/media/voxel_editor/trunk/voxel_editor"},
515
 {"kolibrios/3D/voxel_utilites/VOX_CREATOR" , PROGS .. "/media/voxel_editor/utilites/vox_creator"},
515
 {"kolibrios/3D/voxel_utilites/VOX_CREATOR" , PROGS .. "/media/voxel_editor/utilites/vox_creator"},
516
 {"kolibrios/3D/voxel_utilites/VOX_MOVER" , PROGS .. "/media/voxel_editor/utilites/vox_mover"},
516
 {"kolibrios/3D/voxel_utilites/VOX_MOVER" , PROGS .. "/media/voxel_editor/utilites/vox_mover"},
517
 {"kolibrios/3D/voxel_utilites/VOX_TGL" , PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
517
 {"kolibrios/3D/voxel_utilites/VOX_TGL" , PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
518
 {"kolibrios/3D/textures1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
518
 {"kolibrios/3D/textures1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
519
 {"kolibrios/demos/buddhabrot", PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
519
 {"kolibrios/demos/buddhabrot", PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
520
 {"kolibrios/demos/life3", PROGS .. "/games/life3/trunk/life3"},
520
 {"kolibrios/demos/life3", PROGS .. "/games/life3/trunk/life3"},
521
 {"kolibrios/demos/qjulia", PROGS .. "/demos/qjulia/trunk/qjulia"},
521
 {"kolibrios/demos/qjulia", PROGS .. "/demos/qjulia/trunk/qjulia"},
522
 {"kolibrios/develop/utils/GenFiles", PROGS .. "/testing/genfiles/GenFiles"},
522
 {"kolibrios/develop/utils/GenFiles", PROGS .. "/testing/genfiles/GenFiles"},
523
 {"kolibrios/games/Almaz", PROGS .. "/games/almaz/almaz"},
523
 {"kolibrios/games/Almaz", PROGS .. "/games/almaz/almaz"},
524
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
524
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
525
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
525
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
526
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
526
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
527
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
527
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
528
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
528
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
529
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
529
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
530
 {"kolibrios/games/megamaze", PROGS .. "/games/megamaze/trunk/megamaze"},
530
 {"kolibrios/games/megamaze", PROGS .. "/games/megamaze/trunk/megamaze"},
531
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
531
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
532
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
532
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
533
 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
533
 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
534
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
534
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
535
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
535
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
536
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
536
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
537
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
537
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
538
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
538
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
539
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
539
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
540
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
540
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
541
 {"kolibrios/utils/calcplus", PROGS .. "/other/calcplus/calcplus"},
541
 {"kolibrios/utils/calcplus", PROGS .. "/other/calcplus/calcplus"},
542
})
542
})
543
-- For russian build, add russian-only programs.
543
-- For russian build, add russian-only programs.
544
if build_type == "rus" then tup.append_table(img_files, {
544
if build_type == "rus" then tup.append_table(img_files, {
545
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
545
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
546
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
546
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
547
}) else tup.append_table(img_files, {
547
}) else tup.append_table(img_files, {
548
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
548
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
549
}) end
549
}) end
550
 
550
 
551
if build_type == "rus" then tup.append_table(extra_files, {
551
if build_type == "rus" then tup.append_table(extra_files, {
552
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
552
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
553
}) end
553
}) end
554
 
554
 
555
end -- tup.getconfig('NO_FASM') ~= 'full'
555
end -- tup.getconfig('NO_FASM') ~= 'full'
556
 
556
 
557
-- Programs that require NASM to compile.
557
-- Programs that require NASM to compile.
558
if tup.getconfig('NO_NASM') ~= 'full' then
558
if tup.getconfig('NO_NASM') ~= 'full' then
559
tup.append_table(img_files, {
559
tup.append_table(img_files, {
560
 {"LOD", PROGS .. "/fs/lod/lod"},
560
 {"LOD", PROGS .. "/fs/lod/lod"},
561
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
561
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
562
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
562
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
563
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
563
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
564
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
564
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
565
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
565
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
566
 {"MEDIA/FILLSCR", PROGS .. "/media/FillScr/fillscr"},
566
 {"MEDIA/FILLSCR", PROGS .. "/media/FillScr/fillscr"},
567
})
567
})
568
end -- tup.getconfig('NO_NASM') ~= 'full'
568
end -- tup.getconfig('NO_NASM') ~= 'full'
569
 
569
 
570
-- Programs that require JWASM to compile.
570
-- Programs that require JWASM to compile.
571
if tup.getconfig('NO_JWASM') ~= 'full' then
571
if tup.getconfig('NO_JWASM') ~= 'full' then
572
tup.append_table(img_files, {
572
tup.append_table(img_files, {
573
 {"RUN", PROGS .. "/system/RunOD/1/RUN"},
573
 {"RUN", PROGS .. "/system/RunOD/1/RUN"},
574
 {"LIB/INPUTBOX.OBJ", PROGS .. "/develop/libraries/InputBox/INPUTBOX.OBJ"},
574
 {"LIB/INPUTBOX.OBJ", PROGS .. "/develop/libraries/InputBox/INPUTBOX.OBJ"},
575
})
575
})
576
end -- tup.getconfig('NO_JWASM') ~= 'full'
576
end -- tup.getconfig('NO_JWASM') ~= 'full'
577
 
577
 
578
-- Programs that require C-- to compile.
578
-- Programs that require C-- to compile.
579
if tup.getconfig('NO_CMM') ~= 'full' then
579
if tup.getconfig('NO_CMM') ~= 'full' then
580
tup.append_table(img_files, {
580
tup.append_table(img_files, {
581
 {"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
581
 {"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
582
 {"EASYSHOT", PROGS .. "/cmm/easyshot/easyshot.com"},
582
 {"EASYSHOT", PROGS .. "/cmm/easyshot/easyshot.com"},
583
 {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
583
 {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
584
 {"NOTES", PROGS .. "/cmm/notes/notes.com"},
584
 {"NOTES", PROGS .. "/cmm/notes/notes.com"},
585
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
585
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
586
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
586
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
587
 {"SYSMON", PROGS .. "/cmm/sysmon/sysmon.com"},
587
 {"SYSMON", PROGS .. "/cmm/sysmon/sysmon.com"},
588
 {"TXTREAD", PROGS .. "/cmm/txtread/txtread.com"},
588
 {"TXTREAD", PROGS .. "/cmm/txtread/txtread.com"},
589
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
589
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
590
 {"DEVELOP/CLIPVIEW", PROGS .. "/cmm/clipview/clipview.com"},
590
 {"DEVELOP/CLIPVIEW", PROGS .. "/cmm/clipview/clipview.com"},
591
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
591
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
592
 {"KF_VIEW", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
592
 {"KF_VIEW", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
593
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
593
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
594
 {"GAMES/MBLOCKS", PROGS .. "/cmm/mblocks/mblocks.com"},
594
 {"GAMES/MBLOCKS", PROGS .. "/cmm/mblocks/mblocks.com"},
595
 {"DEVELOP/DIFF", PROGS .. "/cmm/diff/diff.com"},
595
 {"DEVELOP/DIFF", PROGS .. "/cmm/diff/diff.com"},
596
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
596
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
597
 {"GAMES/FLOOD-IT", PROGS .. "/games/flood-it/trunk/flood-it.com"},
597
 {"GAMES/FLOOD-IT", PROGS .. "/games/flood-it/trunk/flood-it.com"},
598
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
598
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
599
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie2/pixie.com"},
599
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie2/pixie.com"},
600
 {"MEDIA/ICONEDIT", PROGS .. "/cmm/iconedit/iconedit.com"},
600
 {"MEDIA/ICONEDIT", PROGS .. "/cmm/iconedit/iconedit.com"},
601
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
601
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
602
})
602
})
603
tup.append_table(extra_files, {
603
tup.append_table(extra_files, {
604
 {"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
604
 {"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
605
 {"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
605
 {"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
606
 {"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
606
 {"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
607
 {"kolibrios/utils/dicty.kex", PROGS .. "/cmm/dicty/dicty.com"},
-
 
608
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
607
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
-
 
608
 {"kolibrios/utils/codeview", PROGS .. "/cmm/codeview/codeview.com"},
-
 
609
 {"kolibrios/utils/dicty.kex", PROGS .. "/cmm/dicty/dicty.com"},
609
 {"kolibrios/utils/netcheck", PROGS .. "/cmm/examples/netcheck.com"},
610
 {"kolibrios/utils/netcheck", PROGS .. "/cmm/examples/netcheck.com"},
610
})
611
})
611
end -- tup.getconfig('NO_CMM') ~= 'full'
612
end -- tup.getconfig('NO_CMM') ~= 'full'
612
 
613
 
613
-- Programs that require MSVC to compile.
614
-- Programs that require MSVC to compile.
614
if tup.getconfig('NO_MSVC') ~= 'full' then
615
if tup.getconfig('NO_MSVC') ~= 'full' then
615
tup.append_table(img_files, {
616
tup.append_table(img_files, {
616
 {"GRAPH", PROGS .. "/other/graph/graph"},
617
 {"GRAPH", PROGS .. "/other/graph/graph"},
617
 {"TABLE", PROGS .. "/other/table/table"},
618
 {"TABLE", PROGS .. "/other/table/table"},
618
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
619
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
619
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
620
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
620
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
621
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
621
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
622
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
622
})
623
})
623
tup.append_table(extra_files, {
624
tup.append_table(extra_files, {
624
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
625
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
625
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
626
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
626
})
627
})
627
end -- tup.getconfig('NO_MSVC') ~= 'full'
628
end -- tup.getconfig('NO_MSVC') ~= 'full'
628
 
629
 
629
-- Programs that require GCC to compile.
630
-- Programs that require GCC to compile.
630
if tup.getconfig('NO_GCC') ~= 'full' then
631
if tup.getconfig('NO_GCC') ~= 'full' then
631
tup.append_table(img_files, {
632
tup.append_table(img_files, {
632
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
633
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
633
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
634
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
634
 {"SHELL", PROGS .. "/system/shell/shell"},
635
 {"SHELL", PROGS .. "/system/shell/shell"},
635
})
636
})
636
tup.append_table(extra_files, {
637
tup.append_table(extra_files, {
637
 {"kolibrios/3D/cubeline", PROGS .. "/demos/cubeline/trunk/cubeline"},
638
 {"kolibrios/3D/cubeline", PROGS .. "/demos/cubeline/trunk/cubeline"},
638
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
639
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
639
 {"kolibrios/games/2048", PROGS .. "/games/2048/2048"},
640
 {"kolibrios/games/2048", PROGS .. "/games/2048/2048"},
640
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
641
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
641
 {"kolibrios/games/heliothryx", PROGS .. "/games/heliothryx/heliothryx"},
642
 {"kolibrios/games/heliothryx", PROGS .. "/games/heliothryx/heliothryx"},
642
 {"kolibrios/games/marblematch3", PROGS .. "/games/marblematch3/marblematch3"},
643
 {"kolibrios/games/marblematch3", PROGS .. "/games/marblematch3/marblematch3"},
643
 {"kolibrios/games/nsider", PROGS .. "/games/nsider/nsider"},
644
 {"kolibrios/games/nsider", PROGS .. "/games/nsider/nsider"},
644
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
645
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
645
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
646
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
646
})
647
})
647
-- For russian build, add russian-only programs.
648
-- For russian build, add russian-only programs.
648
if build_type == "rus" then tup.append_table(extra_files, {
649
if build_type == "rus" then tup.append_table(extra_files, {
649
 {"kolibrios/games/21days", PROGS .. "/games/21days/21days"},
650
 {"kolibrios/games/21days", PROGS .. "/games/21days/21days"},
650
}) end
651
}) end
651
end -- tup.getconfig('NO_GCC') ~= 'full'
652
end -- tup.getconfig('NO_GCC') ~= 'full'
652
 
653
 
653
-- Skins.
654
-- Skins.
654
tup.include("../skins/skinlist.lua")
655
tup.include("../skins/skinlist.lua")
655
 
656
 
656
--[================================[ CODE ]================================]--
657
--[================================[ CODE ]================================]--
657
-- expand extra_files and similar
658
-- expand extra_files and similar
658
function expand_extra_files(files)
659
function expand_extra_files(files)
659
  local result = {}
660
  local result = {}
660
  for i,v in ipairs(files) do
661
  for i,v in ipairs(files) do
661
    if string.match(v[2], "%*")
662
    if string.match(v[2], "%*")
662
    then
663
    then
663
      local g = tup.glob(v[2])
664
      local g = tup.glob(v[2])
664
      for j,x in ipairs(g) do
665
      for j,x in ipairs(g) do
665
        table.insert(result, {v[1], x, group=v.group})
666
        table.insert(result, {v[1], x, group=v.group})
666
      end
667
      end
667
    else
668
    else
668
      if v.cp1251_from then
669
      if v.cp1251_from then
669
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
670
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
670
      end
671
      end
671
      table.insert(result, {v[1], v[2], group=v.group})
672
      table.insert(result, {v[1], v[2], group=v.group})
672
    end
673
    end
673
  end
674
  end
674
  return result
675
  return result
675
end
676
end
676
 
677
 
677
-- append skins to extra_files
678
-- append skins to extra_files
678
for i,v in ipairs(skinlist) do
679
for i,v in ipairs(skinlist) do
679
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
680
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
680
end
681
end
681
 
682
 
682
-- prepare distr_extra_files and iso_extra_files: expand and append common part
683
-- prepare distr_extra_files and iso_extra_files: expand and append common part
683
extra_files = expand_extra_files(extra_files)
684
extra_files = expand_extra_files(extra_files)
684
distr_extra_files = expand_extra_files(distr_extra_files)
685
distr_extra_files = expand_extra_files(distr_extra_files)
685
iso_extra_files = expand_extra_files(iso_extra_files)
686
iso_extra_files = expand_extra_files(iso_extra_files)
686
tup.append_table(distr_extra_files, extra_files)
687
tup.append_table(distr_extra_files, extra_files)
687
tup.append_table(iso_extra_files, extra_files)
688
tup.append_table(iso_extra_files, extra_files)
688
 
689
 
689
-- generate list of directories to be created inside kolibri.img
690
-- generate list of directories to be created inside kolibri.img
690
img_dirs = {}
691
img_dirs = {}
691
input_deps = {}
692
input_deps = {}
692
for i,v in ipairs(img_files) do
693
for i,v in ipairs(img_files) do
693
  img_file = v[1]
694
  img_file = v[1]
694
  local_file = v[2]
695
  local_file = v[2]
695
 
696
 
696
  slash_pos = 0
697
  slash_pos = 0
697
  while true do
698
  while true do
698
    slash_pos = string.find(img_file, '/', slash_pos + 1)
699
    slash_pos = string.find(img_file, '/', slash_pos + 1)
699
    if not slash_pos then break end
700
    if not slash_pos then break end
700
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
701
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
701
  end
702
  end
702
 
703
 
703
  -- tup does not want to see hidden files as dependencies
704
  -- tup does not want to see hidden files as dependencies
704
  if not string.match(local_file, "/%.") then
705
  if not string.match(local_file, "/%.") then
705
    table.insert(input_deps, v.group or local_file)
706
    table.insert(input_deps, v.group or local_file)
706
  end
707
  end
707
end
708
end
708
 
709
 
709
-- create empty 1.44M file
710
-- create empty 1.44M file
710
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
711
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
711
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
712
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
712
-- format it as a standard 1.44M floppy
713
-- format it as a standard 1.44M floppy
713
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
714
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
714
-- copy bootloader
715
-- copy bootloader
715
if tup.getconfig("NO_FASM") ~= "full" then
716
if tup.getconfig("NO_FASM") ~= "full" then
716
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
717
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
717
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
718
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
718
table.insert(input_deps, bootloader)
719
table.insert(input_deps, bootloader)
719
end
720
end
720
-- make folders
721
-- make folders
721
table.sort(img_dirs)
722
table.sort(img_dirs)
722
for i,v in ipairs(img_dirs) do
723
for i,v in ipairs(img_dirs) do
723
  if v ~= img_dirs[i-1] then
724
  if v ~= img_dirs[i-1] then
724
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
725
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
725
  end
726
  end
726
end
727
end
727
-- copy files
728
-- copy files
728
for i,v in ipairs(img_files) do
729
for i,v in ipairs(img_files) do
729
  local_file = v[2]
730
  local_file = v[2]
730
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
731
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
731
  then
732
  then
732
    -- for kernel.mnt, insert autobuild revision identifier
733
    -- for kernel.mnt, insert autobuild revision identifier
733
    -- from .revision to .kernel.mnt
734
    -- from .revision to .kernel.mnt
734
    -- note that .revision and .kernel.mnt must begin with .
735
    -- note that .revision and .kernel.mnt must begin with .
735
    -- to prevent tup from tracking them
736
    -- to prevent tup from tracking them
736
    if build_type == "rus"
737
    if build_type == "rus"
737
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
738
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
738
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
739
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
739
    end
740
    end
740
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
741
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
741
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
742
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
742
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
743
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
743
    make_img_command = make_img_command .. " && str=" .. str
744
    make_img_command = make_img_command .. " && str=" .. str
744
    make_img_command = make_img_command .. ' && echo -n $str | dd of=.kernel.mnt bs=1 seek=`expr 279 - length "$str"` conv=notrunc 2>/dev/null'
745
    make_img_command = make_img_command .. ' && echo -n $str | dd of=.kernel.mnt bs=1 seek=`expr 279 - length "$str"` conv=notrunc 2>/dev/null'
745
    local_file = ".kernel.mnt"
746
    local_file = ".kernel.mnt"
746
  end
747
  end
747
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
748
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
748
end
749
end
749
 
750
 
750
-- generate tup rule for kolibri.img
751
-- generate tup rule for kolibri.img
751
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
752
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
752
tup.definerule{inputs = {"../kernel/trunk/boot/uefi4kos.asm", "kolibri.img", "../kernel/trunk/kernel.bin"}, command = "fasm ../kernel/trunk/boot/uefi4kos.asm %o", outputs = {"kolibri.efi"}}
753
tup.definerule{inputs = {"../kernel/trunk/boot/uefi4kos.asm", "kolibri.img", "../kernel/trunk/kernel.bin"}, command = "fasm ../kernel/trunk/boot/uefi4kos.asm %o", outputs = {"kolibri.efi"}}
753
 
754
 
754
-- generate command and dependencies for mkisofs
755
-- generate command and dependencies for mkisofs
755
input_deps = {"kolibri.img"}
756
input_deps = {"kolibri.img"}
756
iso_files_list = ""
757
iso_files_list = ""
757
for i,v in ipairs(iso_extra_files) do
758
for i,v in ipairs(iso_extra_files) do
758
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
759
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
759
  table.insert(input_deps, v.group or v[2])
760
  table.insert(input_deps, v.group or v[2])
760
end
761
end
761
 
762
 
762
-- generate tup rule for kolibri.iso
763
-- generate tup rule for kolibri.iso
763
if tup.getconfig("INSERT_REVISION_ID") ~= ""
764
if tup.getconfig("INSERT_REVISION_ID") ~= ""
764
then volume_id = "KolibriOS r`cat .revision`"
765
then volume_id = "KolibriOS r`cat .revision`"
765
else volume_id = "KolibriOS"
766
else volume_id = "KolibriOS"
766
end
767
end
767
tup.definerule{inputs = input_deps, command =
768
tup.definerule{inputs = input_deps, command =
768
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
769
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
769
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
770
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
770
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
771
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
771
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
772
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
772
  outputs = {"kolibri.iso"}}
773
  outputs = {"kolibri.iso"}}
773
 
774
 
774
-- generate command and dependencies for distribution kit
775
-- generate command and dependencies for distribution kit
775
cp = 'cp "%f" "%o"'
776
cp = 'cp "%f" "%o"'
776
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
777
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
777
for i,v in ipairs(distr_extra_files) do
778
for i,v in ipairs(distr_extra_files) do
778
  cmd = cp:gsub("%%f", v[2]) -- input can be a group, we can't rely on tup's expansion of %f in this case
779
  cmd = cp:gsub("%%f", v[2]) -- input can be a group, we can't rely on tup's expansion of %f in this case
779
  if string.sub(v[1], -1) == "/"
780
  if string.sub(v[1], -1) == "/"
780
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
781
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
781
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
782
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
782
  end
783
  end
783
end
784
end