Subversion Repositories Kolibri OS

Rev

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