Subversion Repositories Kolibri OS

Rev

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

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