Subversion Repositories Kolibri OS

Rev

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

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