Subversion Repositories Kolibri OS

Rev

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

Rev 6186 Rev 6187
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/drivers/ahci/", "common/drivers/ahci/*"},
161
 {"kolibrios/drivers/ahci/", "common/drivers/ahci/*"},
162
 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
162
 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
163
 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
163
 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
164
 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
164
 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
165
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
165
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
166
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
166
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
167
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
167
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
168
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
168
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
169
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
169
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
170
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
170
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
171
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
171
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
172
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
172
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
173
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
173
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
174
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
174
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
175
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
175
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
176
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
176
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
177
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
177
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
178
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
178
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
179
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
179
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
180
 {"kolibrios/lib/i965_dri.drv", "common/lib/i965_dri.drv"},
180
 {"kolibrios/lib/i965_dri.drv", "common/lib/i965_dri.drv"},
181
 {"kolibrios/media/fplay", "common/media/fplay"},
181
 {"kolibrios/media/fplay", "common/media/fplay"},
182
 {"kolibrios/media/updf", "common/media/updf"},
182
 {"kolibrios/media/updf", "common/media/updf"},
183
 {"kolibrios/media/vttf", "common/media/vttf"},
183
 {"kolibrios/media/vttf", "common/media/vttf"},
184
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
184
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
185
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
185
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
186
 {"kolibrios/res/skins/", "../skins/authors.txt"},
186
 {"kolibrios/res/skins/", "../skins/authors.txt"},
187
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
187
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
188
}
188
}
189
if build_type == "rus" then tup.append_table(extra_files, {
189
if build_type == "rus" then tup.append_table(extra_files, {
190
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
190
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
191
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
191
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
192
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
192
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
193
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
193
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
194
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
194
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
195
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
195
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
196
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
196
 {"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"},
197
 {"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"},
198
 {"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"},
199
 {"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"},
200
 {"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"},
201
 {"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"},
202
 {"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"},
203
 {"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"},
204
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
205
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
205
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
206
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
206
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
207
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
207
 {"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"},
208
 {"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/*"},
209
 {"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/*"},
210
 {"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/*"},
211
 {"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"},
212
 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
213
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
213
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
214
}) else tup.append_table(extra_files, {
214
}) else tup.append_table(extra_files, {
215
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
215
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
216
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
216
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
217
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
217
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
218
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
218
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
219
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
219
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
220
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
220
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
221
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
221
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
222
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
222
 {"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"},
223
 {"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"},
224
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
225
}) end
225
}) end
226
--[[
226
--[[
227
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
227
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
228
Same syntax as extra_files.
228
Same syntax as extra_files.
229
]]--
229
]]--
230
if build_type == "rus" then
230
if build_type == "rus" then
231
distr_extra_files = {
231
distr_extra_files = {
232
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
232
 {"/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"},
233
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
234
}
234
}
235
else
235
else
236
distr_extra_files = {
236
distr_extra_files = {
237
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
237
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
238
}
238
}
239
end
239
end
240
--[[
240
--[[
241
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
241
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
242
Same syntax as extra_files.
242
Same syntax as extra_files.
243
]]--
243
]]--
244
if build_type == "rus" then
244
if build_type == "rus" then
245
iso_extra_files = {
245
iso_extra_files = {
246
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
246
 {"/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"},
247
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
248
}
248
}
249
else
249
else
250
iso_extra_files = {
250
iso_extra_files = {
251
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
251
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
252
}
252
}
253
end
253
end
254
 
254
 
255
-- Programs that require FASM to compile.
255
-- Programs that require FASM to compile.
256
if tup.getconfig('NO_FASM') ~= 'full' then
256
if tup.getconfig('NO_FASM') ~= 'full' then
257
tup.append_table(img_files, {
257
tup.append_table(img_files, {
258
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
258
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
259
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
259
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
260
 {"@VOLUME", PROGS .. "/media/volume/volume"},
260
 {"@VOLUME", PROGS .. "/media/volume/volume"},
261
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
261
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
262
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
262
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
263
 {"@OPEN", PROGS .. "/system/open/open"},
263
 {"@OPEN", PROGS .. "/system/open/open"},
264
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
264
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
265
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
265
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
266
 {"REFRSCRN", PROGS .. "/system/refrscrn/refrscrn"},
266
 {"REFRSCRN", PROGS .. "/system/refrscrn/refrscrn"},
267
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
267
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
268
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
268
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
269
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
269
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
270
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
270
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
271
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
271
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
272
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
272
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
273
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
273
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
274
 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
274
 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
275
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
275
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
276
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
276
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
277
 {"END", PROGS .. "/system/end/light/end"},
277
 {"END", PROGS .. "/system/end/light/end"},
278
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
278
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
279
 {"GMON", PROGS .. "/system/gmon/gmon"},
279
 {"GMON", PROGS .. "/system/gmon/gmon"},
280
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
280
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
281
 {"@ICON", PROGS .. "/system/icon_new/@icon"},
281
 {"@ICON", PROGS .. "/system/icon_new/@icon"},
282
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
282
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
283
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
283
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
284
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
284
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
285
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
285
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
286
 {"ESKIN", PROGS .. "/system/eskin/trunk/eskin"},
286
 {"ESKIN", PROGS .. "/system/eskin/trunk/eskin"},
287
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
287
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
288
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
288
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
289
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
289
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
290
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
290
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
291
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
291
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
292
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
292
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
293
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
293
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
294
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
294
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
295
 {"RUN", PROGS .. "/system/run/trunk/run"},
295
 {"RUN", PROGS .. "/system/run/trunk/run"},
296
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
296
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
297
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
297
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
298
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
298
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
299
 {"TEST", PROGS .. "/system/test/trunk/test"},
299
 {"TEST", PROGS .. "/system/test/trunk/test"},
300
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
300
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
301
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
301
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
302
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
302
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
303
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
303
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
304
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
304
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
305
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
305
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
306
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
306
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
307
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
307
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
308
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
308
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
309
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
309
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
310
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
310
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
311
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
311
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
312
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
312
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
313
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
313
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
314
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
314
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
315
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
315
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
316
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
316
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
317
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
317
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
318
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
318
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
319
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
319
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
320
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
320
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
321
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
321
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
322
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
322
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
323
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
323
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
324
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
324
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
325
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
325
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
326
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
326
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
327
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
327
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
328
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
328
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
329
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
329
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
330
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
330
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
331
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
331
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
332
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
332
 {"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"},
333
 {"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"},
334
 {"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"},
335
 {"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"},
336
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
337
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
337
 {"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"},
338
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
339
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
339
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
340
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
340
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
341
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
341
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
342
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
342
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
343
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
343
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
344
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
344
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
345
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
345
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
346
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
346
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
347
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
347
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
348
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
348
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
349
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
349
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
350
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
350
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
351
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
351
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
352
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
352
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
353
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
353
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
354
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
354
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
355
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
355
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
356
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
356
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
357
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
357
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
358
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
358
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
359
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
359
 {"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"},
360
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
361
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
361
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
362
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
362
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
363
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
363
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
364
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
364
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
365
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
365
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
366
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
366
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
367
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
367
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
368
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
368
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
369
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
369
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
370
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
370
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
371
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
371
 {"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"},
372
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
373
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
373
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
374
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
374
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
375
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
375
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
376
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
376
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
377
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
377
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
378
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
378
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
379
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
379
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
380
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
380
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
381
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
381
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
382
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
382
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
383
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
383
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
384
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
384
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
385
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
385
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
386
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
386
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
387
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
387
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
388
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
388
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
389
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
389
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
390
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
390
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
391
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
391
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
392
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
392
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
393
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
393
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
394
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
394
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
395
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
395
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
396
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
396
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
397
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
397
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
398
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
398
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
399
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
399
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
400
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
400
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
401
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
401
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
402
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
402
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
403
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
403
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
404
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
404
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
405
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
405
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
406
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
406
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
407
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
407
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
408
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
408
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
409
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
409
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
410
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
410
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
411
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
411
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
412
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
412
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
413
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
413
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
414
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
414
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
415
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
415
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
416
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
416
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
417
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
417
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
418
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
418
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
419
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
419
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
420
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
420
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
421
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
421
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
422
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
422
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
423
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
423
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
424
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
424
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
425
})
425
})
426
tup.append_table(extra_files, {
426
tup.append_table(extra_files, {
427
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
427
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
428
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
428
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
429
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
429
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
430
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
430
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
431
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
431
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
432
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
432
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
433
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
433
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
434
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
434
 {"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"},
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/enable.exe"},
436
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
437
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
437
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
438
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
438
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
439
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
439
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
440
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
440
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
441
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
441
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
442
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
442
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
443
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
443
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
444
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
444
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
445
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
445
 {"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"},
446
 {"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"},
447
 {"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"},
448
 {"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"},
449
 {"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"},
450
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
451
})
451
})
452
-- For russian build, add russian-only programs.
452
-- For russian build, add russian-only programs.
453
if build_type == "rus" then tup.append_table(img_files, {
453
if build_type == "rus" then tup.append_table(img_files, {
454
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
454
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
455
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
455
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
456
}) else tup.append_table(img_files, {
456
}) else tup.append_table(img_files, {
457
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
457
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
458
}) end
458
}) end
459
 
459
 
460
if build_type == "rus" then tup.append_table(extra_files, {
460
if build_type == "rus" then tup.append_table(extra_files, {
461
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
461
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
462
}) end
462
}) end
463
 
463
 
464
end -- tup.getconfig('NO_FASM') ~= 'full'
464
end -- tup.getconfig('NO_FASM') ~= 'full'
465
 
465
 
466
-- Programs that require NASM to compile.
466
-- Programs that require NASM to compile.
467
if tup.getconfig('NO_NASM') ~= 'full' then
467
if tup.getconfig('NO_NASM') ~= 'full' then
468
tup.append_table(img_files, {
468
tup.append_table(img_files, {
469
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
469
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
470
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
470
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
471
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
471
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
472
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
472
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
473
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
473
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
474
})
474
})
475
end -- tup.getconfig('NO_NASM') ~= 'full'
475
end -- tup.getconfig('NO_NASM') ~= 'full'
476
 
476
 
477
-- Programs that require C-- to compile.
477
-- Programs that require C-- to compile.
478
if tup.getconfig('NO_CMM') ~= 'full' then
478
if tup.getconfig('NO_CMM') ~= 'full' then
479
tup.append_table(img_files, {
479
tup.append_table(img_files, {
480
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
480
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
481
 {"FONT_VIEWER", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
481
 {"FONT_VIEWER", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
482
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
482
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
483
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
483
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
484
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
484
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
485
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
485
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
486
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie/pixie.com"},
486
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie/pixie.com"},
487
 {"MOUSE_CFG", PROGS .. "/cmm/mouse_cfg/mouse_cfg.com"},
487
 {"MOUSE_CFG", PROGS .. "/cmm/mouse_cfg/mouse_cfg.com"},
488
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
488
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
489
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
489
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
490
 {"TEXTREADER", PROGS .. "/cmm/textreader/textreader.com"},
490
 {"TEXTREADER", PROGS .. "/cmm/textreader/textreader.com"},
491
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
491
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
492
 {"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
492
 {"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
493
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
493
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
494
})
494
})
495
end -- tup.getconfig('NO_CMM') ~= 'full'
495
end -- tup.getconfig('NO_CMM') ~= 'full'
496
 
496
 
497
-- Programs that require MSVC to compile.
497
-- Programs that require MSVC to compile.
498
if tup.getconfig('NO_MSVC') ~= 'full' then
498
if tup.getconfig('NO_MSVC') ~= 'full' then
499
tup.append_table(img_files, {
499
tup.append_table(img_files, {
500
 {"GRAPH", PROGS .. "/other/graph/graph"},
500
 {"GRAPH", PROGS .. "/other/graph/graph"},
501
 {"TABLE", PROGS .. "/other/table/table"},
501
 {"TABLE", PROGS .. "/other/table/table"},
502
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
502
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
503
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
503
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
504
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
504
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
505
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
505
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
506
})
506
})
507
tup.append_table(extra_files, {
507
tup.append_table(extra_files, {
508
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
508
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
509
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
509
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
510
})
510
})
511
end -- tup.getconfig('NO_MSVC') ~= 'full'
511
end -- tup.getconfig('NO_MSVC') ~= 'full'
512
 
512
 
513
-- Programs that require GCC to compile.
513
-- Programs that require GCC to compile.
514
if tup.getconfig('NO_GCC') ~= 'full' then
514
if tup.getconfig('NO_GCC') ~= 'full' then
515
tup.append_table(img_files, {
515
tup.append_table(img_files, {
516
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
516
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
517
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
517
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
518
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
518
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
519
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
519
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
520
 {"SHELL", PROGS .. "/system/shell/shell"},
520
 {"SHELL", PROGS .. "/system/shell/shell"},
521
})
521
})
522
tup.append_table(extra_files, {
522
tup.append_table(extra_files, {
523
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
523
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
524
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
524
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
525
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
525
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
526
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
526
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
527
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
527
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
528
 {"kolibrios/games/nsider/", PROGS .. "/games/nsider/nsider"},
528
 {"kolibrios/games/nsider/", PROGS .. "/games/nsider/nsider"},
529
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
529
 {"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"},
530
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
531
})
531
})
532
-- For russian build, add russian-only programs.
532
-- For russian build, add russian-only programs.
533
if build_type == "rus" then tup.append_table(extra_files, {
533
if build_type == "rus" then tup.append_table(extra_files, {
534
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
534
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
535
}) end
535
}) end
536
end -- tup.getconfig('NO_GCC') ~= 'full'
536
end -- tup.getconfig('NO_GCC') ~= 'full'
537
 
537
 
538
-- Skins.
538
-- Skins.
539
tup.include("../skins/skinlist.lua")
539
tup.include("../skins/skinlist.lua")
540
 
540
 
541
--[================================[ CODE ]================================]--
541
--[================================[ CODE ]================================]--
542
-- expand extra_files and similar
542
-- expand extra_files and similar
543
function expand_extra_files(files)
543
function expand_extra_files(files)
544
  local result = {}
544
  local result = {}
545
  for i,v in ipairs(files) do
545
  for i,v in ipairs(files) do
546
    if string.match(v[2], "%*")
546
    if string.match(v[2], "%*")
547
    then
547
    then
548
      local g = tup.glob(v[2])
548
      local g = tup.glob(v[2])
549
      for j,x in ipairs(g) do
549
      for j,x in ipairs(g) do
550
        table.insert(result, {v[1], x, group=v.group})
550
        table.insert(result, {v[1], x, group=v.group})
551
      end
551
      end
552
    else
552
    else
553
      if v.cp1251_from then
553
      if v.cp1251_from then
554
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
554
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
555
      end
555
      end
556
      table.insert(result, {v[1], v[2], group=v.group})
556
      table.insert(result, {v[1], v[2], group=v.group})
557
    end
557
    end
558
  end
558
  end
559
  return result
559
  return result
560
end
560
end
561
 
561
 
562
-- append skins to extra_files
562
-- append skins to extra_files
563
for i,v in ipairs(skinlist) do
563
for i,v in ipairs(skinlist) do
564
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
564
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
565
end
565
end
566
 
566
 
567
-- prepare distr_extra_files and iso_extra_files: expand and append common part
567
-- prepare distr_extra_files and iso_extra_files: expand and append common part
568
extra_files = expand_extra_files(extra_files)
568
extra_files = expand_extra_files(extra_files)
569
distr_extra_files = expand_extra_files(distr_extra_files)
569
distr_extra_files = expand_extra_files(distr_extra_files)
570
iso_extra_files = expand_extra_files(iso_extra_files)
570
iso_extra_files = expand_extra_files(iso_extra_files)
571
tup.append_table(distr_extra_files, extra_files)
571
tup.append_table(distr_extra_files, extra_files)
572
tup.append_table(iso_extra_files, extra_files)
572
tup.append_table(iso_extra_files, extra_files)
573
 
573
 
574
-- generate list of directories to be created inside kolibri.img
574
-- generate list of directories to be created inside kolibri.img
575
img_dirs = {}
575
img_dirs = {}
576
input_deps = {}
576
input_deps = {}
577
for i,v in ipairs(img_files) do
577
for i,v in ipairs(img_files) do
578
  img_file = v[1]
578
  img_file = v[1]
579
  local_file = v[2]
579
  local_file = v[2]
580
 
580
 
581
  slash_pos = 0
581
  slash_pos = 0
582
  while true do
582
  while true do
583
    slash_pos = string.find(img_file, '/', slash_pos + 1)
583
    slash_pos = string.find(img_file, '/', slash_pos + 1)
584
    if not slash_pos then break end
584
    if not slash_pos then break end
585
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
585
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
586
  end
586
  end
587
 
587
 
588
  -- tup does not want to see hidden files as dependencies
588
  -- tup does not want to see hidden files as dependencies
589
  if not string.match(local_file, "/%.") then
589
  if not string.match(local_file, "/%.") then
590
    table.insert(input_deps, v.group or local_file)
590
    table.insert(input_deps, v.group or local_file)
591
  end
591
  end
592
end
592
end
593
 
593
 
594
-- create empty 1.44M file
594
-- create empty 1.44M file
595
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
595
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"
596
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
597
-- format it as a standard 1.44M floppy
598
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
598
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
599
-- copy bootloader
599
-- copy bootloader
600
if tup.getconfig("NO_FASM") ~= "full" then
600
if tup.getconfig("NO_FASM") ~= "full" then
601
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
601
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"
602
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)
603
table.insert(input_deps, bootloader)
604
end
604
end
605
-- make folders
605
-- make folders
606
table.sort(img_dirs)
606
table.sort(img_dirs)
607
for i,v in ipairs(img_dirs) do
607
for i,v in ipairs(img_dirs) do
608
  if v ~= img_dirs[i-1] then
608
  if v ~= img_dirs[i-1] then
609
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
609
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
610
  end
610
  end
611
end
611
end
612
-- copy files
612
-- copy files
613
for i,v in ipairs(img_files) do
613
for i,v in ipairs(img_files) do
614
  local_file = v[2]
614
  local_file = v[2]
615
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
615
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
616
  then
616
  then
617
    -- for kernel.mnt, insert autobuild revision identifier
617
    -- for kernel.mnt, insert autobuild revision identifier
618
    -- from .revision to .kernel.mnt
618
    -- from .revision to .kernel.mnt
619
    -- note that .revision and .kernel.mnt must begin with .
619
    -- note that .revision and .kernel.mnt must begin with .
620
    -- to prevent tup from tracking them
620
    -- to prevent tup from tracking them
621
    if build_type == "rus"
621
    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)'
622
    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)]")'
623
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
624
    end
624
    end
625
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
625
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
626
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
626
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
627
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
627
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
628
    make_img_command = make_img_command .. " && str=" .. str
628
    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'
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
    local_file = ".kernel.mnt"
630
    local_file = ".kernel.mnt"
631
  end
631
  end
632
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
632
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
633
end
633
end
634
 
634
 
635
-- generate tup rule for kolibri.img
635
-- generate tup rule for kolibri.img
636
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
636
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
637
 
637
 
638
-- generate command and dependencies for mkisofs
638
-- generate command and dependencies for mkisofs
639
input_deps = {"kolibri.img"}
639
input_deps = {"kolibri.img"}
640
iso_files_list = ""
640
iso_files_list = ""
641
for i,v in ipairs(iso_extra_files) do
641
for i,v in ipairs(iso_extra_files) do
642
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
642
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
643
  table.insert(input_deps, v.group or v[2])
643
  table.insert(input_deps, v.group or v[2])
644
end
644
end
645
 
645
 
646
-- generate tup rule for kolibri.iso
646
-- generate tup rule for kolibri.iso
647
if tup.getconfig("INSERT_REVISION_ID") ~= ""
647
if tup.getconfig("INSERT_REVISION_ID") ~= ""
648
then volume_id = "KolibriOS r`cat .revision`"
648
then volume_id = "KolibriOS r`cat .revision`"
649
else volume_id = "KolibriOS"
649
else volume_id = "KolibriOS"
650
end
650
end
651
tup.definerule{inputs = input_deps, command =
651
tup.definerule{inputs = input_deps, command =
652
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
652
  '^ 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 ' ..
653
  '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" ' ..
654
  '-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',
655
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
656
  outputs = {"kolibri.iso"}}
656
  outputs = {"kolibri.iso"}}
657
 
657
 
658
-- generate command and dependencies for distribution kit
658
-- generate command and dependencies for distribution kit
659
cp = 'cp "%f" "%o"'
659
cp = 'cp "%f" "%o"'
660
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
660
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
661
for i,v in ipairs(distr_extra_files) do
661
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
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
  if string.sub(v[1], -1) == "/"
663
  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])}}
664
  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]}}
665
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
666
  end
666
  end
667
end
667
end