Subversion Repositories Kolibri OS

Rev

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