Subversion Repositories Kolibri OS

Rev

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