Subversion Repositories Kolibri OS

Rev

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