Subversion Repositories Kolibri OS

Rev

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