Subversion Repositories Kolibri OS

Rev

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