Subversion Repositories Kolibri OS

Rev

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