Subversion Repositories Kolibri OS

Rev

Rev 6187 | Rev 6207 | 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"},
5701 leency 37
 {"DEFAULT.SKN", "common/default.skn"},
5098 clevermous 38
 {"SETTINGS/ICON.INI", build_type .. "/settings/icon.ini"},
5425 leency 39
 {"ICONS32.PNG", "common/icons32.png"},
5762 leency 40
 {"INDEX.HTM", "common/index_htm"},
5098 clevermous 41
 {"KERPACK", "common/kerpack"},
5873 pathoswith 42
 {"SETTINGS/KEYMAP.KEY", PROGS .. "/system/taskbar/trunk/KEYMAP.KEY"},
5098 clevermous 43
 {"SETTINGS/LANG.INI", build_type .. "/settings/lang.ini"},
44
 {"KUZKINA.MID", "common/kuzkina.mid"},
45
 {"LANG.INC", build_type .. "/lang.inc"},
46
 {"SETTINGS/MENU.DAT", build_type .. "/settings/menu.dat"},
47
 {"SETTINGS/KOLIBRI.LBL", build_type .. "/settings/kolibri.lbl"},
5453 leency 48
 {"SETTINGS/TASKBAR.INI", build_type .. "/settings/taskbar.ini"},
5863 punk_joker 49
 {"SETTINGS/ESKIN.INI", "common/settings/eskin.ini"},
5098 clevermous 50
 {"SETTINGS/DOCKY.INI", "common/settings/docky.ini"},
5394 eAndrew 51
 {"SETTINGS/ASSOC.INI", "common/settings/assoc.ini"},
6065 leency 52
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
5098 clevermous 53
 {"NOTIFY3.PNG", "common/notify3.png"},
5972 leency 54
 {"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
5098 clevermous 55
 {"VMODE", "common/vmode"},
56
 {"3D/HOUSE.3DS", "common/3d/house.3ds"},
57
 {"File Managers/EOLITE.INI", "common/File Managers/eolite.ini"},
58
 {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
59
 {"File Managers/KFM.INI", "common/File Managers/kfm.ini"},
60
 {"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
5882 pavelyakov 61
 {"LIB/FS.OBJ", "common/lib/fs.obj"},
62
 {"LIB/ARRAY.OBJ", "common/lib/array.obj"},
63
 {"LIB/LIBRARY.OBJ", "common/lib/library.obj"},
5098 clevermous 64
 {"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
65
 {"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
5647 leency 66
 {"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
67
 {"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
68
 {"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
69
 {"MEDIA/IMGF/DITHER.OBJ", "common/media/ImgF/dither.obj"},
70
 {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
5098 clevermous 71
 {"SETTINGS/NETWORK.INI", build_type .. "/settings/network.ini"},
72
 {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
73
 {"NETWORK/USERS.INI", "common/network/users.ini"},
74
}
75
-- For russian build, add russian-only files.
76
if build_type == "rus" then tup.append_table(img_files, {
77
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt"},
78
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/rus/.shell"},
5502 punk_joker 79
 {"SETTINGS/GAME_CENTER.INI", "rus/settings/game_center.ini"},
5098 clevermous 80
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
81
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"},
82
 {"PIPETKA", build_type .. "/pipetka"},
83
 {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
84
 {"GAMES/APPDATA.DAT", build_type .. "/games/appdata.dat"},
85
 {"GAMES/ATAKA", build_type .. "/games/ataka"},
86
 {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
87
 {"GAMES/PADENIE", build_type .. "/games/padenie"},
88
 {"GAMES/WHOWTBAM", build_type .. "/games/whowtbam"},
89
}) else tup.append_table(img_files, {
90
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
5502 punk_joker 91
 {"SETTINGS/GAME_CENTER.INI", "common/settings/game_center.ini"},
5098 clevermous 92
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
93
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
94
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
95
}) end
96
if build_type == "it" then tup.append_table(img_files, {
97
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey_it.ini"},
98
}) else tup.append_table(img_files, {
99
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
100
}) end
101
 
102
--[[
103
Files to be included in kolibri.iso and distribution kit outside of kolibri.img.
5132 clevermous 104
 
5098 clevermous 105
The first subitem of every item is name relative to the root of ISO or distribution kit,
106
the second is name of local file.
5132 clevermous 107
 
5098 clevermous 108
If the first subitem ends in /, the last component of local file name is appended.
109
The last component of the second subitem may contain '*'; if so, it will be expanded
110
according to usual rules, but without matching directories.
5132 clevermous 111
 
112
Tup does not allow a direct dependency on a file that is generated in a directory
113
other than where Tupfile.lua is and its children. Most files are generated
114
in the directory with Tupfile.lua; for other files, the item should contain
115
a named subitem "group=path/" and the file should be put in .
5098 clevermous 116
--]]
117
extra_files = {
118
 {"/", build_type .. "/distr_data/autorun.inf"},
119
 {"/", build_type .. "/distr_data/KolibriOS_icon.ico"},
120
 {"/", build_type .. "/settings/kolibri.lbl"},
121
 {"Docs/stack.txt", build_type .. "/docs/STACK.TXT"},
122
 {"HD_Load/9x2klbr/", "common/HD_load/9x2klbr/LDKLBR.VXD"},
123
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/AUTOEXEC.BAT"},
124
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/CONFIG.SYS"},
125
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme.txt"},
126
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme_Win.txt"},
127
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_install.bat"},
128
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_remove.bat"},
129
 {"HD_Load/", "common/HD_load/memdisk"},
130
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot.rtf"},
131
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
132
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
5764 leency 133
 {"kolibrios/3D/3DSHEART", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
5098 clevermous 134
 {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
135
 {"kolibrios/emul/fceu/", "common/emul/fceu/*"},
136
 {"kolibrios/emul/", "common/emul/gameboy"},
137
 {"kolibrios/emul/", "common/emul/scummvm"},
138
 {"kolibrios/emul/", "common/emul/zsnes"},
5827 leency 139
 {"kolibrios/demos/ak47.lif", "common/demos/ak47.lif"},
140
 {"kolibrios/demos/life2", "common/demos/life2"},
141
 {"kolibrios/demos/relay.lif", "common/demos/relay.lif"},
142
 {"kolibrios/demos/rpento.lif", "common/demos/rpento.lif"},
6179 leency 143
 {"kolibrios/games/BabyPainter", "common/games/BabyPainter"},
144
 {"kolibrios/games/bomber/ackack.bmp", PROGS .. "/games/bomber/ackack.bmp"},
145
 {"kolibrios/games/bomber/bomb.bmp", PROGS .. "/games/bomber/bomb.bmp"},
146
 {"kolibrios/games/bomber/plane.bmp", PROGS .. "/games/bomber/plane.bmp"},
147
 {"kolibrios/games/bomber/tile.bmp", PROGS .. "/games/bomber/tile.bmp"},
148
 {"kolibrios/games/doom1/", "common/games/doom/*"},
5500 punk_joker 149
 {"kolibrios/games/pig/", "common/games/pig/*"},
5098 clevermous 150
 {"kolibrios/games/fara/fara.gfx", "common/games/fara.gfx"},
5647 leency 151
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
6179 leency 152
 {"kolibrios/games/knight", "common/games/knight"},
5296 ZblCoder 153
 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
5098 clevermous 154
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
5647 leency 155
 {"kolibrios/games/megamaze", build_type .. "/games/megamaze"},
6181 leency 156
 {"kolibrios/games/mun/data/", "common/games/mun/data/*"},
6182 leency 157
 {"kolibrios/games/mun/libc.dll", "common/games/mun/libc.dll"},
6181 leency 158
 {"kolibrios/games/mun/mun", "common/games/mun/mun"},
5647 leency 159
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
6187 hidnplayr 160
 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
6188 hidnplayr 161
 {"kolibrios/games/soko/", "common/games/soko/*"},
6156 leency 162
 {"kolibrios/drivers/ahci/", "common/drivers/ahci/*"},
163
 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
164
 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
165
 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
5098 clevermous 166
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
167
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
168
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
169
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
170
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
5378 serge 171
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
172
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
173
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
174
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
175
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
176
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
5132 clevermous 177
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
5378 serge 178
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
5098 clevermous 179
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
5378 serge 180
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
181
 {"kolibrios/lib/i965_dri.drv", "common/lib/i965_dri.drv"},
182
 {"kolibrios/media/fplay", "common/media/fplay"},
6155 leency 183
 {"kolibrios/media/updf", "common/media/updf"},
184
 {"kolibrios/media/vttf", "common/media/vttf"},
5098 clevermous 185
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
186
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
6094 leency 187
 {"kolibrios/res/skins/", "../skins/authors.txt"},
6095 leency 188
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
5098 clevermous 189
}
190
if build_type == "rus" then tup.append_table(extra_files, {
191
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
192
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
193
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
194
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
195
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
196
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
197
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
198
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
199
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
200
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
201
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
202
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
203
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
204
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
5471 leency 205
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
5098 clevermous 206
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
207
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
208
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
209
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
5334 Anton_K 210
 {"kolibrios/games/Dungeons/Resources/Textures/Environment/", PROGS .. "/games/Dungeons/Resources/Textures/Environment/*"},
211
 {"kolibrios/games/Dungeons/Resources/Textures/Objects/", PROGS .. "/games/Dungeons/Resources/Textures/Objects/*"},
212
 {"kolibrios/games/Dungeons/Resources/Textures/HUD/", PROGS .. "/games/Dungeons/Resources/Textures/HUD/*"},
213
 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
214
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
5098 clevermous 215
}) else tup.append_table(extra_files, {
216
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
217
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
218
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
219
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
220
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
221
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
222
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
223
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
224
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
225
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
226
}) end
227
--[[
228
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
229
Same syntax as extra_files.
230
]]--
231
if build_type == "rus" then
232
distr_extra_files = {
233
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
234
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
235
}
236
else
237
distr_extra_files = {
238
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
239
}
240
end
241
--[[
242
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
243
Same syntax as extra_files.
244
]]--
245
if build_type == "rus" then
246
iso_extra_files = {
247
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
248
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
249
}
250
else
251
iso_extra_files = {
252
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
253
}
254
end
255
 
256
-- Programs that require FASM to compile.
257
if tup.getconfig('NO_FASM') ~= 'full' then
258
tup.append_table(img_files, {
259
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
260
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
5432 eAndrew 261
 {"@VOLUME", PROGS .. "/media/volume/volume"},
5454 leency 262
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
5098 clevermous 263
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
5394 eAndrew 264
 {"@OPEN", PROGS .. "/system/open/open"},
5098 clevermous 265
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
266
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
267
 {"REFRSCRN", PROGS .. "/system/refrscrn/refrscrn"},
268
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
269
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
270
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
271
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
272
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
273
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
274
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
6169 leency 275
 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
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