Subversion Repositories Kolibri OS

Rev

Rev 5276 | Rev 5321 | 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/*"},
5255 mario79 143
 {"kolibrios/games/rstearth/barret_8bpp.png", PROGS .. "/games/rstearth/resources/barret_8bpp.png"},
144
 {"kolibrios/games/rstearth/base_8bpp.png", PROGS .. "/games/rstearth/resources/base_8bpp.png"},
145
 {"kolibrios/games/rstearth/death_8bpp.png", PROGS .. "/games/rstearth/resources/death_8bpp.png"},
5265 mario79 146
 {"kolibrios/games/rstearth/font_russo_1bpp.png", PROGS .. "/games/rstearth/resources/font_russo_1bpp.png"},
5255 mario79 147
 {"kolibrios/games/rstearth/ifrit_8bpp.png", PROGS .. "/games/rstearth/resources/ifrit_8bpp.png"},
148
 {"kolibrios/games/rstearth/miku_8bpp.png", PROGS .. "/games/rstearth/resources/miku_8bpp.png"},
149
 {"kolibrios/games/rstearth/red_brick_8bpp.png", PROGS .. "/games/rstearth/resources/red_brick_8bpp.png"},
150
 {"kolibrios/games/rstearth/skeleton_8bpp.png", PROGS .. "/games/rstearth/resources/skeleton_8bpp.png"},
151
 {"kolibrios/games/rstearth/white_brick_8bpp.png", PROGS .. "/games/rstearth/resources/white_brick_8bpp.png"},
152
 {"kolibrios/games/rstearth/flaunch.wav", PROGS .. "/games/rstearth/resources/flaunch.wav"},
5275 mario79 153
 {"kolibrios/games/rstearth/misc_menu.wav", PROGS .. "/games/rstearth/resources/misc_menu.wav"},
5255 mario79 154
 {"kolibrios/games/rstearth/walking_with_poseidon.wav", PROGS .. "/games/rstearth/resources/walking_with_poseidon.wav"},
5098 clevermous 155
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
156
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
157
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
158
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
159
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
5132 clevermous 160
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
5098 clevermous 161
 {"kolibrios/lib/pixlib.dll", "common/lib/pixlib.dll"},
162
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
163
 {"kolibrios/lib/swscale-2.dll", "common/lib/swscale-2.dll"},
164
 {"kolibrios/lib/zlib.dll", "common/lib/zlib.dll"},
165
 {"kolibrios/media/fplay-full", "common/media/fplay-full"},
166
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
167
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
168
}
169
if build_type == "rus" then tup.append_table(extra_files, {
170
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
171
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
172
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
173
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
174
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
175
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
176
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
177
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
178
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
179
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
180
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
181
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
182
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
183
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
184
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
185
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
186
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
187
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
188
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
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"},
5254 mario79 414
 {"kolibrios/games/rstearth/rstearth", PROGS .. "/games/rstearth/rstearth"},
5098 clevermous 415
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
416
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
417
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
418
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
419
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
420
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
421
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
422
})
423
-- For russian build, add russian-only programs.
424
if build_type == "rus" then tup.append_table(img_files, {
425
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
426
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
427
}) else tup.append_table(img_files, {
428
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
429
 {"GAMES/SOKO", PROGS .. "/games/soko/trunk/SOKO"},
430
}) end
431
 
432
end -- tup.getconfig('NO_FASM') ~= 'full'
433
 
434
-- Programs that require NASM to compile.
435
if tup.getconfig('NO_NASM') ~= 'full' then
436
tup.append_table(img_files, {
437
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
438
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
439
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
440
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
441
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
442
})
443
end -- tup.getconfig('NO_NASM') ~= 'full'
444
 
445
-- Programs that require C-- to compile.
446
if tup.getconfig('NO_CMM') ~= 'full' then
447
tup.append_table(img_files, {
448
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
449
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
450
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
451
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
452
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
453
 {"NETWORK/WebView", PROGS .. "/cmm/browser/WebView.com"},
454
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
455
})
456
end -- tup.getconfig('NO_CMM') ~= 'full'
457
 
458
-- Programs that require MSVC to compile.
459
if tup.getconfig('NO_MSVC') ~= 'full' then
460
tup.append_table(img_files, {
461
 {"GRAPH", PROGS .. "/other/graph/graph"},
462
 {"TABLE", PROGS .. "/other/table/table"},
463
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
464
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
5113 clevermous 465
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
5115 clevermous 466
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
5098 clevermous 467
})
5110 clevermous 468
tup.append_table(extra_files, {
5109 clevermous 469
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
5276 ZblCoder 470
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
5109 clevermous 471
})
5098 clevermous 472
end -- tup.getconfig('NO_MSVC') ~= 'full'
473
 
474
-- Programs that require GCC to compile.
475
if tup.getconfig('NO_GCC') ~= 'full' then
476
tup.append_table(img_files, {
5109 clevermous 477
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
478
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
5123 clevermous 479
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
5111 clevermous 480
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
5098 clevermous 481
 {"SHELL", PROGS .. "/system/shell/shell"},
482
})
483
tup.append_table(extra_files, {
484
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
5228 alpine 485
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
5233 raandoom 486
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
5236 alpine 487
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
5131 clevermous 488
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
489
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
5098 clevermous 490
})
491
end -- tup.getconfig('NO_GCC') ~= 'full'
492
 
493
-- Skins.
494
tup.include("../skins/skinlist.lua")
495
 
496
--[================================[ CODE ]================================]--
497
-- expand extra_files and similar
498
function expand_extra_files(files)
499
  local result = {}
500
  for i,v in ipairs(files) do
501
    if string.match(v[2], "%*")
502
    then
503
      local g = tup.glob(v[2])
504
      for j,x in ipairs(g) do
5132 clevermous 505
        table.insert(result, {v[1], x, group=v.group})
5098 clevermous 506
      end
507
    else
508
      if v.cp1251_from then
509
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
510
      end
5132 clevermous 511
      table.insert(result, {v[1], v[2], group=v.group})
5098 clevermous 512
    end
513
  end
514
  return result
515
end
516
 
517
-- append skins to extra_files
518
for i,v in ipairs(skinlist) do
519
  table.insert(extra_files, {"Skins/", "../skins/" .. v})
520
end
521
 
522
-- prepare distr_extra_files and iso_extra_files: expand and append common part
523
extra_files = expand_extra_files(extra_files)
524
distr_extra_files = expand_extra_files(distr_extra_files)
525
iso_extra_files = expand_extra_files(iso_extra_files)
526
tup.append_table(distr_extra_files, extra_files)
527
tup.append_table(iso_extra_files, extra_files)
528
 
529
-- generate list of directories to be created inside kolibri.img
530
img_dirs = {}
531
input_deps = {}
532
for i,v in ipairs(img_files) do
533
  img_file = v[1]
534
  local_file = v[2]
535
 
536
  slash_pos = 0
537
  while true do
538
    slash_pos = string.find(img_file, '/', slash_pos + 1)
539
    if not slash_pos then break end
540
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
541
  end
542
 
543
  -- tup does not want to see hidden files as dependencies
544
  if not string.match(local_file, "/%.") then
5132 clevermous 545
    table.insert(input_deps, v.group or local_file)
5098 clevermous 546
  end
547
end
548
 
549
-- create empty 1.44M file
5118 clevermous 550
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
551
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
5098 clevermous 552
-- format it as a standard 1.44M floppy
553
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
554
-- copy bootloader
555
if tup.getconfig("NO_FASM") ~= "full" then
556
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
557
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
558
table.insert(input_deps, bootloader)
559
end
560
-- make folders
561
table.sort(img_dirs)
562
for i,v in ipairs(img_dirs) do
563
  if v ~= img_dirs[i-1] then
564
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
565
  end
566
end
567
-- copy files
568
for i,v in ipairs(img_files) do
569
  local_file = v[2]
570
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
571
  then
572
    -- for kernel.mnt, insert autobuild revision identifier
573
    -- from .revision to .kernel.mnt
574
    -- note that .revision and .kernel.mnt must begin with .
575
    -- to prevent tup from tracking them
576
    if build_type == "rus"
577
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
578
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
579
    end
580
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
581
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
582
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
583
    make_img_command = make_img_command .. " && str=" .. str
584
    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'
585
    local_file = ".kernel.mnt"
586
  end
587
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
588
end
589
 
590
-- generate tup rule for kolibri.img
591
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
592
 
593
-- generate command and dependencies for mkisofs
594
input_deps = {"kolibri.img"}
595
iso_files_list = ""
596
for i,v in ipairs(iso_extra_files) do
597
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
5132 clevermous 598
  table.insert(input_deps, v.group or v[2])
5098 clevermous 599
end
600
 
601
-- generate tup rule for kolibri.iso
602
if tup.getconfig("INSERT_REVISION_ID") ~= ""
603
then volume_id = "KolibriOS r`cat .revision`"
604
else volume_id = "KolibriOS"
605
end
606
tup.definerule{inputs = input_deps, command =
5118 clevermous 607
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
5098 clevermous 608
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
609
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
610
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
611
  outputs = {"kolibri.iso"}}
612
 
613
-- generate command and dependencies for distribution kit
5104 clevermous 614
cp = 'cp "%f" "%o"'
5102 clevermous 615
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
5098 clevermous 616
for i,v in ipairs(distr_extra_files) do
5132 clevermous 617
  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 618
  if string.sub(v[1], -1) == "/"
5132 clevermous 619
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
620
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
5098 clevermous 621
  end
622
end