Subversion Repositories Kolibri OS

Rev

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