Optimize png files for `skins/_old`
[kolibrios.git] / data / Tupfile.lua
blob1ef5afc910f500e9106a9c8f40852f108583b13c
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
7 --[================================[ DATA ]================================]--
9 PROGS = "../programs"
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 {"FB2READ", "common/fb2read"},
19 {"ALLGAMES", "common/allgames"},
20 {"HOME.PNG", "common/wallpapers/T_Home.png"},
21 {"ICONS32.PNG", "common/icons32.png"},
22 {"ICONS16.PNG", "common/icons16.png"},
23 {"INDEX.HTM", "common/index_htm"},
24 {"KUZKINA.MID", "common/kuzkina.mid"},
25 {"SINE.MP3", "common/sine.mp3"},
26 {"LANG.INC", build_type .. "/lang.inc"},
27 {"NOTIFY3.PNG", "common/notify3.png"},
28 {"UNIMG", PROGS .. "/fs/unimg/unimg"},
29 {"3D/HOUSE.3DS", "common/3d/house.3ds"},
30 {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
31 {"GAMES/FLPYBIRD", PROGS .. "/games/flappybird/Release/flappybird"},
32 {"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
33 -- {"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
34 {"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
35 {"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
36 {"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
37 {"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
38 {"MEDIA/IMGF/DITHER.OBJ", "common/media/ImgF/dither.obj"},
39 {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
40 {"MEDIA/PIXIESKN.PNG", PROGS .. "/cmm/pixie2/pixieskn.png"},
41 {"NETWORK/FTPC.INI", PROGS .. "/network/ftpc/ftpc.ini"},
42 {"NETWORK/FTPC_SYS.PNG", PROGS .. "/network/ftpc/ftpc_sys.png"},
43 {"NETWORK/FTPC_NOD.PNG", PROGS .. "/network/ftpc/ftpc_nod.png"},
44 {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
45 {"NETWORK/KNMAP", "common/network/knmap"},
46 {"NETWORK/USERS.INI", "common/network/users.ini"},
47 {"SETTINGS/APP.INI", "common/settings/app.ini"},
48 {"SETTINGS/APP_PLUS.INI", "common/settings/app_plus.ini"},
49 {"SETTINGS/ASSOC.INI", "common/settings/assoc.ini"},
50 {"SETTINGS/AUTORUN.DAT", "common/settings/AUTORUN.DAT"},
51 {"SETTINGS/CEDIT.INI", PROGS .. "/develop/cedit/CEDIT.INI"},
52 {"SETTINGS/DOCKY.INI", "common/settings/docky.ini"},
53 {"SETTINGS/FB2READ.INI", "common/settings/fb2read.ini"},
54 {"SETTINGS/HA.CFG", PROGS .. "/other/ha/SETTINGS/HA.CFG"},
55 {"SETTINGS/ICON.INI", build_type .. "/settings/icon.ini"},
56 {"SETTINGS/KEYMAP.KEY", PROGS .. "/system/taskbar/trunk/KEYMAP.KEY"},
57 {"SETTINGS/KOLIBRI.LBL", build_type .. "/settings/kolibri.lbl"},
58 {"SETTINGS/LANG.INI", build_type .. "/settings/lang.ini"},
59 {"SETTINGS/MENU.DAT", build_type .. "/settings/menu.dat"},
60 {"SETTINGS/NETWORK.INI", "common/settings/network.ini"},
61 {"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
62 {"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
63 {"SETTINGS/SYSTEM.ENV", "common/settings/system.env"},
66 -- For russian build, add russian-only files.
67 if build_type == "rus" then tup.append_table(img_files, {
68 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"},
69 {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy_ru"},
70 {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
71 {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
72 {"GAMES/DESCENT", build_type .. "/games/descent"},
73 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/rus/.shell"},
74 {"SETTINGS/GAMES.INI", "rus/settings/games.ini"},
75 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
76 {"SETTINGS/SYSPANEL.INI", "rus/settings/syspanel.ini"},
77 }) elseif build_type == "eng" then tup.append_table(img_files, {
78 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
79 {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"},
80 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
81 {"GAMES/DESCENT", "common/games/descent"},
82 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
83 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
84 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
85 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
86 }) elseif build_type == "sp" then tup.append_table(img_files, {
87 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
88 {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"},
89 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
90 {"GAMES/DESCENT", "common/games/descent"},
91 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
92 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
93 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
94 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
95 }) elseif build_type == "it" then tup.append_table(img_files, {
96 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
97 {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"},
98 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
99 {"GAMES/DESCENT", "common/games/descent"},
100 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
101 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey_it.ini"},
102 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
103 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
104 }) else tup.append_table(img_files, {
105 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
106 {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"},
107 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
108 {"GAMES/DESCENT", "common/games/descent"},
109 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
110 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
111 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
112 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
113 }) end
115 --[[
116 Files to be included in kolibri.iso and distribution kit outside of kolibri.img.
118 The first subitem of every item is name relative to the root of ISO or distribution kit,
119 the second is name of local file.
121 If the first subitem ends in /, the last component of local file name is appended.
122 The last component of the second subitem may contain '*'; if so, it will be expanded
123 according to usual rules, but without matching directories.
125 Tup does not allow a direct dependency on a file that is generated in a directory
126 other than where Tupfile.lua is and its children. Most files are generated
127 in the directory with Tupfile.lua; for other files, the item should contain
128 a named subitem "group=path/<groupname>" and the file should be put in <groupname>.
129 --]]
130 extra_files = {
131 {"/", "common/distr_data/autorun.inf"},
132 {"/", "common/distr_data/KolibriOS_icon.ico"},
133 {"Docs/stack.txt", "../kernel/trunk/docs/stack.txt"},
134 {"HD_Load/9x2klbr/", "common/HD_load/9x2klbr/LDKLBR.VXD"},
135 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/AUTOEXEC.BAT"},
136 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/CONFIG.SYS"},
137 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme.txt"},
138 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme_Win.txt"},
139 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_install.bat"},
140 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_remove.bat"},
141 {"HD_Load/", "common/HD_load/memdisk"},
142 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot.rtf"},
143 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
144 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
145 {"kolibrios/3D/info3ds/INFO3DS.INI", PROGS .. "/develop/info3ds/info3ds.ini"},
146 {"kolibrios/3D/info3ds/OBJECTS.PNG", PROGS .. "/develop/info3ds/objects.png"},
147 {"kolibrios/3D/info3ds/TOOLBAR.PNG", PROGS .. "/develop/info3ds/toolbar.png"},
148 {"kolibrios/3D/info3ds/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
149 {"kolibrios/3D/blocks/", PROGS .. "/bcc32/games/blocks/bin/*"},
150 {"kolibrios/3D/blocks/models/", PROGS .. "/bcc32/games/blocks/models/*"},
151 {"kolibrios/3D/md2view/", "common/3d/md2view/*"},
152 {"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
153 {"kolibrios/3D/voxel_editor/VOX_EDITOR.INI", PROGS .. "/media/voxel_editor/trunk/vox_editor.ini"},
154 {"kolibrios/3D/voxel_editor/HOUSE1.VOX", PROGS .. "/media/voxel_editor/trunk/house1.vox"},
155 {"kolibrios/3D/voxel_editor/HOUSE2.VOX", PROGS .. "/media/voxel_editor/trunk/house2.vox"},
156 {"kolibrios/3D/voxel_editor/SQUIRREL.VOX", PROGS .. "/media/voxel_editor/trunk/squirrel.vox"},
157 {"kolibrios/3D/voxel_utilites/VOX_MOVER.INI" , PROGS .. "/media/voxel_editor/utilites/vox_mover.ini"},
158 {"kolibrios/3D/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
159 {"kolibrios/3D/TOOLB_1.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/toolb_1.png"},
160 {"kolibrios/3D/TEST_GLU1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu1"},
161 {"kolibrios/3D/TEST_GLU2", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu2"},
162 {"kolibrios/3D/TEXT_2.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/text_2.png"},
163 {"kolibrios/demos/ak47.lif", "common/demos/ak47.lif"},
164 {"kolibrios/demos/life2", "common/demos/life2"},
165 {"kolibrios/demos/relay.lif", "common/demos/relay.lif"},
166 {"kolibrios/demos/rpento.lif", "common/demos/rpento.lif"},
167 {"kolibrios/develop/c--/c--.elf", PROGS .. "/cmm/c--/c--.elf"},
168 {"kolibrios/develop/c--/c--.exe", PROGS .. "/cmm/c--/c--.exe"},
169 {"kolibrios/develop/c--/c--.ini", PROGS .. "/cmm/c--/c--.ini"},
170 {"kolibrios/develop/c--/manual_c--.htm", PROGS .. "/cmm/c--/manual_c--.htm"},
171 {"kolibrios/develop/fpc/", "common/develop/fpc/*"},
172 {"kolibrios/develop/fpc/examples/", PROGS .. "/develop/fp/examples/src/*"},
173 {"kolibrios/develop/fpc/examples/build.sh", "common/develop/fpc/build.sh"},
174 {"kolibrios/develop/oberon07/", PROGS .. "/develop/oberon07/*"},
175 {"kolibrios/develop/oberon07/doc/", PROGS .. "/develop/oberon07/doc/*"},
176 {"kolibrios/develop/oberon07/lib/KolibriOS/", PROGS .. "/develop/oberon07/lib/KolibriOS/*"},
177 {"kolibrios/develop/oberon07/samples/", PROGS .. "/develop/oberon07/samples/*"},
178 {"kolibrios/develop/tcc/lib/", PROGS .. "/develop/ktcc/trunk/bin/lib/*"},
179 {"kolibrios/develop/tcc/include/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/*"},
180 {"kolibrios/develop/tcc/include/clayer/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/clayer/*"},
181 {"kolibrios/develop/tcc/include/cryptal/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/cryptal/*"},
182 {"kolibrios/develop/tcc/include/sys/", PROGS .. "/develop/ktcc/trunk/libc.obj/include/sys/*"},
183 {"kolibrios/develop/tcc/include/SDL/", "../contrib/sdk/sources/SDL-1.2.2_newlib/include/*"},
184 {"kolibrios/develop/tcc/samples/", PROGS .. "/develop/ktcc/trunk/libc.obj/samples/*.c"},
185 {"kolibrios/develop/tcc/samples/", PROGS .. "/develop/ktcc/trunk/libc.obj/samples/*.sh"},
186 {"kolibrios/develop/tcc/samples/clayer/", PROGS .. "/develop/ktcc/trunk/libc.obj/samples/clayer/*"},
187 {"kolibrios/develop/utils/SPEDump", PROGS .. "/develop/SPEDump/SPEDump.kex"},
188 {"kolibrios/emul/", "common/emul/*"},
189 {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
190 {"kolibrios/emul/e80/readme.txt", PROGS .. "/emulator/e80/trunk/readme.txt"},
191 {"kolibrios/emul/e80/keyboard.png", PROGS .. "/emulator/e80/trunk/keyboard.png"},
192 {"kolibrios/emul/fceu/fceu", PROGS .. "/emulator/fceu/fceu"},
193 {"kolibrios/emul/fceu/FCEU ReadMe.txt", PROGS .. "/emulator/fceu/FCEU ReadMe.txt"},
194 {"kolibrios/emul/chip8/chip8", PROGS .. "/emulator/chip8/chip8"},
195 {"kolibrios/emul/chip8/readme.txt", PROGS .. "/emulator/chip8/readme.txt"},
196 {"kolibrios/emul/chip8/roms/", PROGS .. "/emulator/chip8/roms/*"},
197 {"kolibrios/emul/kwine/kwine", PROGS .. "/emulator/kwine/bin/kwine"},
198 {"kolibrios/emul/kwine/lib/", PROGS .. "/emulator/kwine/bin/lib/*"},
199 {"kolibrios/emul/uarm/", "common/emul/uarm/*"},
200 {"kolibrios/emul/zsnes/", "common/emul/zsnes/*"},
201 {"kolibrios/games/BabyPainter", "common/games/BabyPainter"},
202 {"kolibrios/games/bomber/ackack.bmp", PROGS .. "/games/bomber/ackack.bmp"},
203 {"kolibrios/games/bomber/bomb.bmp", PROGS .. "/games/bomber/bomb.bmp"},
204 {"kolibrios/games/bomber/plane.bmp", PROGS .. "/games/bomber/plane.bmp"},
205 {"kolibrios/games/bomber/tile.bmp", PROGS .. "/games/bomber/tile.bmp"},
206 {"kolibrios/games/doom1/", "common/games/doom/*"},
207 {"kolibrios/games/fara/fara.gfx", "common/games/fara.gfx"},
208 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
209 {"kolibrios/games/knight", "common/games/knight"},
210 {"kolibrios/games/KosChess/", "common/games/KosChess/*"},
211 {"kolibrios/games/KosChess/images/", "common/games/KosChess/images/*"},
212 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
213 {"kolibrios/games/lrl/", "common/games/lrl/*"},
214 {"kolibrios/games/mun/data/", "common/games/mun/data/*"},
215 {"kolibrios/games/mun/libc.dll", "common/games/mun/libc.dll"},
216 {"kolibrios/games/mun/mun", "common/games/mun/mun"},
217 {"kolibrios/games/pig/", "common/games/pig/*"},
218 {"kolibrios/games/soko/", "common/games/soko/*"},
219 {"kolibrios/games/fridge/", "common/games/fridge/*"},
220 {"kolibrios/games/the_bus/menu.png", PROGS .. "/cmm/the_bus/menu.png"},
221 {"kolibrios/games/the_bus/objects.png", PROGS .. "/cmm/the_bus/objects.png"},
222 {"kolibrios/games/the_bus/road.png", PROGS .. "/cmm/the_bus/road.png"},
223 {"kolibrios/grafx2/fonts/", "common/media/grafx2/fonts/*"},
224 {"kolibrios/grafx2/scripts/", "common/media/grafx2/scripts/libs/*"},
225 {"kolibrios/grafx2/scripts/libs/", "common/media/grafx2/scripts/*"},
226 {"kolibrios/grafx2/skins/", "common/media/grafx2/skins/*"},
227 {"kolibrios/grafx2/", "common/media/grafx2/*"},
228 {"kolibrios/speech/", "common/media/speech/*"},
229 {"kolibrios/drivers/drvinf.ini", "common/drivers/drvinf.ini"},
230 {"kolibrios/drivers/ahci/", "common/drivers/ahci/*"},
231 {"kolibrios/drivers/acpi/readme.txt", "common/drivers/acpi/readme.txt"},
232 -- {"kolibrios/drivers/acpi/", "common/drivers/acpi/*"},
233 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
234 -- {"kolibrios/drivers/geode/", "common/drivers/geode/*"},
235 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
236 {"kolibrios/drivers/test/", "common/drivers/test/*"},
237 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
238 {"kolibrios/drivers/virtualbox/", "common/drivers/virtualbox/*"},
239 {"kolibrios/KolibriNext/", "common/KolibriNext/*"},
240 {"kolibrios/KolibriNext/settings/", "common/KolibriNext/settings/*"},
241 {"kolibrios/lib/avcodec-56.dll", "common/lib/avcodec-56.dll"},
242 {"kolibrios/lib/avdevice-56.dll", "common/lib/avdevice-56.dll"},
243 {"kolibrios/lib/avformat-56.dll", "common/lib/avformat-56.dll"},
244 {"kolibrios/lib/swscale-3.dll", "common/lib/swscale-3.dll"},
245 {"kolibrios/lib/avutil-54.dll", "common/lib/avutil-54.dll"},
246 {"kolibrios/lib/cairo2.dll", "common/lib/cairo2.dll"},
247 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
248 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
249 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
250 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
251 {"kolibrios/lib/libeglut.dll", "common/lib/libeglut.dll"},
252 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
253 {"kolibrios/lib/libjpeg.dll", "common/lib/libjpeg.dll"},
254 {"kolibrios/lib/libpng16.dll", "common/lib/libpng16.dll"},
255 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
256 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
257 {"kolibrios/lib/osmesa.dll", "common/lib/osmesa.dll"},
258 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
259 {"kolibrios/lib/pixman-1.dll", "common/lib/pixman-1.dll"},
260 {"kolibrios/lib/swresample-1.dll", "common/lib/swresample-1.dll"},
261 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
262 {"kolibrios/media/fplay", "common/media/fplay"},
263 {"kolibrios/media/fplay_run", "common/media/fplay_run"},
264 {"kolibrios/media/minimp3", "common/media/minimp3"},
265 {"kolibrios/media/updf", "common/media/updf"},
266 {"kolibrios/media/vttf", "common/media/vttf"},
267 {"kolibrios/media/beat/Beat", PROGS .. "/media/Beat/Beat"},
268 {"kolibrios/media/beat/Beep1.raw", PROGS .. "/media/Beat/Beep1.raw"},
269 {"kolibrios/media/beat/Beep2.raw", PROGS .. "/media/Beat/Beep2.raw"},
270 {"kolibrios/media/beat/PlayNote", PROGS .. "/media/Beat/PlayNote/PlayNote"},
271 {"kolibrios/media/beat/Readme-en.txt", PROGS .. "/media/Beat/Readme-en.txt"},
272 {"kolibrios/media/beat/Readme-ru.txt", PROGS .. "/media/Beat/Readme-ru.txt"},
273 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
274 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
275 {"kolibrios/netsurf/netsurf", "common/network/netsurf/netsurf"},
276 {"kolibrios/netsurf/res/", "common/network/netsurf/res/*"},
277 {"kolibrios/res/skins/", "../skins/authors.txt"},
278 {"kolibrios/res/templates/", "common/templates/*"},
279 {"kolibrios/res/templates/", PROGS .. "/emulator/e80/trunk/games/*"},
280 {"kolibrios/res/templates/NES/", "common/templates/NES/*"},
281 {"kolibrios/res/wallpapers/", "common/wallpapers/*"},
282 {"kolibrios/res/system/", build_type .. "/settings/kolibri.lbl"},
283 {"kolibrios/utils/vmode", "common/vmode"},
284 {"kolibrios/utils/texture", "common/utils/texture"},
285 {"kolibrios/utils/cnc_editor/cnc_editor", PROGS .. "/other/cnc_editor/cnc_editor"},
286 {"kolibrios/utils/cnc_editor/kolibri.NC", PROGS .. "/other/cnc_editor/kolibri.NC"},
287 {"kolibrios/utils/kfm/kfm.ini", "common/File Managers/kfm.ini"},
288 {"kolibrios/utils/kfm/kfm_keys_eng.txt", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
289 {"kolibrios/utils/kfm/kfm_keys_rus.txt", PROGS .. "/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt"},
290 {"kolibrios/utils/fNav/", "common/File Managers/fNav/*"},
291 {"kolibrios/utils/NDN/", "common/File Managers/ndn/*"},
292 {"kolibrios/utils/NDN/COLORS/", "common/File Managers/ndn/COLORS/*"},
293 {"kolibrios/utils/NDN/XLT/", "common/File Managers/ndn/XLT/*"},
294 {"kolibrios/utils/tedit/t_edit.ini", PROGS .. "/other/t_edit/t_edit.ini"},
295 {"kolibrios/utils/tedit/info/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
296 {"kolibrios/utils/tedit/info/CPP_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
297 {"kolibrios/utils/tedit/info/CPP_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
298 {"kolibrios/utils/tedit/info/CPP_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
299 {"kolibrios/utils/tedit/info/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
300 {"kolibrios/utils/tedit/info/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
301 {"kolibrios/utils/tedit/info/INI.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
303 if build_type == "rus" then tup.append_table(extra_files, {
304 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
305 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
306 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
307 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
308 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
309 {"Docs/cp866/credits.txt", build_type .. "/docs/CREDITS.TXT"},
310 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
311 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
312 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
313 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
314 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
315 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
316 {"Docs/cp1251/credits.txt", build_type .. "/docs/CREDITS.WIN.TXT", cp1251_from = build_type .. "/docs/CREDITS.TXT"},
317 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
318 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
319 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
320 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
321 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
322 {"kolibrios/games/ataka", "common/games/ataka/ataka_ru"},
323 {"kolibrios/games/Dungeons/Resources/Textures/Environment/", PROGS .. "/games/Dungeons/Resources/Textures/Environment/*"},
324 {"kolibrios/games/Dungeons/Resources/Textures/Objects/", PROGS .. "/games/Dungeons/Resources/Textures/Objects/*"},
325 {"kolibrios/games/Dungeons/Resources/Textures/HUD/", PROGS .. "/games/Dungeons/Resources/Textures/HUD/*"},
326 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
327 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
328 {"kolibrios/games/sstartrek/SStarTrek", "common/games/sstartrek/SStarTrek_ru"},
329 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/whowtbam"},
330 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"},
331 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
332 {"kolibrios/res/guide/", build_type .. "/docs/guide/*"},
333 {"kolibrios/develop/tcc/doc/", PROGS .. "/develop/ktcc/trunk/bin/doc/ru/*"},
334 }) else tup.append_table(extra_files, {
335 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
336 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
337 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
338 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
339 {"Docs/credits.txt", build_type .. "/docs/CREDITS.TXT"},
340 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
341 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
342 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
343 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
344 {"kolibrios/games/ataka", "common/games/ataka/ataka_en"},
345 {"kolibrios/games/sstartrek/SStarTrek", "common/games/sstartrek/SStarTrek_en"},
346 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
347 {"kolibrios/develop/tcc/doc/", PROGS .. "/develop/ktcc/trunk/bin/doc/en/*"},
348 }) end
349 --[[
350 Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
351 Same syntax as extra_files.
352 ]]--
353 if build_type == "rus" then
354 distr_extra_files = {
355 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
356 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
358 else
359 distr_extra_files = {
360 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
363 --[[
364 Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
365 Same syntax as extra_files.
366 ]]--
367 if build_type == "rus" then
368 iso_extra_files = {
369 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
370 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
372 else
373 iso_extra_files = {
374 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
378 -- Programs that require FASM to compile.
379 if tup.getconfig('NO_FASM') ~= 'full' then
380 tup.append_table(img_files, {
381 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
382 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
383 {"@HA", PROGS .. "/other/ha/HA"},
384 {"@ICON", PROGS .. "/system/icon_new/icon"},
385 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
386 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
387 {"@OPEN", PROGS .. "/system/open/open"},
388 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
389 {"@SS", PROGS .. "/system/scrsaver/scrsaver"},
390 {"@VOLUME", PROGS .. "/media/volume/volume"},
391 {"HACONFIG", PROGS .. "/other/ha/HACONFIG"},
392 {"APM", PROGS .. "/system/apm/apm"},
393 {"CALC", PROGS .. "/other/calc/trunk/calc"},
394 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
395 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
396 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
397 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
398 {"CPUID", PROGS .. "/testing/cpuid/trunk/CPUID"},
399 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
400 {"DEFAULT.SKN", "../skins/Leency/Shkvorka/Shkvorka.skn"},
401 {"DISPTEST", PROGS .. "/testing/disptest/trunk/disptest"},
402 {"END", PROGS .. "/system/end/light/end"},
403 {"ESKIN", PROGS .. "/system/eskin/trunk/eskin"},
404 {"FSPEED", PROGS .. "/testing/fspeed/fspeed"},
405 {"GMON", PROGS .. "/system/gmon/gmon"},
406 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
407 {"KBD", PROGS .. "/testing/kbd/trunk/kbd"},
408 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
409 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
410 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
411 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
412 {"MGB", PROGS .. "/testing/mgb/trunk/mgb"},
413 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
414 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
415 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
416 {"PCIDEV", PROGS .. "/testing/pcidev/trunk/PCIDEV"},
417 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
418 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
419 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
420 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
421 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
422 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
423 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
424 {"TEST", PROGS .. "/testing/protection/trunk/test"},
425 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
426 {"UNZ", PROGS .. "/fs/unz/unz"},
427 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
428 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
429 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
430 {"3D/3DCUBE2", PROGS .. "/demos/3dcube2/trunk/3DCUBE2"},
431 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
432 {"3D/GEARS", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/gears"},
433 {"3D/RAY", PROGS .. "/demos/ray/ray"},
434 {"3D/VIEW3DS", PROGS .. "/demos/view3ds/view3ds"},
435 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
436 {"DEMOS/BUDHBROT", PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
437 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
438 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
439 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
440 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
441 {"DEMOS/SPIRAL", PROGS .. "/demos/spiral/spiral"},
442 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
443 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
444 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
445 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
446 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
447 {"DEMOS/ZEROLINE", PROGS .. "/demos/zeroline/trunk/zeroline"},
448 {"DEVELOP/ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
449 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
450 {"DEVELOP/CEDIT", PROGS .. "/develop/cedit/CEDIT"},
451 {"DEVELOP/COBJ", PROGS .. "/develop/cObj/trunk/cObj"},
452 {"DEVELOP/ENTROPYV", PROGS .. "/develop/entropyview/entropyview"},
453 {"DEVELOP/FASM", PROGS .. "/develop/fasm/1.73/fasm"},
454 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
455 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
456 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
457 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
458 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
459 {"DEVELOP/EXAMPLES/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
460 {"DEVELOP/EXAMPLES/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
461 {"DEVELOP/EXAMPLES/CONGET", PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
462 {"DEVELOP/EXAMPLES/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
463 {"DEVELOP/EXAMPLES/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
464 {"DEVELOP/EXAMPLES/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
465 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
466 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
467 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
468 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
469 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
470 {"GAMES/LIGHTS", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
471 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
472 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
473 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
474 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
475 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
476 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
477 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
478 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
479 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
480 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
481 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
482 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
483 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
484 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
485 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console_coff/console.obj"},
486 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
487 {"LIB/DLL.OBJ", PROGS .. "/develop/libraries/dll/dll.obj"},
488 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
489 {"LIB/LIBCRASH.OBJ", PROGS .. "/develop/libraries/libcrash/libcrash.obj"},
490 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
491 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
492 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
493 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
494 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
495 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
496 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
497 {"LIB/RASTERWORKS.OBJ", PROGS .. "/develop/libraries/fontRasterWorks(unicode)/RasterWorks.obj"},
498 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
499 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
500 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
501 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
502 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
503 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
504 {"MEDIA/MP3INFO", PROGS .. "/media/mp3info/mp3info"},
505 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
506 {"MEDIA/PIANO", PROGS .. "/media/piano/piano"},
507 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
508 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
509 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
510 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
511 {"NETWORK/NSINST", PROGS .. "/network/netsurf/nsinstall"},
512 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
513 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
514 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
515 {"NETWORK/SNTP", PROGS .. "/network/sntp/sntp"},
516 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
517 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
518 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
519 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
520 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
521 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
522 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
523 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
524 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
525 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
526 {"DRIVERS/AR81XX.SYS", "../drivers/ethernet/ar81xx.sys"},
527 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
528 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
529 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
530 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
531 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
532 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
533 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
534 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
535 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
536 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
537 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
538 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
539 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
540 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
541 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
542 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
543 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
544 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
545 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
546 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
547 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
548 {"DRIVERS/HDAUDIO.SYS", "../drivers/audio/intel_hda/hdaudio.sys"},
549 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
550 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
551 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
552 {"DRIVERS/AC97.SYS", "../drivers/audio/ac97.sys"},
553 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
554 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
555 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
556 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
557 {"DRIVERS/SDHCI.SYS", "../drivers/sdhci/sdhci.sys"},
559 tup.append_table(extra_files, {
560 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
561 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
562 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
563 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
564 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
565 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
566 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
567 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
568 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
569 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
570 {"kolibrios/3D/3dsheart", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
571 {"kolibrios/3D/flatwav", PROGS .. "/demos/flatwav/trunk/flatwav"},
572 {"kolibrios/3D/mos3de", PROGS .. "/demos/mos3de/mos3de"},
573 {"kolibrios/3D/info3ds/INFO3DS", PROGS .. "/develop/info3ds/info3ds"},
574 {"kolibrios/3D/textures1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
575 {"kolibrios/3D/info3ds/INFO3DS_U", PROGS .. "/develop/info3ds/info3ds_u"},
576 {"kolibrios/3D/voxel_editor/VOXEL_EDITOR", PROGS .. "/media/voxel_editor/trunk/voxel_editor"},
577 {"kolibrios/3D/voxel_utilites/VOX_CREATOR" , PROGS .. "/media/voxel_editor/utilites/vox_creator"},
578 {"kolibrios/3D/voxel_utilites/VOX_MOVER" , PROGS .. "/media/voxel_editor/utilites/vox_mover"},
579 {"kolibrios/3D/voxel_utilites/VOX_TGL" , PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
580 {"kolibrios/demos/life3", PROGS .. "/games/life3/trunk/life3"},
581 {"kolibrios/demos/qjulia", PROGS .. "/demos/qjulia/trunk/qjulia"},
582 {"kolibrios/develop/utils/koldbg", PROGS .. "/develop/koldbg/koldbg"},
583 {"kolibrios/games/Almaz", PROGS .. "/games/almaz/almaz"},
584 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
585 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
586 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
587 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
588 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
589 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
590 {"kolibrios/games/megamaze", PROGS .. "/games/megamaze/trunk/megamaze"},
591 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
592 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
593 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
594 {"kolibrios/media/img_transform", PROGS .. "/media/img_transform/img_transform"},
595 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
596 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
597 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
598 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
599 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
600 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
601 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
602 {"kolibrios/utils/AMDtemp", PROGS .. "/system/amd_temp_view/AMDtemp"},
603 {"kolibrios/utils/calcplus", PROGS .. "/other/calcplus/calcplus"},
604 {"kolibrios/utils/kfm/kfm", PROGS .. "/fs/kfm/trunk/kfm"},
605 {"kolibrios/utils/tedit/t_edit", PROGS .. "/other/t_edit/t_edit"},
607 -- For russian build, add russian-only programs.
608 if build_type == "rus" then tup.append_table(img_files, {
609 {"PERIOD", PROGS .. "/other/period/trunk/period"},
610 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
611 {"DEVELOP/EXAMPLES/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
612 }) else tup.append_table(img_files, {
613 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
614 }) end
616 if build_type == "rus" then tup.append_table(extra_files, {
617 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
618 }) end
620 end -- tup.getconfig('NO_FASM') ~= 'full'
622 -- Programs that require NASM to compile.
623 if tup.getconfig('NO_NASM') ~= 'full' then
624 tup.append_table(img_files, {
625 {"ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
626 {"LOD", PROGS .. "/fs/lod/lod"},
627 {"TIMER", PROGS .. "/other/Timer/timer"},
628 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
629 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
630 {"DEVELOP/GENFILES", PROGS .. "/testing/genfiles/GenFiles"},
631 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
632 {"MEDIA/FILLSCR", PROGS .. "/media/FillScr/fillscr"},
634 tup.append_table(extra_files, {
636 end -- tup.getconfig('NO_NASM') ~= 'full'
638 -- Programs that require JWASM to compile.
639 if tup.getconfig('NO_JWASM') ~= 'full' then
640 tup.append_table(img_files, {
641 {"LIB/INPUTBOX.OBJ", PROGS .. "/develop/libraries/InputBox/INPUTBOX.OBJ"},
643 if tup.getconfig('NO_GCC') ~= 'full' then
644 tup.append_table(img_files, {
645 {"RUN", PROGS .. "/system/RunOD/1/RUN"},
648 end -- tup.getconfig('NO_JWASM') ~= 'full'
650 -- Programs that require C-- to compile.
651 if tup.getconfig('NO_CMM') ~= 'full' then
652 tup.append_table(img_files, {
653 {"@RESHARE", PROGS .. "/cmm/misc/reshare.com"},
654 {"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
655 {"EASYSHOT", PROGS .. "/cmm/misc/easyshot.com"},
656 {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
657 {"BARSCFG", PROGS .. "/cmm/barscfg/barscfg.com"},
658 {"SYSPANEL", PROGS .. "/cmm/misc/software_widget.com"},
659 {"SYSMON", PROGS .. "/cmm/sysmon/sysmon.com"},
660 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
661 {"DEVELOP/CLIPVIEW", PROGS .. "/cmm/clipview/clipview.com"},
662 {"DEVELOP/MENU", PROGS .. "/cmm/menu/menu.com"},
663 {"DEVELOP/PIPET", PROGS .. "/cmm/misc/pipet.com"},
664 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
665 {"File Managers/KFM2", PROGS .. "/cmm/misc/kfm2.com"},
666 {"KF_VIEW", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
667 {"DEVELOP/DIFF", PROGS .. "/cmm/diff/diff.com"},
668 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
669 {"GAMES/MBLOCKS", PROGS .. "/cmm/misc/mblocks.com"},
670 {"GAMES/FLOOD-IT", PROGS .. "/games/flood-it/trunk/flood-it.com"},
671 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
672 {"GAMES/NUMBERS", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
673 {"MEDIA/PIXIE", PROGS .. "/cmm/pixie2/pixie.com"},
674 {"MEDIA/ICONEDIT", PROGS .. "/cmm/iconedit/iconedit.com"},
675 {"NETWORK/DL", PROGS .. "/cmm/downloader/dl.com"},
676 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
678 tup.append_table(extra_files, {
679 {"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
680 {"kolibrios/drivers/acpi/install.kex", PROGS .. "/cmm/misc/acpi_install.com"},
681 {"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
682 {"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
683 {"kolibrios/KolibriNext/install.kex", PROGS .. "/cmm/misc/install.com"},
684 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
685 {"kolibrios/utils/dicty.kex", PROGS .. "/cmm/dicty/dicty.com"},
686 {"kolibrios/utils/notes", PROGS .. "/cmm/notes/notes.com"},
687 {"kolibrios/utils/osupdate", PROGS .. "/cmm/misc/osupdate.com"},
688 {"kolibrios/utils/quark", PROGS .. "/cmm/quark/quark.com"},
690 end -- tup.getconfig('NO_CMM') ~= 'full'
692 -- Programs that require MSVC to compile.
693 if tup.getconfig('NO_MSVC') ~= 'full' then
694 tup.append_table(img_files, {
695 {"GRAPH", PROGS .. "/other/graph/graph"},
696 {"TABLE", PROGS .. "/other/table/table"},
697 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
698 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
699 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
700 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
702 tup.append_table(extra_files, {
703 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
704 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
706 end -- tup.getconfig('NO_MSVC') ~= 'full'
708 -- Programs that require TCC to compile.
709 if tup.getconfig('NO_TCC') ~= 'full' then
710 tup.append_table(img_files, {
711 {"NETWORK/WHOIS", PROGS .. "/network/whois/whois"},
712 {"SHELL", PROGS .. "/system/shell/shell"},
714 tup.append_table(extra_files, {
715 {"kolibrios/utils/thashview", PROGS .. "/other/TinyHashView/thashview"},
716 {"kolibrios/demos/kmatrix", PROGS .. "/demos/kmatrix/trunk/kmatrix"},
717 {"kolibrios/utils/graph", PROGS .. "/other/graph/branches/tcc_current/graph"},
718 {"kolibrios/develop/TinyBasic/TinyBasic", PROGS .. "/develop/tinybasic-1.0.4/tinybasic"},
719 {"kolibrios/develop/TinyBasic/bas/", PROGS .. "/develop/tinybasic-1.0.4/bas/*"},
720 {"kolibrios/develop/TinyBasic/TinyBasic.man", PROGS .. "/develop/tinybasic-1.0.4/doc/tinybasic.man"},
721 -- {"kolibrios/utils/teatool", PROGS .. "/other/TEAtool/teatool"},
722 {"kolibrios/utils/passwordgen", PROGS .. "/other/PasswordGen/passwordgen"},
723 {"kolibrios/utils/kruler", PROGS .. "/other/kruler/kruler"},
724 {"kolibrios/media/qr_tool", PROGS .. "/media/qr_tool/qr_tool"},
725 {"kolibrios/utils/weather", PROGS .. "/other/Weather/weather"},
726 {"kolibrios/settings/weather.json", PROGS .. "/other/Weather/weather.json"},
727 {"kolibrios/utils/man2html", PROGS .."/other/man2html/man2html"},
729 end -- tup.getconfig('NO_TCC') ~= 'full'
731 -- Programs that require GCC to compile.
732 if tup.getconfig('NO_GCC') ~= 'full' then
733 tup.append_table(img_files, {
734 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
735 {"LIB/BASE64.OBJ", PROGS .. "/develop/libraries/base64/base64.obj"},
736 {"LIB/LIBC.OBJ", PROGS .. "/develop/ktcc/trunk/libc.obj/source/libc.obj"},
737 {"LIB/ICONV.OBJ", PROGS .. "/develop/libraries/iconv/iconv.obj"},
738 -- {"LIB/MTAR.OBJ", PROGS .. "/develop/libraries/microtar/mtar.obj"},
740 tup.append_table(extra_files, {
741 -- {"kolibrios/3D/cubeline", PROGS .. "/demos/cubeline/trunk/cubeline"},
742 {"kolibrios/3D/gears", PROGS .. "/demos/gears/gears"},
743 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
744 {"kolibrios/emul/uarm/", "../contrib/other/uarm/uARM"},
745 {"kolibrios/games/2048", PROGS .. "/games/2048/2048"},
746 {"kolibrios/games/checkers", PROGS .. "/games/checkers/trunk/checkers"},
747 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
748 {"kolibrios/games/heliothryx", PROGS .. "/games/heliothryx/heliothryx"},
749 {"kolibrios/games/marblematch3", PROGS .. "/games/marblematch3/marblematch3"},
750 {"kolibrios/games/nsider", PROGS .. "/games/nsider/nsider"},
751 {"kolibrios/games/fridge/", PROGS .. "/games/fridge/fridge"},
752 {"kolibrios/develop/lua/lua", "../contrib/other/lua-5.2.0/lua"},
753 {"kolibrios/develop/lua/calc.lua", "../contrib/other/lua-5.2.0/calc.lua"},
754 {"kolibrios/develop/lua/console.lua", "../contrib/other/lua-5.2.0/console.lua"},
755 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/<libc.dll.a>"},
756 {"kolibrios/lib/dr_flac.obj", "../contrib/media/dr_flac/dr_flac.obj"},
757 {"kolibrios/lib/minimp3.obj", "../contrib/media/minimp3/minimp3.obj"},
758 {"kolibrios/lib/sqlite3.dll", "../contrib/sdk/bin/sqlite3.dll", group = "../contrib/sdk/lib/<libsqlite3.dll.a>"},
759 {"kolibrios/lib/stb_vorbis.obj", "../contrib/media/stb_vorbis/stb_vorbis.obj"},
760 {"kolibrios/utils/minizip/minizip", PROGS .. "/fs/minizip/minizip"},
761 {"kolibrios/utils/minizip/miniunz", PROGS .. "/fs/minizip/miniunz"},
762 {"kolibrios/develop/c--/c--", PROGS .. "/develop/cmm/cmm"},
763 {"kolibrios/develop/tcc/tcc", PROGS .. "/develop/ktcc/trunk/source/tcc"},
764 {"kolibrios/develop/sqlite3/sqlite3", "../contrib/sdk/sources/sqlite3/shell/sqlite3"},
765 {"kolibrios/develop/utils/objconv", PROGS .. "/develop/objconv/objconv"},
766 {"kolibrios/drivers/sensors/k10temp.sys", "../drivers/sensors/k10temp/k10temp.sys"},
767 {"kolibrios/drivers/acpi/acpi.sys", "../drivers/devman/acpi.sys"},
768 {"kolibrios/drivers/acpi/acpi", "../drivers/devman/acpi"},
769 {"kolibrios/drivers/geode/geode.sys", "common/drivers/geode/geode.sys"}, -- there is also an autobuid version that is not working
770 {"kolibrios/drivers/geode/geode", "../drivers/audio/a5536/geode"},
772 if tup.getconfig('NO_NASM') ~= 'full' then
773 tup.append_table(extra_files, {
774 {"kolibrios/games/tyrian/", "../contrib/games/opentyrian/opentyrian"},
775 {"kolibrios/games/tyrian/data/", "common/games/tyrian/data/*"},
776 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
777 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
778 {"kolibrios/games/wolf3d/", "../contrib/games/wolf3d/wolf3d"},
779 {"kolibrios/games/wolf3d/", "common/games/wolf3d/*"},
780 {"kolibrios/emul/dgen/dgen", PROGS .. "/emulator/dgen-sdl-1.33/dgen"},
781 {"kolibrios/emul/dgen/dgen.html", PROGS .. "/emulator/dgen-sdl-1.33/dgen.html"},
782 {"kolibrios/emul/dgen/dgenrc.html", PROGS .. "/emulator/dgen-sdl-1.33/dgenrc.html"},
785 -- For russian build, add russian-only programs.
786 if build_type == "rus" then tup.append_table(extra_files, {
787 {"kolibrios/games/21days", PROGS .. "/games/21days/21days"},
788 }) end
789 end -- tup.getconfig('NO_GCC') ~= 'full'
791 -- Skins.
792 tup.include("../skins/skinlist.lua")
794 --[================================[ CODE ]================================]--
795 -- expand extra_files and similar
796 function expand_extra_files(files)
797 local result = {}
798 for i,v in ipairs(files) do
799 if string.match(v[2], "%*")
800 then
801 local g = tup.glob(v[2])
802 for j,x in ipairs(g) do
803 table.insert(result, {v[1], x, group=v.group})
805 else
806 if v.cp1251_from then
807 tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
809 table.insert(result, {v[1], v[2], group=v.group})
812 return result
815 -- append skins to extra_files
816 for i,v in ipairs(skinlist) do
817 table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
820 -- prepare distr_extra_files and iso_extra_files: expand and append common part
821 extra_files = expand_extra_files(extra_files)
822 distr_extra_files = expand_extra_files(distr_extra_files)
823 iso_extra_files = expand_extra_files(iso_extra_files)
824 tup.append_table(distr_extra_files, extra_files)
825 tup.append_table(iso_extra_files, extra_files)
827 -- generate list of directories to be created inside kolibri.img
828 img_dirs = {}
829 input_deps = {}
830 for i,v in ipairs(img_files) do
831 img_file = v[1]
832 local_file = v[2]
834 slash_pos = 0
835 while true do
836 slash_pos = string.find(img_file, '/', slash_pos + 1)
837 if not slash_pos then break end
838 table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
841 -- tup does not want to see hidden files as dependencies
842 if not string.match(local_file, "/%.") then
843 table.insert(input_deps, v.group or local_file)
847 -- create empty 1.44M file
848 make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
849 make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
850 -- format it as a standard 1.44M floppy
851 make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
852 -- copy bootloader
853 if tup.getconfig("NO_FASM") ~= "full" then
854 bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
855 make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
856 table.insert(input_deps, bootloader)
858 -- make folders
859 table.sort(img_dirs)
860 for i,v in ipairs(img_dirs) do
861 if v ~= img_dirs[i-1] then
862 make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
865 -- copy files
866 output_deps = {"kolibri.img"}
867 for i,v in ipairs(img_files) do
868 local_file = v[2]
869 if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
870 then
871 -- for kernel.mnt, insert autobuild revision identifier
872 -- from .revision to .kernel.mnt
873 -- note that .revision and .kernel.mnt must begin with .
874 -- to prevent tup from tracking them
875 if build_type == "rus"
876 then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(get-current-revision)]"|iconv -f utf8 -t cp866)'
877 else str='$(date -u +"[auto-build %d %b %Y %R, r$(get-current-revision)]")'
879 str = string.gsub(str, "%$", "\\$") -- escape $ as \$
880 str = string.gsub(str, "%%", "%%%%") -- escape % as %%
881 make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
882 make_img_command = make_img_command .. " && str=" .. str
883 make_img_command = make_img_command .. ' && echo -n $str | dd of=.kernel.mnt bs=1 seek=`expr 274 - length "$str"` conv=notrunc 2>/dev/null'
884 local_file = ".kernel.mnt"
885 table.insert(output_deps, local_file)
887 make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
890 -- generate tup rule for kolibri.img
891 tup.definerule{inputs = input_deps, command = make_img_command, outputs = output_deps}
893 -- generate command and dependencies for mkisofs
894 input_deps = {"kolibri.img"}
895 iso_files_list = ""
896 for i,v in ipairs(iso_extra_files) do
897 iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
898 table.insert(input_deps, v.group or v[2])
901 -- generate tup rule for kolibri.iso
902 if tup.getconfig("INSERT_REVISION_ID") ~= ""
903 then volume_id = "KolibriOS r`get-current-revision`"
904 else volume_id = "KolibriOS"
906 tup.definerule{inputs = input_deps, command =
907 '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
908 'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
909 '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
910 '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
911 outputs = {"kolibri.iso"}}
913 -- generate command and dependencies for distribution kit
914 cp = 'cp "%f" "%o"'
915 tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
916 for i,v in ipairs(distr_extra_files) do
917 cmd = cp:gsub("%%f", v[2]) -- input can be a group, we can't rely on tup's expansion of %f in this case
918 if string.sub(v[1], -1) == "/"
919 then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
920 else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
924 -- build kolibri.raw
925 raw_mbr = "../programs/hd_load/usb_boot/mbr"
926 raw_bootsector = "../kernel/trunk/bootloader/extended_primary_loader/fat32/bootsect.bin"
927 raw_files = {
928 {"KOLIBRI.IMG", "kolibri.img"},
929 {"KORDLDR.F32", "../kernel/trunk/bootloader/extended_primary_loader/fat32/kordldr.f32"},
930 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt.ext_loader"},
931 {"CONFIG.INI", "../kernel/trunk/bootloader/extended_primary_loader/config.ini"},
932 {"EFI/BOOT/BOOTX64.EFI", "../kernel/trunk/bootloader/uefi4kos/bootx64.efi"},
933 {"EFI/BOOT/BOOTIA32.EFI", "../kernel/trunk/bootloader/uefi4kos/bootia32.efi"},
934 {"EFI/KOLIBRIOS/KOLIBRI.IMG", "kolibri.img"},
935 {"EFI/KOLIBRIOS/KOLIBRI.INI", "../kernel/trunk/bootloader/uefi4kos/kolibri.ini"},
936 {"EFI/KOLIBRIOS/KOLIBRI.KRN", "../kernel/trunk/kernel.mnt.ext_loader"}
939 for i,v in ipairs(img_files) do
940 raw_file = "KOLIBRIOS/" .. string.upper(v[1])
941 local_file = v[2]
942 tup.append_table(raw_files, {{raw_file, local_file}})
945 tup.append_table(raw_files, extra_files)
947 make_raw_command = '^ MKRAW kolibri.raw^ ' -- for tup: don't write full command to logs
948 make_raw_command = make_raw_command .. "dd if=/dev/zero of=kolibri.raw bs=1MiB count=128 2>&1"
949 make_raw_command = make_raw_command .. " && parted --script kolibri.raw mktable gpt"
950 make_raw_command = make_raw_command .. " && parted --script kolibri.raw unit MiB mkpart primary fat32 1 127"
951 make_raw_command = make_raw_command .. " && parted --script kolibri.raw set 1 esp on"
952 make_raw_command = make_raw_command .. " && sgdisk kolibri.raw --hybrid 1:EE"
953 make_raw_command = make_raw_command .. " && dd if=" .. raw_mbr .. " of=kolibri.raw bs=1 count=\\$((0x1b8)) conv=notrunc"
954 make_raw_command = make_raw_command .. " && dd if=" .. raw_mbr .. " of=kolibri.raw bs=1 count=1 skip=\\$((0x5a)) seek=\\$((0x1be)) conv=notrunc"
955 make_raw_command = make_raw_command .. " && mformat -i kolibri.raw@@1M -v KOLIBRIOS -T \\$(((128-1-1)*1024*1024/512)) -h 16 -s 32 -H 2048 -c 1 -F -B " .. raw_bootsector .. " ::"
957 -- generate list of directories to be created inside kolibri.raw
958 raw_dirs = {}
959 input_deps = {raw_mbr, raw_bootsector}
960 for i,v in ipairs(raw_files) do
961 raw_file = v[1]
962 local_file = v[2]
964 cur_dir = ""
965 for dir in string.gmatch(raw_file, "([^/]+)/") do
966 cur_dir = cur_dir .. "/" .. string.upper(dir)
967 raw_dirs[cur_dir] = true
970 -- tup does not want to see hidden files as dependencies
971 if not string.match(local_file, "/%.") then
972 table.insert(input_deps, v.group or local_file)
976 -- Sorting is needed to mkdir /one before /one/two
977 raw_dirs_sorted = {}
978 for k in pairs(raw_dirs) do table.insert(raw_dirs_sorted, k) end
979 table.sort(raw_dirs_sorted)
980 raw_dirs = raw_dirs_sorted
982 -- make folders
983 table.sort(raw_dirs)
984 for _, dir in pairs(raw_dirs) do
985 make_raw_command = make_raw_command .. ' && mmd -i kolibri.raw@@1M "::' .. dir .. '"'
988 -- Put copying of raw_files into separate scripts to avoid 'execl: Argument list too long'
989 make_raw_command2 = "true"
990 make_raw_command3 = "true"
991 -- copy files
992 for i,v in ipairs(raw_files) do
993 local_file = v[2]
994 cmd = ' && mcopy -moi kolibri.raw@@1M "' .. local_file .. '" "::' .. v[1] .. '"'
995 if i < 1024 then -- 1024 commands require ~100kiB which is below 128kiB with some margin
996 make_raw_command2 = make_raw_command2 .. cmd
997 else
998 make_raw_command3 = make_raw_command3 .. cmd
1002 make_raw_command2_file = "make_raw_command2_file"
1003 make_raw_command3_file = "make_raw_command3_file"
1004 tup.definerule{inputs = {}, command = "echo '" .. make_raw_command2 .. "' > " .. make_raw_command2_file, outputs = {make_raw_command2_file}}
1005 tup.definerule{inputs = {}, command = "echo '" .. make_raw_command3 .. "' > " .. make_raw_command3_file, outputs = {make_raw_command3_file}}
1007 table.insert(input_deps, make_raw_command2_file)
1008 table.insert(input_deps, make_raw_command3_file)
1009 -- generate tup rule for kolibri.raw
1010 tup.definerule{inputs = input_deps, command = make_raw_command .. " && bash " .. make_raw_command2_file .. " && bash " .. make_raw_command3_file, outputs = {"kolibri.raw"}}