Subversion Repositories Kolibri OS

Rev

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

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