Subversion Repositories Kolibri OS

Rev

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

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