Subversion Repositories Kolibri OS

Rev

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

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