Subversion Repositories Kolibri OS

Rev

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

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