Subversion Repositories Kolibri OS

Rev

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

Rev 7592 Rev 7606
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/SPIRAL", PROGS .. "/demos/spiral/spiral"},
385
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
386
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
386
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
387
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
387
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
388
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
388
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
389
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
389
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
390
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
390
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
391
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
391
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
392
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
392
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
393
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
393
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
394
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
394
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
395
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
395
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
396
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
396
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
397
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
397
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
398
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
398
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
399
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
399
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
400
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
400
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
401
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
401
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
402
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
402
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
403
 {"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"},
404
 {"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"},
405
 {"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"},
406
 {"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"},
407
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
407
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
408
 {"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"},
409
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
409
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
410
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
410
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
411
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
411
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
412
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
412
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
413
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
413
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
414
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
414
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
415
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
415
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
416
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
416
 {"GAMES/LIGHTS", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
417
 {"GAMES/LIGHTS", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
417
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
418
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
418
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
419
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
419
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
420
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
420
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
421
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
421
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
422
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
422
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
423
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
423
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
424
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
424
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
425
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
425
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
426
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
426
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
427
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
427
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
428
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
428
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
429
 {"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"},
430
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
430
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
431
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
431
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console_coff/console.obj"},
432
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console_coff/console.obj"},
432
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
433
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
433
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
434
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
434
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
435
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
435
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
436
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
436
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
437
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
437
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
438
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
438
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
439
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
439
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
440
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
440
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
441
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
441
 {"LIB/RASTERWORKS.OBJ", PROGS .. "/develop/libraries/fontRasterWorks(unicode)/RasterWorks.obj"},
442
 {"LIB/RASTERWORKS.OBJ", PROGS .. "/develop/libraries/fontRasterWorks(unicode)/RasterWorks.obj"},
442
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
443
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
443
 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
444
 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
444
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
445
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
445
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
446
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
446
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
447
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
447
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
448
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
448
 {"MEDIA/MP3INFO", PROGS .. "/media/mp3info/mp3info"},
449
 {"MEDIA/MP3INFO", PROGS .. "/media/mp3info/mp3info"},
449
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
450
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
450
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
451
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
451
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
452
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
452
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
453
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
453
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
454
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
454
 {"NETWORK/NSINSTALL", PROGS .. "/network/netsurf/nsinstall"},
455
 {"NETWORK/NSINSTALL", PROGS .. "/network/netsurf/nsinstall"},
455
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
456
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
456
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
457
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
457
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
458
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
458
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
459
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
459
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
460
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
460
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
461
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
461
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
462
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
462
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
463
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
463
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
464
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
464
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
465
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
465
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
466
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
466
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
467
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
467
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
468
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
468
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
469
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
469
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
470
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
470
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
471
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
471
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
472
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
472
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
473
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
473
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
474
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
474
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
475
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
475
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
476
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
476
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
477
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
477
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
478
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
478
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
479
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
479
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
480
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
480
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
481
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
481
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
482
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
482
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
483
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
483
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
484
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
484
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
485
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
485
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
486
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
486
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
487
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
487
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
488
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
488
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
489
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
489
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
490
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
490
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
491
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
491
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
492
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
492
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
493
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
493
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
494
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
494
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
495
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
495
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
496
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
496
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
497
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
497
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
498
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
498
})
499
})
499
tup.append_table(extra_files, {
500
tup.append_table(extra_files, {
500
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
501
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
501
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
502
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
502
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
503
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
503
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
504
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
504
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
505
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
505
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
506
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
506
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
507
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
507
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
508
 {"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"},
509
 {"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"},
510
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
510
 {"kolibrios/3D/3dsheart", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
511
 {"kolibrios/3D/3dsheart", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
511
 {"kolibrios/3D/info3ds/INFO3DS", PROGS .. "/develop/info3ds/info3ds"},
512
 {"kolibrios/3D/info3ds/INFO3DS", PROGS .. "/develop/info3ds/info3ds"},
512
 {"kolibrios/3D/info3ds/INFO3DS_U", PROGS .. "/develop/info3ds/info3ds_u"},
513
 {"kolibrios/3D/info3ds/INFO3DS_U", PROGS .. "/develop/info3ds/info3ds_u"},
513
 {"kolibrios/3D/mos3de", PROGS .. "/demos/mos3de/mos3de"},
514
 {"kolibrios/3D/mos3de", PROGS .. "/demos/mos3de/mos3de"},
514
 {"kolibrios/3D/voxel_editor/VOXEL_EDITOR", PROGS .. "/media/voxel_editor/trunk/voxel_editor"},
515
 {"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"},
516
 {"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"},
517
 {"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"},
518
 {"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"},
519
 {"kolibrios/3D/textures1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
519
 {"kolibrios/demos/buddhabrot", PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
520
 {"kolibrios/demos/buddhabrot", PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
520
 {"kolibrios/demos/life3", PROGS .. "/games/life3/trunk/life3"},
521
 {"kolibrios/demos/life3", PROGS .. "/games/life3/trunk/life3"},
521
 {"kolibrios/demos/qjulia", PROGS .. "/demos/qjulia/trunk/qjulia"},
522
 {"kolibrios/demos/qjulia", PROGS .. "/demos/qjulia/trunk/qjulia"},
522
 {"kolibrios/develop/utils/GenFiles", PROGS .. "/testing/genfiles/GenFiles"},
523
 {"kolibrios/develop/utils/GenFiles", PROGS .. "/testing/genfiles/GenFiles"},
523
 {"kolibrios/games/Almaz", PROGS .. "/games/almaz/almaz"},
524
 {"kolibrios/games/Almaz", PROGS .. "/games/almaz/almaz"},
524
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
525
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
525
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
526
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
526
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
527
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
527
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
528
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
528
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
529
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
529
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
530
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
530
 {"kolibrios/games/megamaze", PROGS .. "/games/megamaze/trunk/megamaze"},
531
 {"kolibrios/games/megamaze", PROGS .. "/games/megamaze/trunk/megamaze"},
531
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
532
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
532
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
533
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
533
 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
534
 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
534
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
535
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
535
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
536
 {"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"},
537
 {"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"},
538
 {"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"},
539
 {"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"},
540
 {"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"},
541
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
541
 {"kolibrios/utils/calcplus", PROGS .. "/other/calcplus/calcplus"},
542
 {"kolibrios/utils/calcplus", PROGS .. "/other/calcplus/calcplus"},
542
})
543
})
543
-- For russian build, add russian-only programs.
544
-- For russian build, add russian-only programs.
544
if build_type == "rus" then tup.append_table(img_files, {
545
if build_type == "rus" then tup.append_table(img_files, {
545
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
546
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
546
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
547
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
547
}) else tup.append_table(img_files, {
548
}) else tup.append_table(img_files, {
548
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
549
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
549
}) end
550
}) end
550
 
551
 
551
if build_type == "rus" then tup.append_table(extra_files, {
552
if build_type == "rus" then tup.append_table(extra_files, {
552
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
553
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
553
}) end
554
}) end
554
 
555
 
555
end -- tup.getconfig('NO_FASM') ~= 'full'
556
end -- tup.getconfig('NO_FASM') ~= 'full'
556
 
557
 
557
-- Programs that require NASM to compile.
558
-- Programs that require NASM to compile.
558
if tup.getconfig('NO_NASM') ~= 'full' then
559
if tup.getconfig('NO_NASM') ~= 'full' then
559
tup.append_table(img_files, {
560
tup.append_table(img_files, {
560
 {"LOD", PROGS .. "/fs/lod/lod"},
561
 {"LOD", PROGS .. "/fs/lod/lod"},
561
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
562
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
562
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
563
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
563
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
564
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
564
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
565
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
565
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
566
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
566
 {"MEDIA/FILLSCR", PROGS .. "/media/FillScr/fillscr"},
567
 {"MEDIA/FILLSCR", PROGS .. "/media/FillScr/fillscr"},
567
})
568
})
568
end -- tup.getconfig('NO_NASM') ~= 'full'
569
end -- tup.getconfig('NO_NASM') ~= 'full'
569
 
570
 
570
-- Programs that require JWASM to compile.
571
-- Programs that require JWASM to compile.
571
if tup.getconfig('NO_JWASM') ~= 'full' then
572
if tup.getconfig('NO_JWASM') ~= 'full' then
572
tup.append_table(img_files, {
573
tup.append_table(img_files, {
573
 {"RUN", PROGS .. "/system/RunOD/1/RUN"},
574
 {"RUN", PROGS .. "/system/RunOD/1/RUN"},
574
 {"LIB/INPUTBOX.OBJ", PROGS .. "/develop/libraries/InputBox/INPUTBOX.OBJ"},
575
 {"LIB/INPUTBOX.OBJ", PROGS .. "/develop/libraries/InputBox/INPUTBOX.OBJ"},
575
})
576
})
576
end -- tup.getconfig('NO_JWASM') ~= 'full'
577
end -- tup.getconfig('NO_JWASM') ~= 'full'
577
 
578
 
578
-- Programs that require C-- to compile.
579
-- Programs that require C-- to compile.
579
if tup.getconfig('NO_CMM') ~= 'full' then
580
if tup.getconfig('NO_CMM') ~= 'full' then
580
tup.append_table(img_files, {
581
tup.append_table(img_files, {
581
 {"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
582
 {"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
582
 {"EASYSHOT", PROGS .. "/cmm/easyshot/easyshot.com"},
583
 {"EASYSHOT", PROGS .. "/cmm/easyshot/easyshot.com"},
583
 {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
584
 {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
584
 {"NOTES", PROGS .. "/cmm/notes/notes.com"},
585
 {"NOTES", PROGS .. "/cmm/notes/notes.com"},
585
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
586
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
586
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
587
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
587
 {"SYSMON", PROGS .. "/cmm/sysmon/sysmon.com"},
588
 {"SYSMON", PROGS .. "/cmm/sysmon/sysmon.com"},
588
 {"TXTREAD", PROGS .. "/cmm/txtread/txtread.com"},
589
 {"TXTREAD", PROGS .. "/cmm/txtread/txtread.com"},
589
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
590
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
590
 {"DEVELOP/CLIPVIEW", PROGS .. "/cmm/clipview/clipview.com"},
591
 {"DEVELOP/CLIPVIEW", PROGS .. "/cmm/clipview/clipview.com"},
591
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
592
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
592
 {"KF_VIEW", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
593
 {"KF_VIEW", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
593
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
594
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
594
 {"GAMES/MBLOCKS", PROGS .. "/cmm/mblocks/mblocks.com"},
595
 {"GAMES/MBLOCKS", PROGS .. "/cmm/mblocks/mblocks.com"},
595
 {"DEVELOP/DIFF", PROGS .. "/cmm/diff/diff.com"},
596
 {"DEVELOP/DIFF", PROGS .. "/cmm/diff/diff.com"},
596
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
597
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
597
 {"GAMES/FLOOD-IT", PROGS .. "/games/flood-it/trunk/flood-it.com"},
598
 {"GAMES/FLOOD-IT", PROGS .. "/games/flood-it/trunk/flood-it.com"},
598
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
599
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
599
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie2/pixie.com"},
600
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie2/pixie.com"},
600
 {"MEDIA/ICONEDIT", PROGS .. "/cmm/iconedit/iconedit.com"},
601
 {"MEDIA/ICONEDIT", PROGS .. "/cmm/iconedit/iconedit.com"},
601
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
602
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
602
})
603
})
603
tup.append_table(extra_files, {
604
tup.append_table(extra_files, {
604
 {"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
605
 {"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
605
 {"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
606
 {"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
606
 {"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
607
 {"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
607
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
608
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
608
 {"kolibrios/utils/codeview", PROGS .. "/cmm/codeview/codeview.com"},
609
 {"kolibrios/utils/codeview", PROGS .. "/cmm/codeview/codeview.com"},
609
 {"kolibrios/utils/dicty.kex", PROGS .. "/cmm/dicty/dicty.com"},
610
 {"kolibrios/utils/dicty.kex", PROGS .. "/cmm/dicty/dicty.com"},
610
 {"kolibrios/utils/netcheck", PROGS .. "/cmm/examples/netcheck.com"},
611
 {"kolibrios/utils/netcheck", PROGS .. "/cmm/examples/netcheck.com"},
611
})
612
})
612
end -- tup.getconfig('NO_CMM') ~= 'full'
613
end -- tup.getconfig('NO_CMM') ~= 'full'
613
 
614
 
614
-- Programs that require MSVC to compile.
615
-- Programs that require MSVC to compile.
615
if tup.getconfig('NO_MSVC') ~= 'full' then
616
if tup.getconfig('NO_MSVC') ~= 'full' then
616
tup.append_table(img_files, {
617
tup.append_table(img_files, {
617
 {"GRAPH", PROGS .. "/other/graph/graph"},
618
 {"GRAPH", PROGS .. "/other/graph/graph"},
618
 {"TABLE", PROGS .. "/other/table/table"},
619
 {"TABLE", PROGS .. "/other/table/table"},
619
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
620
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
620
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
621
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
621
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
622
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
622
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
623
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
623
})
624
})
624
tup.append_table(extra_files, {
625
tup.append_table(extra_files, {
625
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
626
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
626
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
627
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
627
})
628
})
628
end -- tup.getconfig('NO_MSVC') ~= 'full'
629
end -- tup.getconfig('NO_MSVC') ~= 'full'
629
 
630
 
630
-- Programs that require GCC to compile.
631
-- Programs that require GCC to compile.
631
if tup.getconfig('NO_GCC') ~= 'full' then
632
if tup.getconfig('NO_GCC') ~= 'full' then
632
tup.append_table(img_files, {
633
tup.append_table(img_files, {
633
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
634
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
634
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
635
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
635
 {"SHELL", PROGS .. "/system/shell/shell"},
636
 {"SHELL", PROGS .. "/system/shell/shell"},
636
})
637
})
637
tup.append_table(extra_files, {
638
tup.append_table(extra_files, {
638
 {"kolibrios/3D/cubeline", PROGS .. "/demos/cubeline/trunk/cubeline"},
639
 {"kolibrios/3D/cubeline", PROGS .. "/demos/cubeline/trunk/cubeline"},
639
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
640
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
640
 {"kolibrios/games/2048", PROGS .. "/games/2048/2048"},
641
 {"kolibrios/games/2048", PROGS .. "/games/2048/2048"},
641
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
642
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
642
 {"kolibrios/games/heliothryx", PROGS .. "/games/heliothryx/heliothryx"},
643
 {"kolibrios/games/heliothryx", PROGS .. "/games/heliothryx/heliothryx"},
643
 {"kolibrios/games/marblematch3", PROGS .. "/games/marblematch3/marblematch3"},
644
 {"kolibrios/games/marblematch3", PROGS .. "/games/marblematch3/marblematch3"},
644
 {"kolibrios/games/nsider", PROGS .. "/games/nsider/nsider"},
645
 {"kolibrios/games/nsider", PROGS .. "/games/nsider/nsider"},
645
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
646
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
646
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
647
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
647
})
648
})
648
-- For russian build, add russian-only programs.
649
-- For russian build, add russian-only programs.
649
if build_type == "rus" then tup.append_table(extra_files, {
650
if build_type == "rus" then tup.append_table(extra_files, {
650
 {"kolibrios/games/21days", PROGS .. "/games/21days/21days"},
651
 {"kolibrios/games/21days", PROGS .. "/games/21days/21days"},
651
}) end
652
}) end
652
end -- tup.getconfig('NO_GCC') ~= 'full'
653
end -- tup.getconfig('NO_GCC') ~= 'full'
653
 
654
 
654
-- Skins.
655
-- Skins.
655
tup.include("../skins/skinlist.lua")
656
tup.include("../skins/skinlist.lua")
656
 
657
 
657
--[================================[ CODE ]================================]--
658
--[================================[ CODE ]================================]--
658
-- expand extra_files and similar
659
-- expand extra_files and similar
659
function expand_extra_files(files)
660
function expand_extra_files(files)
660
  local result = {}
661
  local result = {}
661
  for i,v in ipairs(files) do
662
  for i,v in ipairs(files) do
662
    if string.match(v[2], "%*")
663
    if string.match(v[2], "%*")
663
    then
664
    then
664
      local g = tup.glob(v[2])
665
      local g = tup.glob(v[2])
665
      for j,x in ipairs(g) do
666
      for j,x in ipairs(g) do
666
        table.insert(result, {v[1], x, group=v.group})
667
        table.insert(result, {v[1], x, group=v.group})
667
      end
668
      end
668
    else
669
    else
669
      if v.cp1251_from then
670
      if v.cp1251_from then
670
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
671
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
671
      end
672
      end
672
      table.insert(result, {v[1], v[2], group=v.group})
673
      table.insert(result, {v[1], v[2], group=v.group})
673
    end
674
    end
674
  end
675
  end
675
  return result
676
  return result
676
end
677
end
677
 
678
 
678
-- append skins to extra_files
679
-- append skins to extra_files
679
for i,v in ipairs(skinlist) do
680
for i,v in ipairs(skinlist) do
680
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
681
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
681
end
682
end
682
 
683
 
683
-- prepare distr_extra_files and iso_extra_files: expand and append common part
684
-- prepare distr_extra_files and iso_extra_files: expand and append common part
684
extra_files = expand_extra_files(extra_files)
685
extra_files = expand_extra_files(extra_files)
685
distr_extra_files = expand_extra_files(distr_extra_files)
686
distr_extra_files = expand_extra_files(distr_extra_files)
686
iso_extra_files = expand_extra_files(iso_extra_files)
687
iso_extra_files = expand_extra_files(iso_extra_files)
687
tup.append_table(distr_extra_files, extra_files)
688
tup.append_table(distr_extra_files, extra_files)
688
tup.append_table(iso_extra_files, extra_files)
689
tup.append_table(iso_extra_files, extra_files)
689
 
690
 
690
-- generate list of directories to be created inside kolibri.img
691
-- generate list of directories to be created inside kolibri.img
691
img_dirs = {}
692
img_dirs = {}
692
input_deps = {}
693
input_deps = {}
693
for i,v in ipairs(img_files) do
694
for i,v in ipairs(img_files) do
694
  img_file = v[1]
695
  img_file = v[1]
695
  local_file = v[2]
696
  local_file = v[2]
696
 
697
 
697
  slash_pos = 0
698
  slash_pos = 0
698
  while true do
699
  while true do
699
    slash_pos = string.find(img_file, '/', slash_pos + 1)
700
    slash_pos = string.find(img_file, '/', slash_pos + 1)
700
    if not slash_pos then break end
701
    if not slash_pos then break end
701
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
702
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
702
  end
703
  end
703
 
704
 
704
  -- tup does not want to see hidden files as dependencies
705
  -- tup does not want to see hidden files as dependencies
705
  if not string.match(local_file, "/%.") then
706
  if not string.match(local_file, "/%.") then
706
    table.insert(input_deps, v.group or local_file)
707
    table.insert(input_deps, v.group or local_file)
707
  end
708
  end
708
end
709
end
709
 
710
 
710
-- create empty 1.44M file
711
-- create empty 1.44M file
711
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
712
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
712
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
713
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
713
-- format it as a standard 1.44M floppy
714
-- format it as a standard 1.44M floppy
714
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
715
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
715
-- copy bootloader
716
-- copy bootloader
716
if tup.getconfig("NO_FASM") ~= "full" then
717
if tup.getconfig("NO_FASM") ~= "full" then
717
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
718
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
718
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
719
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
719
table.insert(input_deps, bootloader)
720
table.insert(input_deps, bootloader)
720
end
721
end
721
-- make folders
722
-- make folders
722
table.sort(img_dirs)
723
table.sort(img_dirs)
723
for i,v in ipairs(img_dirs) do
724
for i,v in ipairs(img_dirs) do
724
  if v ~= img_dirs[i-1] then
725
  if v ~= img_dirs[i-1] then
725
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
726
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
726
  end
727
  end
727
end
728
end
728
-- copy files
729
-- copy files
729
for i,v in ipairs(img_files) do
730
for i,v in ipairs(img_files) do
730
  local_file = v[2]
731
  local_file = v[2]
731
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
732
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
732
  then
733
  then
733
    -- for kernel.mnt, insert autobuild revision identifier
734
    -- for kernel.mnt, insert autobuild revision identifier
734
    -- from .revision to .kernel.mnt
735
    -- from .revision to .kernel.mnt
735
    -- note that .revision and .kernel.mnt must begin with .
736
    -- note that .revision and .kernel.mnt must begin with .
736
    -- to prevent tup from tracking them
737
    -- to prevent tup from tracking them
737
    if build_type == "rus"
738
    if build_type == "rus"
738
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
739
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
739
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
740
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
740
    end
741
    end
741
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
742
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
742
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
743
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
743
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
744
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
744
    make_img_command = make_img_command .. " && str=" .. str
745
    make_img_command = make_img_command .. " && str=" .. str
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'
746
    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'
746
    local_file = ".kernel.mnt"
747
    local_file = ".kernel.mnt"
747
  end
748
  end
748
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
749
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
749
end
750
end
750
 
751
 
751
-- generate tup rule for kolibri.img
752
-- generate tup rule for kolibri.img
752
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
753
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
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"}}
754
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"}}
754
 
755
 
755
-- generate command and dependencies for mkisofs
756
-- generate command and dependencies for mkisofs
756
input_deps = {"kolibri.img"}
757
input_deps = {"kolibri.img"}
757
iso_files_list = ""
758
iso_files_list = ""
758
for i,v in ipairs(iso_extra_files) do
759
for i,v in ipairs(iso_extra_files) do
759
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
760
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
760
  table.insert(input_deps, v.group or v[2])
761
  table.insert(input_deps, v.group or v[2])
761
end
762
end
762
 
763
 
763
-- generate tup rule for kolibri.iso
764
-- generate tup rule for kolibri.iso
764
if tup.getconfig("INSERT_REVISION_ID") ~= ""
765
if tup.getconfig("INSERT_REVISION_ID") ~= ""
765
then volume_id = "KolibriOS r`cat .revision`"
766
then volume_id = "KolibriOS r`cat .revision`"
766
else volume_id = "KolibriOS"
767
else volume_id = "KolibriOS"
767
end
768
end
768
tup.definerule{inputs = input_deps, command =
769
tup.definerule{inputs = input_deps, command =
769
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
770
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
770
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
771
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
771
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
772
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
772
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
773
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
773
  outputs = {"kolibri.iso"}}
774
  outputs = {"kolibri.iso"}}
774
 
775
 
775
-- generate command and dependencies for distribution kit
776
-- generate command and dependencies for distribution kit
776
cp = 'cp "%f" "%o"'
777
cp = 'cp "%f" "%o"'
777
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
778
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
778
for i,v in ipairs(distr_extra_files) do
779
for i,v in ipairs(distr_extra_files) do
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
780
  cmd = cp:gsub("%%f", v[2]) -- input can be a group, we can't rely on tup's expansion of %f in this case
780
  if string.sub(v[1], -1) == "/"
781
  if string.sub(v[1], -1) == "/"
781
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
782
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
782
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
783
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
783
  end
784
  end
784
end
785
end