Subversion Repositories Kolibri OS

Rev

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

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