Subversion Repositories Kolibri OS

Rev

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