Subversion Repositories Kolibri OS

Rev

Rev 5101 | Go to most recent revision | Details | Last modification | View Log | RSS feed

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