Subversion Repositories Kolibri OS

Rev

Rev 5275 | Rev 5296 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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