Subversion Repositories Kolibri OS

Rev

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