Subversion Repositories Kolibri OS

Rev

Rev 9842 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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