Subversion Repositories Kolibri OS

Rev

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