Subversion Repositories Kolibri OS

Rev

Rev 5321 | Rev 5328 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5321 Rev 5327
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/*"},
140
 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
141
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
141
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
142
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
142
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
143
 {"kolibrios/games/rstearth/barret_8bpp.png", PROGS .. "/games/rstearth/resources/barret_8bpp.png"},
143
 {"kolibrios/games/rstearth/barret_8bpp.png", PROGS .. "/games/rstearth/resources/barret_8bpp.png"},
144
 {"kolibrios/games/rstearth/base_8bpp.png", PROGS .. "/games/rstearth/resources/base_8bpp.png"},
144
 {"kolibrios/games/rstearth/base_8bpp.png", PROGS .. "/games/rstearth/resources/base_8bpp.png"},
145
 {"kolibrios/games/rstearth/death_8bpp.png", PROGS .. "/games/rstearth/resources/death_8bpp.png"},
145
 {"kolibrios/games/rstearth/death_8bpp.png", PROGS .. "/games/rstearth/resources/death_8bpp.png"},
146
 {"kolibrios/games/rstearth/font_russo_1bpp.png", PROGS .. "/games/rstearth/resources/font_russo_1bpp.png"},
146
 {"kolibrios/games/rstearth/font_russo_1bpp.png", PROGS .. "/games/rstearth/resources/font_russo_1bpp.png"},
147
 {"kolibrios/games/rstearth/ifrit_8bpp.png", PROGS .. "/games/rstearth/resources/ifrit_8bpp.png"},
147
 {"kolibrios/games/rstearth/ifrit_8bpp.png", PROGS .. "/games/rstearth/resources/ifrit_8bpp.png"},
148
 {"kolibrios/games/rstearth/miku_8bpp.png", PROGS .. "/games/rstearth/resources/miku_8bpp.png"},
148
 {"kolibrios/games/rstearth/miku_8bpp.png", PROGS .. "/games/rstearth/resources/miku_8bpp.png"},
149
 {"kolibrios/games/rstearth/red_brick_8bpp.png", PROGS .. "/games/rstearth/resources/red_brick_8bpp.png"},
149
 {"kolibrios/games/rstearth/red_brick_8bpp.png", PROGS .. "/games/rstearth/resources/red_brick_8bpp.png"},
150
 {"kolibrios/games/rstearth/skeleton_8bpp.png", PROGS .. "/games/rstearth/resources/skeleton_8bpp.png"},
150
 {"kolibrios/games/rstearth/skeleton_8bpp.png", PROGS .. "/games/rstearth/resources/skeleton_8bpp.png"},
151
 {"kolibrios/games/rstearth/white_brick_8bpp.png", PROGS .. "/games/rstearth/resources/white_brick_8bpp.png"},
151
 {"kolibrios/games/rstearth/white_brick_8bpp.png", PROGS .. "/games/rstearth/resources/white_brick_8bpp.png"},
152
 {"kolibrios/games/rstearth/flaunch.wav", PROGS .. "/games/rstearth/resources/flaunch.wav"},
152
 {"kolibrios/games/rstearth/flaunch.wav", PROGS .. "/games/rstearth/resources/flaunch.wav"},
153
 {"kolibrios/games/rstearth/misc_menu.wav", PROGS .. "/games/rstearth/resources/misc_menu.wav"},
153
 {"kolibrios/games/rstearth/misc_menu.wav", PROGS .. "/games/rstearth/resources/misc_menu.wav"},
154
 {"kolibrios/games/rstearth/walking_with_poseidon.wav", PROGS .. "/games/rstearth/resources/walking_with_poseidon.wav"},
154
 {"kolibrios/games/rstearth/walking_with_poseidon.wav", PROGS .. "/games/rstearth/resources/walking_with_poseidon.wav"},
155
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
155
 {"kolibrios/lib/avcodec-55.dll", "common/lib/avcodec-55.dll"},
156
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
156
 {"kolibrios/lib/avdevice-55.dll", "common/lib/avdevice-55.dll"},
157
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
157
 {"kolibrios/lib/avformat-55.dll", "common/lib/avformat-55.dll"},
158
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
158
 {"kolibrios/lib/avutil-52.dll", "common/lib/avutil-52.dll"},
159
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
159
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
160
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
160
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
161
 {"kolibrios/lib/pixlib.dll", "common/lib/pixlib.dll"},
161
 {"kolibrios/lib/pixlib.dll", "common/lib/pixlib.dll"},
162
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
162
 {"kolibrios/lib/swresample-0.dll", "common/lib/swresample-0.dll"},
163
 {"kolibrios/lib/swscale-2.dll", "common/lib/swscale-2.dll"},
163
 {"kolibrios/lib/swscale-2.dll", "common/lib/swscale-2.dll"},
164
 {"kolibrios/lib/zlib.dll", "common/lib/zlib.dll"},
164
 {"kolibrios/lib/zlib.dll", "common/lib/zlib.dll"},
165
 {"kolibrios/media/fplay-full", "common/media/fplay-full"},
165
 {"kolibrios/media/fplay-full", "common/media/fplay-full"},
166
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
166
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
167
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
167
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
168
}
168
}
169
if build_type == "rus" then tup.append_table(extra_files, {
169
if build_type == "rus" then tup.append_table(extra_files, {
170
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
170
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
171
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
171
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
172
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
172
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
173
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
173
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
174
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
174
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
175
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
175
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
176
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
176
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
177
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
177
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
178
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
178
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
179
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
179
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
180
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
180
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
181
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
181
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
182
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
182
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
183
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
183
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
184
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
184
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
185
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
185
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
186
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
186
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
187
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
187
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
188
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
188
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
189
}) else tup.append_table(extra_files, {
189
}) else tup.append_table(extra_files, {
190
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
190
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
191
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
191
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
192
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
192
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
193
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
193
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
194
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
194
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
195
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
195
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
196
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
196
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
197
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
197
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
198
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
198
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
199
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
199
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
200
}) end
200
}) end
201
--[[
201
--[[
202
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
202
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
203
Same syntax as extra_files.
203
Same syntax as extra_files.
204
]]--
204
]]--
205
if build_type == "rus" then
205
if build_type == "rus" then
206
distr_extra_files = {
206
distr_extra_files = {
207
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
207
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
208
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
208
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
209
}
209
}
210
else
210
else
211
distr_extra_files = {
211
distr_extra_files = {
212
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
212
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
213
}
213
}
214
end
214
end
215
--[[
215
--[[
216
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
216
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
217
Same syntax as extra_files.
217
Same syntax as extra_files.
218
]]--
218
]]--
219
if build_type == "rus" then
219
if build_type == "rus" then
220
iso_extra_files = {
220
iso_extra_files = {
221
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
221
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
222
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
222
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
223
}
223
}
224
else
224
else
225
iso_extra_files = {
225
iso_extra_files = {
226
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
226
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
227
}
227
}
228
end
228
end
229
 
229
 
230
-- Programs that require FASM to compile.
230
-- Programs that require FASM to compile.
231
if tup.getconfig('NO_FASM') ~= 'full' then
231
if tup.getconfig('NO_FASM') ~= 'full' then
232
tup.append_table(img_files, {
232
tup.append_table(img_files, {
233
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
233
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
234
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
234
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
235
 {"@PANEL", PROGS .. "/system/panel/trunk/@PANEL"},
235
 {"@PANEL", PROGS .. "/system/panel/trunk/@PANEL"},
236
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
236
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
237
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
237
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
238
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
238
 {"@SS", PROGS .. "/system/ss/trunk/@ss"},
239
 {"REFRSCRN", PROGS .. "/system/refrscrn/refrscrn"},
239
 {"REFRSCRN", PROGS .. "/system/refrscrn/refrscrn"},
240
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
240
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
241
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
241
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
242
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
242
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
243
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
243
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
244
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
244
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
245
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
245
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
246
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
246
 {"CPUID", PROGS .. "/system/cpuid/trunk/CPUID"},
247
 {"DESKTOP", PROGS .. "/system/desktop/trunk/desktop"},
247
 {"DESKTOP", PROGS .. "/system/desktop/trunk/desktop"},
248
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
248
 {"DISPTEST", PROGS .. "/system/disptest/trunk/disptest"},
249
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
249
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
250
 {"END", PROGS .. "/system/end/light/end"},
250
 {"END", PROGS .. "/system/end/light/end"},
251
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
251
 {"FSPEED", PROGS .. "/fs/fspeed/fspeed"},
252
 {"GMON", PROGS .. "/system/gmon/gmon"},
252
 {"GMON", PROGS .. "/system/gmon/gmon"},
253
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
253
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
254
 {"@ICON", PROGS .. "/system/icon_new/@icon"},
254
 {"@ICON", PROGS .. "/system/icon_new/@icon"},
255
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
255
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
256
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
256
 {"KBD", PROGS .. "/system/kbd/trunk/kbd"},
257
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
257
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
258
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
258
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
259
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
259
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
260
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
260
 {"MGB", PROGS .. "/system/mgb/trunk/mgb"},
261
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
261
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
262
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
262
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
263
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
263
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
264
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
264
 {"PCIDEV", PROGS .. "/system/pcidev/trunk/PCIDEV"},
265
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
265
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
266
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
266
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
267
 {"RUN", PROGS .. "/system/run/trunk/run"},
267
 {"RUN", PROGS .. "/system/run/trunk/run"},
268
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
268
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
269
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
269
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
270
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
270
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
271
 {"TEST", PROGS .. "/system/test/trunk/test"},
271
 {"TEST", PROGS .. "/system/test/trunk/test"},
272
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
272
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
273
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
273
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
274
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
274
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
275
 {"3D/3DSHEART", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
275
 {"3D/3DSHEART", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
276
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
276
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
277
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
277
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
278
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
278
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
279
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
279
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
280
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
280
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
281
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
281
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
282
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
282
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
283
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
283
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
284
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
284
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
285
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
285
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
286
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
286
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
287
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
287
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
288
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
288
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
289
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
289
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
290
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
290
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
291
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
291
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
292
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
292
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
293
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
293
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
294
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
294
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
295
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
295
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
296
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
296
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/trunk/fasm"},
297
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
297
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
298
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
298
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
299
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
299
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
300
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
300
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
301
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
301
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
302
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
302
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
303
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
303
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console/examples/test_gets"},
304
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
304
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
305
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
305
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
306
 {"DEVELOP/INFO/CPP_KOL_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
306
 {"DEVELOP/INFO/CPP_KOL_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
307
 {"DEVELOP/INFO/CPP_KOL_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
307
 {"DEVELOP/INFO/CPP_KOL_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
308
 {"DEVELOP/INFO/CPP_KOL_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
308
 {"DEVELOP/INFO/CPP_KOL_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
309
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
309
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
310
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
310
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
311
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
311
 {"DEVELOP/INFO/INI_FILES.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
312
 {"DEVELOP/INFO/WIN_CONST.SYN", PROGS .. "/other/t_edit/info/win_const.syn"},
312
 {"DEVELOP/INFO/WIN_CONST.SYN", PROGS .. "/other/t_edit/info/win_const.syn"},
313
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
313
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
314
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
314
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
315
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
315
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
316
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
316
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
317
 {"GAMES/ARCANII", PROGS .. "/games/arcanii/trunk/arcanii"},
317
 {"GAMES/ARCANII", PROGS .. "/games/arcanii/trunk/arcanii"},
318
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
318
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
319
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
319
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
320
 {"GAMES/INVADERS", PROGS .. "/games/invaders/invaders"},
320
 {"GAMES/INVADERS", PROGS .. "/games/invaders/invaders"},
321
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
321
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
322
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
322
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
323
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
323
 {"GAMES/MBLOCKS", PROGS .. "/games/mblocks/trunk/mblocks"},
324
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
324
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
325
 {"GAMES/PHENIX", PROGS .. "/games/phenix/trunk/phenix"},
325
 {"GAMES/PHENIX", PROGS .. "/games/phenix/trunk/phenix"},
326
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
326
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
327
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
327
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
328
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
328
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
329
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
329
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
330
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
330
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
331
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
331
 {"GAMES/SQ_GAME", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
332
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
332
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
333
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
333
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
334
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
334
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
335
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
335
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
336
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
336
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
337
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
337
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
338
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
338
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
339
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
339
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console/console.obj"},
340
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
340
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
341
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
341
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
342
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
342
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
343
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
343
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
344
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
344
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
345
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
345
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
346
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
346
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
347
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
347
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
348
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
348
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
349
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
349
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
350
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
350
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
351
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
351
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
352
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
352
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
353
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
353
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
354
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
354
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
355
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
355
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
356
 {"NETWORK/PING", PROGS .. "/network/icmp/ping"},
356
 {"NETWORK/PING", PROGS .. "/network/icmp/ping"},
357
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
357
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
358
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
358
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
359
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
359
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
360
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
360
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
361
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
361
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
362
 {"NETWORK/TCPSERV", PROGS .. "/network/tcpserv/tcpserv"},
362
 {"NETWORK/TCPSERV", PROGS .. "/network/tcpserv/tcpserv"},
363
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
363
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
364
 {"NETWORK/ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
364
 {"NETWORK/ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
365
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
365
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
366
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
366
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
367
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
367
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
368
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
368
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
369
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
369
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
370
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
370
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
371
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
371
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
372
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
372
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
373
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
373
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
374
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
374
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
375
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
375
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
376
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
376
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
377
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
377
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
378
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
378
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
379
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
379
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
380
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
380
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
381
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
381
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
382
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
382
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
383
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
383
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
384
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
384
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
385
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
385
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
386
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
386
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
387
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
387
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
388
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
388
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
389
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
389
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
390
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
390
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
391
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
391
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
392
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
392
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
393
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
393
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
394
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
394
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
395
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
395
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
396
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
396
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
397
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
397
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
398
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
398
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
399
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
399
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
400
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
400
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
401
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
401
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
402
})
402
})
403
tup.append_table(extra_files, {
403
tup.append_table(extra_files, {
404
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
404
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
405
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
405
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
406
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
406
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
407
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
407
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
408
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
408
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
409
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
409
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
410
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
410
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
411
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
411
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
412
 {"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/MeOSload.com"},
413
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
413
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
414
 {"kolibrios/games/rstearth/rstearth", PROGS .. "/games/rstearth/rstearth"},
414
 {"kolibrios/games/rstearth/rstearth", PROGS .. "/games/rstearth/rstearth"},
415
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
415
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
416
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
416
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
417
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
417
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
418
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
418
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
419
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
419
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
420
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
420
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
421
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
421
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
422
})
422
})
423
-- For russian build, add russian-only programs.
423
-- For russian build, add russian-only programs.
424
if build_type == "rus" then tup.append_table(img_files, {
424
if build_type == "rus" then tup.append_table(img_files, {
425
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
425
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
426
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
426
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_rus"},
427
}) else tup.append_table(img_files, {
427
}) else tup.append_table(img_files, {
428
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
428
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console/examples/testcon2_eng"},
429
 {"GAMES/SOKO", PROGS .. "/games/soko/trunk/SOKO"},
429
 {"GAMES/SOKO", PROGS .. "/games/soko/trunk/SOKO"},
430
}) end
430
}) end
431
 
431
 
432
end -- tup.getconfig('NO_FASM') ~= 'full'
432
end -- tup.getconfig('NO_FASM') ~= 'full'
433
 
433
 
434
-- Programs that require NASM to compile.
434
-- Programs that require NASM to compile.
435
if tup.getconfig('NO_NASM') ~= 'full' then
435
if tup.getconfig('NO_NASM') ~= 'full' then
436
tup.append_table(img_files, {
436
tup.append_table(img_files, {
437
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
437
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
438
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
438
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
439
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
439
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
440
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
440
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
441
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
441
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
442
})
442
})
443
end -- tup.getconfig('NO_NASM') ~= 'full'
443
end -- tup.getconfig('NO_NASM') ~= 'full'
444
 
444
 
445
-- Programs that require C-- to compile.
445
-- Programs that require C-- to compile.
446
if tup.getconfig('NO_CMM') ~= 'full' then
446
if tup.getconfig('NO_CMM') ~= 'full' then
447
tup.append_table(img_files, {
447
tup.append_table(img_files, {
448
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
448
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
449
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
449
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
450
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
450
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
451
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
451
 {"GAMES/flood-it", PROGS .. "/games/flood-it/trunk/flood-it.com"},
452
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
452
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
453
 {"NETWORK/WebView", PROGS .. "/cmm/browser/WebView.com"},
453
 {"NETWORK/WebView", PROGS .. "/cmm/browser/WebView.com"},
454
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
454
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
455
})
455
})
456
end -- tup.getconfig('NO_CMM') ~= 'full'
456
end -- tup.getconfig('NO_CMM') ~= 'full'
457
 
457
 
458
-- Programs that require MSVC to compile.
458
-- Programs that require MSVC to compile.
459
if tup.getconfig('NO_MSVC') ~= 'full' then
459
if tup.getconfig('NO_MSVC') ~= 'full' then
460
tup.append_table(img_files, {
460
tup.append_table(img_files, {
461
 {"GRAPH", PROGS .. "/other/graph/graph"},
461
 {"GRAPH", PROGS .. "/other/graph/graph"},
462
 {"TABLE", PROGS .. "/other/table/table"},
462
 {"TABLE", PROGS .. "/other/table/table"},
463
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
463
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
464
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
464
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
465
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
465
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
466
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
466
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
467
})
467
})
468
tup.append_table(extra_files, {
468
tup.append_table(extra_files, {
469
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
469
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
470
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
470
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
471
})
471
})
472
end -- tup.getconfig('NO_MSVC') ~= 'full'
472
end -- tup.getconfig('NO_MSVC') ~= 'full'
473
 
473
 
474
-- Programs that require GCC to compile.
474
-- Programs that require GCC to compile.
475
if tup.getconfig('NO_GCC') ~= 'full' then
475
if tup.getconfig('NO_GCC') ~= 'full' then
476
tup.append_table(img_files, {
476
tup.append_table(img_files, {
477
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
477
 {"3D/CUBELINE", PROGS .. "/demos/cubeline/trunk/cubeline"},
478
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
478
 {"3D/GEARS", PROGS .. "/demos/gears/trunk/gears"},
479
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
479
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
480
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
480
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
481
 {"SHELL", PROGS .. "/system/shell/shell"},
481
 {"SHELL", PROGS .. "/system/shell/shell"},
482
})
482
})
483
tup.append_table(extra_files, {
483
tup.append_table(extra_files, {
484
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
484
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
485
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
-
 
486
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
485
 {"kolibrios/games/heliothryx/", PROGS .. "/games/heliothryx/heliothryx"},
487
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
486
 {"kolibrios/games/2048/", PROGS .. "/games/2048/2048"},
488
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
487
 {"kolibrios/games/marblematch3/", PROGS .. "/games/marblematch3/marblematch3"},
489
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
488
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
490
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
489
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
491
})
490
})
-
 
491
-- For russian build, add russian-only programs.
-
 
492
if build_type == "rus" then tup.append_table(img_files, {
-
 
493
 {"kolibrios/games/21days/", PROGS .. "/games/21days/21days"},
-
 
494
})
492
end -- tup.getconfig('NO_GCC') ~= 'full'
495
end -- tup.getconfig('NO_GCC') ~= 'full'
493
 
496
 
494
-- Skins.
497
-- Skins.
495
tup.include("../skins/skinlist.lua")
498
tup.include("../skins/skinlist.lua")
496
 
499
 
497
--[================================[ CODE ]================================]--
500
--[================================[ CODE ]================================]--
498
-- expand extra_files and similar
501
-- expand extra_files and similar
499
function expand_extra_files(files)
502
function expand_extra_files(files)
500
  local result = {}
503
  local result = {}
501
  for i,v in ipairs(files) do
504
  for i,v in ipairs(files) do
502
    if string.match(v[2], "%*")
505
    if string.match(v[2], "%*")
503
    then
506
    then
504
      local g = tup.glob(v[2])
507
      local g = tup.glob(v[2])
505
      for j,x in ipairs(g) do
508
      for j,x in ipairs(g) do
506
        table.insert(result, {v[1], x, group=v.group})
509
        table.insert(result, {v[1], x, group=v.group})
507
      end
510
      end
508
    else
511
    else
509
      if v.cp1251_from then
512
      if v.cp1251_from then
510
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
513
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
511
      end
514
      end
512
      table.insert(result, {v[1], v[2], group=v.group})
515
      table.insert(result, {v[1], v[2], group=v.group})
513
    end
516
    end
514
  end
517
  end
515
  return result
518
  return result
516
end
519
end
517
 
520
 
518
-- append skins to extra_files
521
-- append skins to extra_files
519
for i,v in ipairs(skinlist) do
522
for i,v in ipairs(skinlist) do
520
  table.insert(extra_files, {"Skins/", "../skins/" .. v})
523
  table.insert(extra_files, {"Skins/", "../skins/" .. v})
521
end
524
end
522
 
525
 
523
-- prepare distr_extra_files and iso_extra_files: expand and append common part
526
-- prepare distr_extra_files and iso_extra_files: expand and append common part
524
extra_files = expand_extra_files(extra_files)
527
extra_files = expand_extra_files(extra_files)
525
distr_extra_files = expand_extra_files(distr_extra_files)
528
distr_extra_files = expand_extra_files(distr_extra_files)
526
iso_extra_files = expand_extra_files(iso_extra_files)
529
iso_extra_files = expand_extra_files(iso_extra_files)
527
tup.append_table(distr_extra_files, extra_files)
530
tup.append_table(distr_extra_files, extra_files)
528
tup.append_table(iso_extra_files, extra_files)
531
tup.append_table(iso_extra_files, extra_files)
529
 
532
 
530
-- generate list of directories to be created inside kolibri.img
533
-- generate list of directories to be created inside kolibri.img
531
img_dirs = {}
534
img_dirs = {}
532
input_deps = {}
535
input_deps = {}
533
for i,v in ipairs(img_files) do
536
for i,v in ipairs(img_files) do
534
  img_file = v[1]
537
  img_file = v[1]
535
  local_file = v[2]
538
  local_file = v[2]
536
 
539
 
537
  slash_pos = 0
540
  slash_pos = 0
538
  while true do
541
  while true do
539
    slash_pos = string.find(img_file, '/', slash_pos + 1)
542
    slash_pos = string.find(img_file, '/', slash_pos + 1)
540
    if not slash_pos then break end
543
    if not slash_pos then break end
541
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
544
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
542
  end
545
  end
543
 
546
 
544
  -- tup does not want to see hidden files as dependencies
547
  -- tup does not want to see hidden files as dependencies
545
  if not string.match(local_file, "/%.") then
548
  if not string.match(local_file, "/%.") then
546
    table.insert(input_deps, v.group or local_file)
549
    table.insert(input_deps, v.group or local_file)
547
  end
550
  end
548
end
551
end
549
 
552
 
550
-- create empty 1.44M file
553
-- create empty 1.44M file
551
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
554
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
552
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
555
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
553
-- format it as a standard 1.44M floppy
556
-- format it as a standard 1.44M floppy
554
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
557
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
555
-- copy bootloader
558
-- copy bootloader
556
if tup.getconfig("NO_FASM") ~= "full" then
559
if tup.getconfig("NO_FASM") ~= "full" then
557
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
560
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
558
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
561
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
559
table.insert(input_deps, bootloader)
562
table.insert(input_deps, bootloader)
560
end
563
end
561
-- make folders
564
-- make folders
562
table.sort(img_dirs)
565
table.sort(img_dirs)
563
for i,v in ipairs(img_dirs) do
566
for i,v in ipairs(img_dirs) do
564
  if v ~= img_dirs[i-1] then
567
  if v ~= img_dirs[i-1] then
565
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
568
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
566
  end
569
  end
567
end
570
end
568
-- copy files
571
-- copy files
569
for i,v in ipairs(img_files) do
572
for i,v in ipairs(img_files) do
570
  local_file = v[2]
573
  local_file = v[2]
571
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
574
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
572
  then
575
  then
573
    -- for kernel.mnt, insert autobuild revision identifier
576
    -- for kernel.mnt, insert autobuild revision identifier
574
    -- from .revision to .kernel.mnt
577
    -- from .revision to .kernel.mnt
575
    -- note that .revision and .kernel.mnt must begin with .
578
    -- note that .revision and .kernel.mnt must begin with .
576
    -- to prevent tup from tracking them
579
    -- to prevent tup from tracking them
577
    if build_type == "rus"
580
    if build_type == "rus"
578
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
581
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
579
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
582
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
580
    end
583
    end
581
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
584
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
582
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
585
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
583
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
586
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
584
    make_img_command = make_img_command .. " && str=" .. str
587
    make_img_command = make_img_command .. " && str=" .. str
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'
588
    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'
586
    local_file = ".kernel.mnt"
589
    local_file = ".kernel.mnt"
587
  end
590
  end
588
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
591
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
589
end
592
end
590
 
593
 
591
-- generate tup rule for kolibri.img
594
-- generate tup rule for kolibri.img
592
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
595
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
593
 
596
 
594
-- generate command and dependencies for mkisofs
597
-- generate command and dependencies for mkisofs
595
input_deps = {"kolibri.img"}
598
input_deps = {"kolibri.img"}
596
iso_files_list = ""
599
iso_files_list = ""
597
for i,v in ipairs(iso_extra_files) do
600
for i,v in ipairs(iso_extra_files) do
598
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
601
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
599
  table.insert(input_deps, v.group or v[2])
602
  table.insert(input_deps, v.group or v[2])
600
end
603
end
601
 
604
 
602
-- generate tup rule for kolibri.iso
605
-- generate tup rule for kolibri.iso
603
if tup.getconfig("INSERT_REVISION_ID") ~= ""
606
if tup.getconfig("INSERT_REVISION_ID") ~= ""
604
then volume_id = "KolibriOS r`cat .revision`"
607
then volume_id = "KolibriOS r`cat .revision`"
605
else volume_id = "KolibriOS"
608
else volume_id = "KolibriOS"
606
end
609
end
607
tup.definerule{inputs = input_deps, command =
610
tup.definerule{inputs = input_deps, command =
608
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
611
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
609
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
612
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
610
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
613
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
611
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
614
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
612
  outputs = {"kolibri.iso"}}
615
  outputs = {"kolibri.iso"}}
613
 
616
 
614
-- generate command and dependencies for distribution kit
617
-- generate command and dependencies for distribution kit
615
cp = 'cp "%f" "%o"'
618
cp = 'cp "%f" "%o"'
616
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
619
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
617
for i,v in ipairs(distr_extra_files) do
620
for i,v in ipairs(distr_extra_files) do
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
621
  cmd = cp:gsub("%%f", v[2]) -- input can be a group, we can't rely on tup's expansion of %f in this case
619
  if string.sub(v[1], -1) == "/"
622
  if string.sub(v[1], -1) == "/"
620
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
623
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
621
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
624
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
622
  end
625
  end
623
end
626
end