Subversion Repositories Kolibri OS

Rev

Rev 6188 | Rev 6208 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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