Subversion Repositories Kolibri OS

Rev

Rev 5107 | Rev 5110 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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