Subversion Repositories Kolibri OS

Rev

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

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