Subversion Repositories Kolibri OS

Rev

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