Subversion Repositories Kolibri OS

Rev

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