Subversion Repositories Kolibri OS

Rev

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