Subversion Repositories Kolibri OS

Rev

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