Subversion Repositories Kolibri OS

Rev

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