Subversion Repositories Kolibri OS

Rev

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

Rev 6207 Rev 6208
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"},
308
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
313
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
309
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
314
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
310
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
315
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
311
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
316
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
312
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
317
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
313
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
318
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
314
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
319
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
315
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
320
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
316
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
321
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
317
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
322
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
318
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
323
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
319
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
324
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
320
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
325
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
321
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
326
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
322
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
327
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
323
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
328
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
324
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
329
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
325
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
330
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
326
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
331
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
327
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
332
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
328
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
333
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
329
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
334
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
330
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
335
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
331
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
336
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
332
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
337
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
333
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
338
 {"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"},
339
 {"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"},
340
 {"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"},
341
 {"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"},
342
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
338
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
343
 {"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"},
344
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
340
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
345
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
341
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
346
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
342
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
347
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
343
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
348
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
344
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
349
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
345
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
350
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
346
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
351
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
347
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
352
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
348
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
353
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
349
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
354
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
350
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
355
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
351
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
356
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
352
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
357
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
353
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
358
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
354
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
359
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
355
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
360
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
356
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
361
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
357
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
362
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
358
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
363
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
359
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
364
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
360
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
365
 {"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"},
366
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
362
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
367
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
-
 
368
 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
363
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
369
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
364
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
370
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
365
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
371
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
366
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
372
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
367
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
373
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
368
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
374
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
369
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
375
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
370
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
376
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
371
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
377
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
372
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
378
 {"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"},
379
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
374
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
380
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
375
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
381
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
376
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
382
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
377
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
383
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
378
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
384
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
379
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
385
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
380
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
386
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
381
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
387
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
382
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
388
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
383
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
389
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
384
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
390
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
385
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
391
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
386
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
392
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
387
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
393
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
388
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
394
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
389
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
395
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
390
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
396
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
391
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
397
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
392
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
398
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
393
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
399
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
394
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
400
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
395
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
401
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
396
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
402
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
397
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
403
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
398
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
404
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
399
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
405
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
400
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
406
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
401
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
407
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
402
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
408
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
403
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
409
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
404
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
410
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
405
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
411
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
406
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
412
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
407
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
413
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
408
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
414
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
409
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
415
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
410
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
416
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
411
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
417
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
412
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
418
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
413
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
419
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
414
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
420
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
415
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
421
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
416
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
422
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
417
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
423
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
418
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
424
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
419
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
425
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
420
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
426
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
421
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
427
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
422
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
428
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
423
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
429
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
424
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
430
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
425
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
431
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
426
})
432
})
427
tup.append_table(extra_files, {
433
tup.append_table(extra_files, {
428
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
434
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
429
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
435
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
430
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
436
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
431
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
437
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
432
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
438
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
433
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
439
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
434
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
440
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
435
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
441
 {"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"},
442
 {"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"},
443
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
438
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
444
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
439
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
445
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
440
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
446
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
441
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
447
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
442
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
448
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
443
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
449
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
444
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
450
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
445
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
451
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
446
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
452
 {"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"},
453
 {"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"},
454
 {"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"},
455
 {"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"},
456
 {"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"},
457
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
452
})
458
})
453
-- For russian build, add russian-only programs.
459
-- For russian build, add russian-only programs.
454
if build_type == "rus" then tup.append_table(img_files, {
460
if build_type == "rus" then tup.append_table(img_files, {
455
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
461
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
456
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
462
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
457
}) else tup.append_table(img_files, {
463
}) else tup.append_table(img_files, {
458
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
464
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
459
}) end
465
}) end
460
 
466
 
461
if build_type == "rus" then tup.append_table(extra_files, {
467
if build_type == "rus" then tup.append_table(extra_files, {
462
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
468
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
463
}) end
469
}) end
464
 
470
 
465
end -- tup.getconfig('NO_FASM') ~= 'full'
471
end -- tup.getconfig('NO_FASM') ~= 'full'
466
 
472
 
467
-- Programs that require NASM to compile.
473
-- Programs that require NASM to compile.
468
if tup.getconfig('NO_NASM') ~= 'full' then
474
if tup.getconfig('NO_NASM') ~= 'full' then
469
tup.append_table(img_files, {
475
tup.append_table(img_files, {
470
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
476
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
471
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
477
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
472
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
478
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
473
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
479
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
474
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
480
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
475
})
481
})
476
end -- tup.getconfig('NO_NASM') ~= 'full'
482
end -- tup.getconfig('NO_NASM') ~= 'full'
477
 
483
 
478
-- Programs that require C-- to compile.
484
-- Programs that require C-- to compile.
479
if tup.getconfig('NO_CMM') ~= 'full' then
485
if tup.getconfig('NO_CMM') ~= 'full' then
480
tup.append_table(img_files, {
486
tup.append_table(img_files, {
481
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
487
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
482
 {"FONT_VIEWER", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
488
 {"FONT_VIEWER", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
483
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
489
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
484
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
490
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
485
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
491
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
486
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
492
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
487
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie/pixie.com"},
493
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie/pixie.com"},
488
 {"MOUSE_CFG", PROGS .. "/cmm/mouse_cfg/mouse_cfg.com"},
494
 {"MOUSE_CFG", PROGS .. "/cmm/mouse_cfg/mouse_cfg.com"},
489
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
495
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
490
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
496
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
491
 {"TEXTREADER", PROGS .. "/cmm/textreader/textreader.com"},
497
 {"TEXTREADER", PROGS .. "/cmm/textreader/textreader.com"},
492
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
498
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
493
 {"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
499
 {"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
494
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
500
 {"SYSPANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
495
})
501
})
496
end -- tup.getconfig('NO_CMM') ~= 'full'
502
end -- tup.getconfig('NO_CMM') ~= 'full'
497
 
503
 
498
-- Programs that require MSVC to compile.
504
-- Programs that require MSVC to compile.
499
if tup.getconfig('NO_MSVC') ~= 'full' then
505
if tup.getconfig('NO_MSVC') ~= 'full' then
500
tup.append_table(img_files, {
506
tup.append_table(img_files, {
501
 {"GRAPH", PROGS .. "/other/graph/graph"},
507
 {"GRAPH", PROGS .. "/other/graph/graph"},
502
 {"TABLE", PROGS .. "/other/table/table"},
508
 {"TABLE", PROGS .. "/other/table/table"},
503
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
509
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
504
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
510
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
505
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
511
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
506
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
512
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
507
})
513
})
508
tup.append_table(extra_files, {
514
tup.append_table(extra_files, {
509
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
515
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
510
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
516
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
511
})
517
})
512
end -- tup.getconfig('NO_MSVC') ~= 'full'
518
end -- tup.getconfig('NO_MSVC') ~= 'full'
513
 
519
 
514
-- Programs that require GCC to compile.
520
-- Programs that require GCC to compile.
515
if tup.getconfig('NO_GCC') ~= 'full' then
521
if tup.getconfig('NO_GCC') ~= 'full' then
516
tup.append_table(img_files, {
522
tup.append_table(img_files, {
517
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
523
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
518
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
524
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
519
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
525
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
520
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
526
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
521
 {"SHELL", PROGS .. "/system/shell/shell"},
527
 {"SHELL", PROGS .. "/system/shell/shell"},
522
})
528
})
523
tup.append_table(extra_files, {
529
tup.append_table(extra_files, {
524
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
530
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
525
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
531
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
526
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
532
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
527
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
533
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
528
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
534
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
529
 {"kolibrios/games/nsider/", PROGS .. "/games/nsider/nsider"},
535
 {"kolibrios/games/nsider/", PROGS .. "/games/nsider/nsider"},
530
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
536
 {"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"},
537
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
532
})
538
})
533
-- For russian build, add russian-only programs.
539
-- For russian build, add russian-only programs.
534
if build_type == "rus" then tup.append_table(extra_files, {
540
if build_type == "rus" then tup.append_table(extra_files, {
535
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
541
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
536
}) end
542
}) end
537
end -- tup.getconfig('NO_GCC') ~= 'full'
543
end -- tup.getconfig('NO_GCC') ~= 'full'
538
 
544
 
539
-- Skins.
545
-- Skins.
540
tup.include("../skins/skinlist.lua")
546
tup.include("../skins/skinlist.lua")
541
 
547
 
542
--[================================[ CODE ]================================]--
548
--[================================[ CODE ]================================]--
543
-- expand extra_files and similar
549
-- expand extra_files and similar
544
function expand_extra_files(files)
550
function expand_extra_files(files)
545
  local result = {}
551
  local result = {}
546
  for i,v in ipairs(files) do
552
  for i,v in ipairs(files) do
547
    if string.match(v[2], "%*")
553
    if string.match(v[2], "%*")
548
    then
554
    then
549
      local g = tup.glob(v[2])
555
      local g = tup.glob(v[2])
550
      for j,x in ipairs(g) do
556
      for j,x in ipairs(g) do
551
        table.insert(result, {v[1], x, group=v.group})
557
        table.insert(result, {v[1], x, group=v.group})
552
      end
558
      end
553
    else
559
    else
554
      if v.cp1251_from then
560
      if v.cp1251_from then
555
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
561
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
556
      end
562
      end
557
      table.insert(result, {v[1], v[2], group=v.group})
563
      table.insert(result, {v[1], v[2], group=v.group})
558
    end
564
    end
559
  end
565
  end
560
  return result
566
  return result
561
end
567
end
562
 
568
 
563
-- append skins to extra_files
569
-- append skins to extra_files
564
for i,v in ipairs(skinlist) do
570
for i,v in ipairs(skinlist) do
565
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
571
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
566
end
572
end
567
 
573
 
568
-- prepare distr_extra_files and iso_extra_files: expand and append common part
574
-- prepare distr_extra_files and iso_extra_files: expand and append common part
569
extra_files = expand_extra_files(extra_files)
575
extra_files = expand_extra_files(extra_files)
570
distr_extra_files = expand_extra_files(distr_extra_files)
576
distr_extra_files = expand_extra_files(distr_extra_files)
571
iso_extra_files = expand_extra_files(iso_extra_files)
577
iso_extra_files = expand_extra_files(iso_extra_files)
572
tup.append_table(distr_extra_files, extra_files)
578
tup.append_table(distr_extra_files, extra_files)
573
tup.append_table(iso_extra_files, extra_files)
579
tup.append_table(iso_extra_files, extra_files)
574
 
580
 
575
-- generate list of directories to be created inside kolibri.img
581
-- generate list of directories to be created inside kolibri.img
576
img_dirs = {}
582
img_dirs = {}
577
input_deps = {}
583
input_deps = {}
578
for i,v in ipairs(img_files) do
584
for i,v in ipairs(img_files) do
579
  img_file = v[1]
585
  img_file = v[1]
580
  local_file = v[2]
586
  local_file = v[2]
581
 
587
 
582
  slash_pos = 0
588
  slash_pos = 0
583
  while true do
589
  while true do
584
    slash_pos = string.find(img_file, '/', slash_pos + 1)
590
    slash_pos = string.find(img_file, '/', slash_pos + 1)
585
    if not slash_pos then break end
591
    if not slash_pos then break end
586
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
592
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
587
  end
593
  end
588
 
594
 
589
  -- tup does not want to see hidden files as dependencies
595
  -- tup does not want to see hidden files as dependencies
590
  if not string.match(local_file, "/%.") then
596
  if not string.match(local_file, "/%.") then
591
    table.insert(input_deps, v.group or local_file)
597
    table.insert(input_deps, v.group or local_file)
592
  end
598
  end
593
end
599
end
594
 
600
 
595
-- create empty 1.44M file
601
-- create empty 1.44M file
596
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
602
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"
603
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
604
-- format it as a standard 1.44M floppy
599
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
605
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
600
-- copy bootloader
606
-- copy bootloader
601
if tup.getconfig("NO_FASM") ~= "full" then
607
if tup.getconfig("NO_FASM") ~= "full" then
602
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
608
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"
609
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)
610
table.insert(input_deps, bootloader)
605
end
611
end
606
-- make folders
612
-- make folders
607
table.sort(img_dirs)
613
table.sort(img_dirs)
608
for i,v in ipairs(img_dirs) do
614
for i,v in ipairs(img_dirs) do
609
  if v ~= img_dirs[i-1] then
615
  if v ~= img_dirs[i-1] then
610
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
616
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
611
  end
617
  end
612
end
618
end
613
-- copy files
619
-- copy files
614
for i,v in ipairs(img_files) do
620
for i,v in ipairs(img_files) do
615
  local_file = v[2]
621
  local_file = v[2]
616
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
622
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
617
  then
623
  then
618
    -- for kernel.mnt, insert autobuild revision identifier
624
    -- for kernel.mnt, insert autobuild revision identifier
619
    -- from .revision to .kernel.mnt
625
    -- from .revision to .kernel.mnt
620
    -- note that .revision and .kernel.mnt must begin with .
626
    -- note that .revision and .kernel.mnt must begin with .
621
    -- to prevent tup from tracking them
627
    -- to prevent tup from tracking them
622
    if build_type == "rus"
628
    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)'
629
    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)]")'
630
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
625
    end
631
    end
626
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
632
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
627
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
633
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
628
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
634
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
629
    make_img_command = make_img_command .. " && str=" .. str
635
    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'
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'
631
    local_file = ".kernel.mnt"
637
    local_file = ".kernel.mnt"
632
  end
638
  end
633
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
639
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
634
end
640
end
635
 
641
 
636
-- generate tup rule for kolibri.img
642
-- generate tup rule for kolibri.img
637
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
643
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
638
 
644
 
639
-- generate command and dependencies for mkisofs
645
-- generate command and dependencies for mkisofs
640
input_deps = {"kolibri.img"}
646
input_deps = {"kolibri.img"}
641
iso_files_list = ""
647
iso_files_list = ""
642
for i,v in ipairs(iso_extra_files) do
648
for i,v in ipairs(iso_extra_files) do
643
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
649
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
644
  table.insert(input_deps, v.group or v[2])
650
  table.insert(input_deps, v.group or v[2])
645
end
651
end
646
 
652
 
647
-- generate tup rule for kolibri.iso
653
-- generate tup rule for kolibri.iso
648
if tup.getconfig("INSERT_REVISION_ID") ~= ""
654
if tup.getconfig("INSERT_REVISION_ID") ~= ""
649
then volume_id = "KolibriOS r`cat .revision`"
655
then volume_id = "KolibriOS r`cat .revision`"
650
else volume_id = "KolibriOS"
656
else volume_id = "KolibriOS"
651
end
657
end
652
tup.definerule{inputs = input_deps, command =
658
tup.definerule{inputs = input_deps, command =
653
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
659
  '^ 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 ' ..
660
  '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" ' ..
661
  '-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',
662
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
657
  outputs = {"kolibri.iso"}}
663
  outputs = {"kolibri.iso"}}
658
 
664
 
659
-- generate command and dependencies for distribution kit
665
-- generate command and dependencies for distribution kit
660
cp = 'cp "%f" "%o"'
666
cp = 'cp "%f" "%o"'
661
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
667
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
662
for i,v in ipairs(distr_extra_files) do
668
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
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
664
  if string.sub(v[1], -1) == "/"
670
  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])}}
671
  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]}}
672
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
667
  end
673
  end
668
end
674
end