Subversion Repositories Kolibri OS

Rev

Rev 5993 | Rev 6033 | 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/ARCANII", PROGS .. "/games/arcanii/trunk/arcanii"},
337
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
338
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
339
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
340
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
341
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
342
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
343
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
344
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
345
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
346
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
347
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
348
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
349
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
350
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
351
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
352
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
353
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
354
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
355
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
356
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
357
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
358
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
359
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
360
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
361
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
362
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
363
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
364
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
365
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
366
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
367
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
368
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
369
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
370
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
371
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
372
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
6029 hidnplayr 373
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
5098 clevermous 374
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
375
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
376
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
377
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
378
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
379
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
5495 hidnplayr 380
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
5098 clevermous 381
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
382
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
383
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
384
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
385
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
5869 hidnplayr 386
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
5098 clevermous 387
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
388
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
389
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
390
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
391
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
392
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
393
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
394
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
395
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
396
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
397
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
398
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
399
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
400
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
401
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
402
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
403
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
404
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
405
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
406
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
407
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
408
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
409
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
410
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
411
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
412
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
413
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
414
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
415
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
416
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
417
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
418
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
419
})
420
tup.append_table(extra_files, {
421
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
422
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
423
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
424
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
425
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
426
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
427
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
428
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
429
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
430
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
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"},
5863 punk_joker 433
 
5379 serge 434
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
5467 leency 435
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
5098 clevermous 436
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
437
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
438
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
439
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
440
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
441
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
442
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
443
})
444
-- For russian build, add russian-only programs.
445
if build_type == "rus" then tup.append_table(img_files, {
446
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
447
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
448
}) else tup.append_table(img_files, {
449
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
450
 {"GAMES/SOKO", PROGS .. "/games/soko/trunk/SOKO"},
451
}) end
452
 
5334 Anton_K 453
if build_type == "rus" then tup.append_table(extra_files, {
454
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
455
}) end
456
 
5098 clevermous 457
end -- tup.getconfig('NO_FASM') ~= 'full'
458
 
459
-- Programs that require NASM to compile.
460
if tup.getconfig('NO_NASM') ~= 'full' then
461
tup.append_table(img_files, {
462
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
463
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
464
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
465
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
466
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
467
})
468
end -- tup.getconfig('NO_NASM') ~= 'full'
469
 
470
-- Programs that require C-- to compile.
471
if tup.getconfig('NO_CMM') ~= 'full' then
472
tup.append_table(img_files, {
473
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
5993 leency 474
 {"FONT_VIEWER", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
5098 clevermous 475
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
476
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
477
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
478
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
5467 leency 479
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie/pixie.com"},
5632 leency 480
 {"MOUSE_CFG", PROGS .. "/cmm/mouse_cfg/mouse_cfg.com"},
481
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
5479 leency 482
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
5827 leency 483
 {"TEXTREADER", PROGS .. "/cmm/textreader/textreader.com"},
5098 clevermous 484
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
5429 leency 485
 {"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
486
 {"SYSTEM_PANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
5098 clevermous 487
})
488
end -- tup.getconfig('NO_CMM') ~= 'full'
489
 
490
-- Programs that require MSVC to compile.
491
if tup.getconfig('NO_MSVC') ~= 'full' then
492
tup.append_table(img_files, {
493
 {"GRAPH", PROGS .. "/other/graph/graph"},
494
 {"TABLE", PROGS .. "/other/table/table"},
495
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
496
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
5113 clevermous 497
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
5115 clevermous 498
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
5098 clevermous 499
})
5110 clevermous 500
tup.append_table(extra_files, {
5109 clevermous 501
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
5276 ZblCoder 502
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
5109 clevermous 503
})
5098 clevermous 504
end -- tup.getconfig('NO_MSVC') ~= 'full'
505
 
506
-- Programs that require GCC to compile.
507
if tup.getconfig('NO_GCC') ~= 'full' then
508
tup.append_table(img_files, {
5109 clevermous 509
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
510
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
5123 clevermous 511
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
5111 clevermous 512
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
5098 clevermous 513
 {"SHELL", PROGS .. "/system/shell/shell"},
514
})
515
tup.append_table(extra_files, {
516
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
5228 alpine 517
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
5233 raandoom 518
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
5236 alpine 519
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
5336 yogev_ezra 520
 {"kolibrios/games/nsider/", PROGS .. "/games/nsider/nsider"},
5131 clevermous 521
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
522
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
5098 clevermous 523
})
5327 igevorse 524
-- For russian build, add russian-only programs.
5329 igevorse 525
if build_type == "rus" then tup.append_table(extra_files, {
5327 igevorse 526
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
5328 igevorse 527
}) end
5098 clevermous 528
end -- tup.getconfig('NO_GCC') ~= 'full'
529
 
530
-- Skins.
531
tup.include("../skins/skinlist.lua")
532
 
533
--[================================[ CODE ]================================]--
534
-- expand extra_files and similar
535
function expand_extra_files(files)
536
  local result = {}
537
  for i,v in ipairs(files) do
538
    if string.match(v[2], "%*")
539
    then
540
      local g = tup.glob(v[2])
541
      for j,x in ipairs(g) do
5132 clevermous 542
        table.insert(result, {v[1], x, group=v.group})
5098 clevermous 543
      end
544
    else
545
      if v.cp1251_from then
546
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
547
      end
5132 clevermous 548
      table.insert(result, {v[1], v[2], group=v.group})
5098 clevermous 549
    end
550
  end
551
  return result
552
end
553
 
554
-- append skins to extra_files
555
for i,v in ipairs(skinlist) do
556
  table.insert(extra_files, {"Skins/", "../skins/" .. v})
557
end
558
 
559
-- prepare distr_extra_files and iso_extra_files: expand and append common part
560
extra_files = expand_extra_files(extra_files)
561
distr_extra_files = expand_extra_files(distr_extra_files)
562
iso_extra_files = expand_extra_files(iso_extra_files)
563
tup.append_table(distr_extra_files, extra_files)
564
tup.append_table(iso_extra_files, extra_files)
565
 
566
-- generate list of directories to be created inside kolibri.img
567
img_dirs = {}
568
input_deps = {}
569
for i,v in ipairs(img_files) do
570
  img_file = v[1]
571
  local_file = v[2]
572
 
573
  slash_pos = 0
574
  while true do
575
    slash_pos = string.find(img_file, '/', slash_pos + 1)
576
    if not slash_pos then break end
577
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
578
  end
579
 
580
  -- tup does not want to see hidden files as dependencies
581
  if not string.match(local_file, "/%.") then
5132 clevermous 582
    table.insert(input_deps, v.group or local_file)
5098 clevermous 583
  end
584
end
585
 
586
-- create empty 1.44M file
5118 clevermous 587
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
588
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
5098 clevermous 589
-- format it as a standard 1.44M floppy
590
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
591
-- copy bootloader
592
if tup.getconfig("NO_FASM") ~= "full" then
593
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
594
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
595
table.insert(input_deps, bootloader)
596
end
597
-- make folders
598
table.sort(img_dirs)
599
for i,v in ipairs(img_dirs) do
600
  if v ~= img_dirs[i-1] then
601
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
602
  end
603
end
604
-- copy files
605
for i,v in ipairs(img_files) do
606
  local_file = v[2]
607
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
608
  then
609
    -- for kernel.mnt, insert autobuild revision identifier
610
    -- from .revision to .kernel.mnt
611
    -- note that .revision and .kernel.mnt must begin with .
612
    -- to prevent tup from tracking them
613
    if build_type == "rus"
614
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
615
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
616
    end
617
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
618
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
619
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
620
    make_img_command = make_img_command .. " && str=" .. str
621
    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'
622
    local_file = ".kernel.mnt"
623
  end
624
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
625
end
626
 
627
-- generate tup rule for kolibri.img
628
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
629
 
630
-- generate command and dependencies for mkisofs
631
input_deps = {"kolibri.img"}
632
iso_files_list = ""
633
for i,v in ipairs(iso_extra_files) do
634
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
5132 clevermous 635
  table.insert(input_deps, v.group or v[2])
5098 clevermous 636
end
637
 
638
-- generate tup rule for kolibri.iso
639
if tup.getconfig("INSERT_REVISION_ID") ~= ""
640
then volume_id = "KolibriOS r`cat .revision`"
641
else volume_id = "KolibriOS"
642
end
643
tup.definerule{inputs = input_deps, command =
5118 clevermous 644
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
5098 clevermous 645
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
646
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
647
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
648
  outputs = {"kolibri.iso"}}
649
 
650
-- generate command and dependencies for distribution kit
5104 clevermous 651
cp = 'cp "%f" "%o"'
5102 clevermous 652
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
5098 clevermous 653
for i,v in ipairs(distr_extra_files) do
5132 clevermous 654
  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 655
  if string.sub(v[1], -1) == "/"
5132 clevermous 656
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
657
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
5098 clevermous 658
  end
659
end