Subversion Repositories Kolibri OS

Rev

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