Subversion Repositories Kolibri OS

Rev

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