Subversion Repositories Kolibri OS

Rev

Rev 5764 | Rev 5856 | 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"},
5827 leency 18
 {"TOOLBAR.PNG", PROGS .. "/cmm/textreader/toolbar.png"},
5098 clevermous 19
 {"DEVELOP/TE_ICON.PNG", PROGS .. "/other/t_edit/te_icon.png"},
20
 {"DEVELOP/TL_NOD_16.PNG", PROGS .. "/other/t_edit/tl_nod_16.png"},
21
 {"DEVELOP/TL_SYS_16.PNG", PROGS .. "/media/log_el/trunk/tl_sys_16.png"},
22
 {"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"},
23
 {"File Managers/Z_ICONS.PNG", PROGS .. "/fs/opendial/z_icons.png"},
24
 {"File Managers/BUTTONS.BMP", PROGS .. "/fs/kfm/trunk/buttons.bmp"},
25
 {"File Managers/ICONS.BMP", PROGS .. "/fs/kfm/trunk/icons.bmp"},
26
 {"FONTS/LITT.CHR", PROGS .. "/demos/bgitest/trunk/FONTS/LITT.CHR"},
5764 leency 27
 {"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
5098 clevermous 28
 {"GAMES/SNAKE.INI", PROGS .. "/games/snake/trunk/snake.ini"},
29
 {"MEDIA/KIV.INI", PROGS .. "/media/kiv/trunk/kiv.ini"},
5468 leency 30
 {"MEDIA/PIXIE/PIXIE.INI", PROGS .. "/cmm/pixie/pixie.ini"},
31
 {"MEDIA/PIXIE/S_DARK.PNG", PROGS .. "/cmm/pixie/s_dark.png"},
32
 {"MEDIA/PIXIE/S_LIGHT.PNG", PROGS .. "/cmm/pixie/s_light.png"},
33
 {"MEDIA/PIXIE/MINIMP3", PROGS .. "/cmm/pixie/minimp3"},
5098 clevermous 34
 {"NETWORK/WV_SKIN.PNG", PROGS .. "/cmm/browser/wv_skin.png"},
35
 {"SETTINGS/AUTORUN.DAT", build_type .. "/settings/autorun.dat"},
5701 leency 36
 {"DEFAULT.SKN", "common/default.skn"},
5098 clevermous 37
 {"SETTINGS/ICON.INI", build_type .. "/settings/icon.ini"},
5425 leency 38
 {"ICONS32.PNG", "common/icons32.png"},
5762 leency 39
 {"INDEX.HTM", "common/index_htm"},
5098 clevermous 40
 {"KERPACK", "common/kerpack"},
41
 {"SETTINGS/KEYMAP.KEY", build_type .. "/settings/keymap.key"},
42
 {"SETTINGS/LANG.INI", build_type .. "/settings/lang.ini"},
43
 {"KUZKINA.MID", "common/kuzkina.mid"},
44
 {"LANG.INC", build_type .. "/lang.inc"},
45
 {"SETTINGS/MENU.DAT", build_type .. "/settings/menu.dat"},
46
 {"SETTINGS/KOLIBRI.LBL", build_type .. "/settings/kolibri.lbl"},
5453 leency 47
 {"SETTINGS/TASKBAR.INI", build_type .. "/settings/taskbar.ini"},
5098 clevermous 48
 {"SETTINGS/DOCKY.INI", "common/settings/docky.ini"},
5394 eAndrew 49
 {"SETTINGS/ASSOC.INI", "common/settings/assoc.ini"},
5429 leency 50
 {"SETTINGS/SYSTEM_PANEL.INI", "common/settings/system_panel.ini"},
5098 clevermous 51
 {"NOTIFY3.PNG", "common/notify3.png"},
52
 {"SETTINGS/SETUP.DAT", build_type .. "/settings/setup.dat"},
53
 {"VMODE", "common/vmode"},
54
 {"3D/HOUSE.3DS", "common/3d/house.3ds"},
55
 {"File Managers/EOLITE.INI", "common/File Managers/eolite.ini"},
56
 {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
57
 {"File Managers/KFM.INI", "common/File Managers/kfm.ini"},
58
 {"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
59
 {"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
60
 {"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
5647 leency 61
 {"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
62
 {"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
63
 {"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
64
 {"MEDIA/IMGF/DITHER.OBJ", "common/media/ImgF/dither.obj"},
65
 {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
5098 clevermous 66
 {"SETTINGS/NETWORK.INI", build_type .. "/settings/network.ini"},
67
 {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
68
 {"NETWORK/USERS.INI", "common/network/users.ini"},
69
}
70
-- For russian build, add russian-only files.
71
if build_type == "rus" then tup.append_table(img_files, {
72
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt"},
73
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/rus/.shell"},
5502 punk_joker 74
 {"SETTINGS/GAME_CENTER.INI", "rus/settings/game_center.ini"},
5098 clevermous 75
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
76
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"},
77
 {"PIPETKA", build_type .. "/pipetka"},
78
 {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
79
 {"GAMES/APPDATA.DAT", build_type .. "/games/appdata.dat"},
80
 {"GAMES/ATAKA", build_type .. "/games/ataka"},
81
 {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
82
 {"GAMES/PADENIE", build_type .. "/games/padenie"},
83
 {"GAMES/WHOWTBAM", build_type .. "/games/whowtbam"},
84
}) else tup.append_table(img_files, {
85
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
5502 punk_joker 86
 {"SETTINGS/GAME_CENTER.INI", "common/settings/game_center.ini"},
5098 clevermous 87
 {"GAMES/SKIN.RAW", PROGS .. "/games/soko/trunk/SKIN.RAW"},
88
 {"GAMES/SOKO-4.LEV", PROGS .. "/games/soko/trunk/SOKO-4.LEV"},
89
 {"GAMES/SOKO-5.LEV", PROGS .. "/games/soko/trunk/SOKO-5.LEV"},
90
 {"GAMES/SOKO-6.LEV", PROGS .. "/games/soko/trunk/SOKO-6.LEV"},
91
 {"GAMES/SOKO-7.LEV", PROGS .. "/games/soko/trunk/SOKO-7.LEV"},
92
 {"GAMES/SOKO-8.LEV", PROGS .. "/games/soko/trunk/SOKO-8.LEV"},
93
 {"GAMES/SOKO-9.LEV", PROGS .. "/games/soko/trunk/SOKO-9.LEV"},
94
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
95
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
96
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
97
}) end
98
if build_type == "it" then tup.append_table(img_files, {
99
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey_it.ini"},
100
}) else tup.append_table(img_files, {
101
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
102
}) end
103
 
104
--[[
105
Files to be included in kolibri.iso and distribution kit outside of kolibri.img.
5132 clevermous 106
 
5098 clevermous 107
The first subitem of every item is name relative to the root of ISO or distribution kit,
108
the second is name of local file.
5132 clevermous 109
 
5098 clevermous 110
If the first subitem ends in /, the last component of local file name is appended.
111
The last component of the second subitem may contain '*'; if so, it will be expanded
112
according to usual rules, but without matching directories.
5132 clevermous 113
 
114
Tup does not allow a direct dependency on a file that is generated in a directory
115
other than where Tupfile.lua is and its children. Most files are generated
116
in the directory with Tupfile.lua; for other files, the item should contain
117
a named subitem "group=path/" and the file should be put in .
5098 clevermous 118
--]]
119
extra_files = {
120
 {"/", build_type .. "/distr_data/autorun.inf"},
121
 {"/", build_type .. "/distr_data/KolibriOS_icon.ico"},
122
 {"/", build_type .. "/settings/kolibri.lbl"},
123
 {"Skins/", "../skins/authors.txt"},
124
 {"Docs/stack.txt", build_type .. "/docs/STACK.TXT"},
125
 {"HD_Load/9x2klbr/", "common/HD_load/9x2klbr/LDKLBR.VXD"},
126
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/AUTOEXEC.BAT"},
127
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/CONFIG.SYS"},
128
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme.txt"},
129
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme_Win.txt"},
130
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_install.bat"},
131
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_remove.bat"},
132
 {"HD_Load/", "common/HD_load/memdisk"},
133
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot.rtf"},
134
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
135
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
5764 leency 136
 {"kolibrios/3D/3DSHEART", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
5098 clevermous 137
 {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
138
 {"kolibrios/emul/fceu/", "common/emul/fceu/*"},
139
 {"kolibrios/emul/", "common/emul/gameboy"},
140
 {"kolibrios/emul/", "common/emul/scummvm"},
141
 {"kolibrios/emul/", "common/emul/zsnes"},
5827 leency 142
 {"kolibrios/demos/ak47.lif", "common/demos/ak47.lif"},
143
 {"kolibrios/demos/life2", "common/demos/life2"},
144
 {"kolibrios/demos/relay.lif", "common/demos/relay.lif"},
145
 {"kolibrios/demos/rpento.lif", "common/demos/rpento.lif"},
5647 leency 146
 {"kolibrios/games/doom/", "common/games/doom/*"},
5500 punk_joker 147
 {"kolibrios/games/pig/", "common/games/pig/*"},
5098 clevermous 148
 {"kolibrios/games/fara/fara.gfx", "common/games/fara.gfx"},
5647 leency 149
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
5296 ZblCoder 150
 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
5098 clevermous 151
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
5647 leency 152
 {"kolibrios/games/megamaze", build_type .. "/games/megamaze"},
153
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
154
 {"kolibrios/games/soko/soko", build_type .. "/games/soko"},
155
 {"kolibrios/games/soko/", "common/games/soko/*"},
5379 serge 156
 {"kolibrios/drivers/", "common/drivers/*"},
5098 clevermous 157
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
158
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
159
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
160
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
161
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
5378 serge 162
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
163
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
164
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
165
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
166
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
167
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
5132 clevermous 168
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
5378 serge 169
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
5098 clevermous 170
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
5378 serge 171
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
172
 {"kolibrios/lib/i965_dri.drv", "common/lib/i965_dri.drv"},
173
 {"kolibrios/media/fplay", "common/media/fplay"},
5098 clevermous 174
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
175
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
176
}
177
if build_type == "rus" then tup.append_table(extra_files, {
178
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
179
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
180
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
181
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
182
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
183
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
184
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
185
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
186
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
187
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
188
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
189
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
190
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
191
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
5471 leency 192
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
5098 clevermous 193
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
194
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
195
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
196
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
5334 Anton_K 197
 {"kolibrios/games/Dungeons/Resources/Textures/Environment/", PROGS .. "/games/Dungeons/Resources/Textures/Environment/*"},
198
 {"kolibrios/games/Dungeons/Resources/Textures/Objects/", PROGS .. "/games/Dungeons/Resources/Textures/Objects/*"},
199
 {"kolibrios/games/Dungeons/Resources/Textures/HUD/", PROGS .. "/games/Dungeons/Resources/Textures/HUD/*"},
200
 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
201
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
5098 clevermous 202
}) else tup.append_table(extra_files, {
203
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
204
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
205
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
206
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
207
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
208
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
209
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
210
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
211
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
212
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
213
}) end
214
--[[
215
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
216
Same syntax as extra_files.
217
]]--
218
if build_type == "rus" then
219
distr_extra_files = {
220
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
221
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
222
}
223
else
224
distr_extra_files = {
225
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
226
}
227
end
228
--[[
229
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
230
Same syntax as extra_files.
231
]]--
232
if build_type == "rus" then
233
iso_extra_files = {
234
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
235
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
236
}
237
else
238
iso_extra_files = {
239
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
240
}
241
end
242
 
243
-- Programs that require FASM to compile.
244
if tup.getconfig('NO_FASM') ~= 'full' then
245
tup.append_table(img_files, {
246
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
247
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
5432 eAndrew 248
 {"@VOLUME", PROGS .. "/media/volume/volume"},
5454 leency 249
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
5098 clevermous 250
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
5394 eAndrew 251
 {"@OPEN", PROGS .. "/system/open/open"},
5098 clevermous 252
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
253
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
254
 {"REFRSCRN", PROGS .. "/system/refrscrn/refrscrn"},
255
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
256
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
257
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
258
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
259
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
260
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
261
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
262
 {"DESKTOP", PROGS .. "/system/desktop/trunk/desktop"},
263
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
264
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
265
 {"END", PROGS .. "/system/end/light/end"},
266
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
267
 {"GMON", PROGS .. "/system/gmon/gmon"},
268
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
269
 {"@ICON", PROGS .. "/system/icon_new/@icon"},
270
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
271
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
272
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
273
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
274
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
275
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
276
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
277
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
278
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
279
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
280
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
281
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
282
 {"RUN", PROGS .. "/system/run/trunk/run"},
283
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
284
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
285
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
286
 {"TEST", PROGS .. "/system/test/trunk/test"},
287
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
288
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
289
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
290
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
291
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
292
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
293
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
294
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
295
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
296
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
297
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
298
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
299
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
300
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
301
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
302
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
303
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
304
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
305
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
306
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
307
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
308
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
309
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
310
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
311
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
312
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
313
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
314
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
315
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
316
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
317
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
318
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
319
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
320
 {"DEVELOP/INFO/CPP_KOL_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
321
 {"DEVELOP/INFO/CPP_KOL_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
322
 {"DEVELOP/INFO/CPP_KOL_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
323
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
324
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
325
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
326
 {"DEVELOP/INFO/WIN_CONST.SYN", PROGS .. "/other/t_edit/info/win_const.syn"},
327
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
328
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
329
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
330
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
331
 {"GAMES/ARCANII", PROGS .. "/games/arcanii/trunk/arcanii"},
332
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
333
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
334
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
335
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
336
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
337
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
338
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
339
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
340
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
341
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
342
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
343
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
344
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
345
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
346
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
347
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
348
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
349
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
350
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
351
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
352
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
353
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
354
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
355
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
356
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
357
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
358
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
359
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
360
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
361
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
362
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
363
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
364
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
365
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
366
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
367
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
368
 {"NETWORK/PING", PROGS .. "/network/icmp/ping"},
369
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
370
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
371
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
372
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
373
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
374
 {"NETWORK/TCPSERV", PROGS .. "/network/tcpserv/tcpserv"},
375
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
5495 hidnplayr 376
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
5098 clevermous 377
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
378
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
379
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
380
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
381
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
382
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
383
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
384
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
385
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
386
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
387
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
388
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
389
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
390
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
391
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
392
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
393
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
394
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
395
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
396
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
397
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
398
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
399
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
400
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
401
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
402
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
403
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
404
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
405
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
406
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
407
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
408
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
409
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
410
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
411
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
412
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
413
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
414
})
415
tup.append_table(extra_files, {
416
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
417
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
418
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
419
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
420
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
421
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
422
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
423
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
424
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
425
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
5335 yogev_ezra 426
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
427
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
5379 serge 428
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
5467 leency 429
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
5098 clevermous 430
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
431
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
432
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
433
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
434
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
435
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
436
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
437
})
438
-- For russian build, add russian-only programs.
439
if build_type == "rus" then tup.append_table(img_files, {
440
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
441
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
442
}) else tup.append_table(img_files, {
443
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
444
 {"GAMES/SOKO", PROGS .. "/games/soko/trunk/SOKO"},
445
}) end
446
 
5334 Anton_K 447
if build_type == "rus" then tup.append_table(extra_files, {
448
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
449
}) end
450
 
5098 clevermous 451
end -- tup.getconfig('NO_FASM') ~= 'full'
452
 
453
-- Programs that require NASM to compile.
454
if tup.getconfig('NO_NASM') ~= 'full' then
455
tup.append_table(img_files, {
456
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
457
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
458
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
459
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
460
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
461
})
462
end -- tup.getconfig('NO_NASM') ~= 'full'
463
 
464
-- Programs that require C-- to compile.
465
if tup.getconfig('NO_CMM') ~= 'full' then
466
tup.append_table(img_files, {
467
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
468
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
469
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
470
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
471
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
5467 leency 472
 {"MEDIA/PIXIE/PIXIE", PROGS .. "/cmm/pixie/pixie.com"},
5632 leency 473
 {"MOUSE_CFG", PROGS .. "/cmm/mouse_cfg/mouse_cfg.com"},
474
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
5479 leency 475
 {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
5827 leency 476
 {"TEXTREADER", PROGS .. "/cmm/textreader/textreader.com"},
5098 clevermous 477
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
5429 leency 478
 {"GAME_CENTER", PROGS .. "/cmm/software_widget/software_widget.com"},
479
 {"SYSTEM_PANEL", PROGS .. "/cmm/software_widget/software_widget.com"},
5098 clevermous 480
})
481
end -- tup.getconfig('NO_CMM') ~= 'full'
482
 
483
-- Programs that require MSVC to compile.
484
if tup.getconfig('NO_MSVC') ~= 'full' then
485
tup.append_table(img_files, {
486
 {"GRAPH", PROGS .. "/other/graph/graph"},
487
 {"TABLE", PROGS .. "/other/table/table"},
488
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
489
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
5113 clevermous 490
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
5115 clevermous 491
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
5098 clevermous 492
})
5110 clevermous 493
tup.append_table(extra_files, {
5109 clevermous 494
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
5276 ZblCoder 495
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
5109 clevermous 496
})
5098 clevermous 497
end -- tup.getconfig('NO_MSVC') ~= 'full'
498
 
499
-- Programs that require GCC to compile.
500
if tup.getconfig('NO_GCC') ~= 'full' then
501
tup.append_table(img_files, {
5109 clevermous 502
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
503
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
5123 clevermous 504
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
5111 clevermous 505
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
5098 clevermous 506
 {"SHELL", PROGS .. "/system/shell/shell"},
507
})
508
tup.append_table(extra_files, {
509
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
5228 alpine 510
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
5233 raandoom 511
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
5236 alpine 512
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
5336 yogev_ezra 513
 {"kolibrios/games/nsider/", PROGS .. "/games/nsider/nsider"},
5131 clevermous 514
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
515
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
5098 clevermous 516
})
5327 igevorse 517
-- For russian build, add russian-only programs.
5329 igevorse 518
if build_type == "rus" then tup.append_table(extra_files, {
5327 igevorse 519
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
5328 igevorse 520
}) end
5098 clevermous 521
end -- tup.getconfig('NO_GCC') ~= 'full'
522
 
523
-- Skins.
524
tup.include("../skins/skinlist.lua")
525
 
526
--[================================[ CODE ]================================]--
527
-- expand extra_files and similar
528
function expand_extra_files(files)
529
  local result = {}
530
  for i,v in ipairs(files) do
531
    if string.match(v[2], "%*")
532
    then
533
      local g = tup.glob(v[2])
534
      for j,x in ipairs(g) do
5132 clevermous 535
        table.insert(result, {v[1], x, group=v.group})
5098 clevermous 536
      end
537
    else
538
      if v.cp1251_from then
539
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
540
      end
5132 clevermous 541
      table.insert(result, {v[1], v[2], group=v.group})
5098 clevermous 542
    end
543
  end
544
  return result
545
end
546
 
547
-- append skins to extra_files
548
for i,v in ipairs(skinlist) do
549
  table.insert(extra_files, {"Skins/", "../skins/" .. v})
550
end
551
 
552
-- prepare distr_extra_files and iso_extra_files: expand and append common part
553
extra_files = expand_extra_files(extra_files)
554
distr_extra_files = expand_extra_files(distr_extra_files)
555
iso_extra_files = expand_extra_files(iso_extra_files)
556
tup.append_table(distr_extra_files, extra_files)
557
tup.append_table(iso_extra_files, extra_files)
558
 
559
-- generate list of directories to be created inside kolibri.img
560
img_dirs = {}
561
input_deps = {}
562
for i,v in ipairs(img_files) do
563
  img_file = v[1]
564
  local_file = v[2]
565
 
566
  slash_pos = 0
567
  while true do
568
    slash_pos = string.find(img_file, '/', slash_pos + 1)
569
    if not slash_pos then break end
570
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
571
  end
572
 
573
  -- tup does not want to see hidden files as dependencies
574
  if not string.match(local_file, "/%.") then
5132 clevermous 575
    table.insert(input_deps, v.group or local_file)
5098 clevermous 576
  end
577
end
578
 
579
-- create empty 1.44M file
5118 clevermous 580
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
581
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
5098 clevermous 582
-- format it as a standard 1.44M floppy
583
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
584
-- copy bootloader
585
if tup.getconfig("NO_FASM") ~= "full" then
586
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
587
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
588
table.insert(input_deps, bootloader)
589
end
590
-- make folders
591
table.sort(img_dirs)
592
for i,v in ipairs(img_dirs) do
593
  if v ~= img_dirs[i-1] then
594
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
595
  end
596
end
597
-- copy files
598
for i,v in ipairs(img_files) do
599
  local_file = v[2]
600
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
601
  then
602
    -- for kernel.mnt, insert autobuild revision identifier
603
    -- from .revision to .kernel.mnt
604
    -- note that .revision and .kernel.mnt must begin with .
605
    -- to prevent tup from tracking them
606
    if build_type == "rus"
607
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
608
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
609
    end
610
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
611
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
612
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
613
    make_img_command = make_img_command .. " && str=" .. str
614
    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'
615
    local_file = ".kernel.mnt"
616
  end
617
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
618
end
619
 
620
-- generate tup rule for kolibri.img
621
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
622
 
623
-- generate command and dependencies for mkisofs
624
input_deps = {"kolibri.img"}
625
iso_files_list = ""
626
for i,v in ipairs(iso_extra_files) do
627
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
5132 clevermous 628
  table.insert(input_deps, v.group or v[2])
5098 clevermous 629
end
630
 
631
-- generate tup rule for kolibri.iso
632
if tup.getconfig("INSERT_REVISION_ID") ~= ""
633
then volume_id = "KolibriOS r`cat .revision`"
634
else volume_id = "KolibriOS"
635
end
636
tup.definerule{inputs = input_deps, command =
5118 clevermous 637
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
5098 clevermous 638
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
639
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
640
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
641
  outputs = {"kolibri.iso"}}
642
 
643
-- generate command and dependencies for distribution kit
5104 clevermous 644
cp = 'cp "%f" "%o"'
5102 clevermous 645
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
5098 clevermous 646
for i,v in ipairs(distr_extra_files) do
5132 clevermous 647
  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 648
  if string.sub(v[1], -1) == "/"
5132 clevermous 649
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
650
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
5098 clevermous 651
  end
652
end