Subversion Repositories Kolibri OS

Rev

Rev 7946 | Rev 7959 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6310 akron1 1
-- Do nothing unless explicitly requested in tup.config.
5098 clevermous 2
build_type = tup.getconfig('BUILD_TYPE')
3
if build_type == "" then
4
  return
5
end
6
 
7
--[================================[ DATA ]================================]--
8
 
9
PROGS = "../programs"
10
 
11
-- Static data that doesn't need to be compiled
12
-- Files to be included in kolibri.img.
13
-- The first subitem of every item is name inside kolibri.img, the second is name of local file.
14
img_files = {
15
 {"MACROS.INC", PROGS .. "/macros.inc"},
16
 {"CONFIG.INC", PROGS .. "/config.inc"},
17
 {"STRUCT.INC", PROGS .. "/struct.inc"},
6958 leency 18
 {"FB2READ", "common/fb2read"},
7425 leency 19
 {"ALLGAMES", "common/allgames"},
7653 leency 20
 {"HOME.PNG", "common/wallpapers/home.png"},
6958 leency 21
 {"ICONS32.PNG", "common/icons32.png"},
7052 leency 22
 {"ICONS16.PNG", "common/icons16.png"},
6958 leency 23
 {"INDEX.HTM", "common/index_htm"},
24
 {"KUZKINA.MID", "common/kuzkina.mid"},
25
 {"LANG.INC", build_type .. "/lang.inc"},
26
 {"NOTIFY3.PNG", "common/notify3.png"},
7864 leency 27
 {"UNIMG", PROGS .. "/fs/unimg/unimg"},
6958 leency 28
 {"VMODE", "common/vmode"},
29
 {"3D/HOUSE.3DS", "common/3d/house.3ds"},
7885 leency 30
 {"DEVELOP/BACKY", PROGS .. "/develop/backy/Backy"},
5098 clevermous 31
 {"DEVELOP/T_EDIT.INI", PROGS .. "/other/t_edit/t_edit.ini"},
6958 leency 32
 {"File Managers/ICONS.INI", "common/File Managers/icons.ini"},
33
 {"File Managers/KFM.INI", "common/File Managers/kfm.ini"},
5098 clevermous 34
 {"File Managers/ICONS.BMP", PROGS .. "/fs/kfm/trunk/icons.bmp"},
7053 leency 35
 {"File Managers/FNAV/ABOUT.TXT", "common/File Managers/fNav/About.txt"},
7029 0CodErr 36
 {"File Managers/FNAV/FNAV", "common/File Managers/fNav/fNav.kex"},
37
 {"File Managers/FNAV/FNAV.EXT", "common/File Managers/fNav/fnav.ext"},
38
 {"File Managers/FNAV/FNAV.SET", "common/File Managers/fNav/fnav.set"},
39
 {"File Managers/FNAV/FNAV_CUR.PNG", "common/File Managers/fNav/fnav_cur.png"},
40
 {"File Managers/FNAV/FNAV_FNT.PNG", "common/File Managers/fNav/fnav_fnt.png"},
7053 leency 41
 {"File Managers/FNAV/FNAV_ICN.PNG", "common/File Managers/fNav/fnav_icn.png"},
5764 leency 42
 {"FONTS/TAHOMA.KF", "common/fonts/tahoma.kf"},
6958 leency 43
 {"LIB/ICONV.OBJ", "common/lib/iconv.obj"},
44
 {"LIB/KMENU.OBJ", "common/lib/kmenu.obj"},
45
 {"LIB/NETCODE.OBJ", "common/lib/netcode.obj"},
46
 {"LIB/PIXLIB.OBJ", "common/lib/pixlib.obj"},
47
 {"MEDIA/IMGF/IMGF", "common/media/ImgF/ImgF"},
48
 {"MEDIA/IMGF/CEDG.OBJ", "common/media/ImgF/cEdg.obj"},
49
 {"MEDIA/IMGF/DITHER.OBJ", "common/media/ImgF/dither.obj"},
50
 {"MEDIA/IMGF/INVSOL.OBJ", "common/media/ImgF/invSol.obj"},
7633 leency 51
 {"MEDIA/PIXIESKN.PNG", PROGS .. "/cmm/pixie2/pixieskn.png"},
7211 nisargshah 52
 {"NETWORK/FTPC.INI", PROGS .. "/network/ftpc/ftpc.ini"},
6958 leency 53
 {"NETWORK/FTPD.INI", "common/network/ftpd.ini"},
54
 {"NETWORK/USERS.INI", "common/network/users.ini"},
7632 leency 55
 {"NETWORK/FTPC_SYS.PNG", PROGS .. "/network/ftpc/ftpc_sys.png"},
56
 {"NETWORK/FTPC_NOD.PNG", PROGS .. "/network/ftpc/ftpc_nod.png"},
7429 leency 57
 {"SETTINGS/APP.INI", "common/settings/app.ini"},
7519 leency 58
 {"SETTINGS/APP_PLUS.INI", "common/settings/app_plus.ini"},
7429 leency 59
 {"SETTINGS/ASSOC.INI", "common/settings/assoc.ini"},
5873 pathoswith 60
 {"SETTINGS/AUTORUN.DAT", "common/settings/AUTORUN.DAT"},
6958 leency 61
 {"SETTINGS/DOCKY.INI", "common/settings/docky.ini"},
62
 {"SETTINGS/FB2READ.INI", "common/settings/fb2read.ini"},
7429 leency 63
 {"SETTINGS/HOTANGLES.CFG", PROGS .. "/other/ha/SETTINGS/HOTANGLES.CFG"},
5098 clevermous 64
 {"SETTINGS/ICON.INI", build_type .. "/settings/icon.ini"},
5873 pathoswith 65
 {"SETTINGS/KEYMAP.KEY", PROGS .. "/system/taskbar/trunk/KEYMAP.KEY"},
6958 leency 66
 {"SETTINGS/KOLIBRI.LBL", build_type .. "/settings/kolibri.lbl"},
5098 clevermous 67
 {"SETTINGS/LANG.INI", build_type .. "/settings/lang.ini"},
68
 {"SETTINGS/MENU.DAT", build_type .. "/settings/menu.dat"},
7137 dunkaist 69
 {"SETTINGS/NETWORK.INI", "common/settings/network.ini"},
5972 leency 70
 {"SETTINGS/SYSTEM.INI", "common/settings/system.ini"},
7429 leency 71
 {"SETTINGS/TASKBAR.INI", "common/settings/taskbar.ini"},
5098 clevermous 72
}
7010 0CodErr 73
 
5098 clevermous 74
-- For russian build, add russian-only files.
75
if build_type == "rus" then tup.append_table(img_files, {
7769 leency 76
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/rus/example.asm"},
77
 {"GAMES/BASEKURS.KLA", build_type .. "/games/basekurs.kla"},
78
 {"GAMES/PADENIE", build_type .. "/games/padenie"},
79
 {"File Managers/KFAR.INI", build_type .. "/File Managers/kfar.ini"},
5098 clevermous 80
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/russian/dos_kolibri/kfm_keys.txt"},
81
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/rus/.shell"},
7426 leency 82
 {"SETTINGS/GAMES.INI", "rus/settings/games.ini"},
5098 clevermous 83
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
7769 leency 84
 {"SETTINGS/SYSPANEL.INI", "rus/settings/syspanel.ini"},
7010 0CodErr 85
}) elseif build_type == "eng" then tup.append_table(img_files, {
7769 leency 86
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
87
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
7015 0CodErr 88
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
7769 leency 89
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
7426 leency 90
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
7769 leency 91
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
92
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
93
}) elseif build_type == "sp" then tup.append_table(img_files, {
7015 0CodErr 94
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
95
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
96
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
7769 leency 97
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
7426 leency 98
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
7015 0CodErr 99
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
7769 leency 100
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
7010 0CodErr 101
}) elseif build_type == "it" then tup.append_table(img_files, {
7769 leency 102
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
103
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
7015 0CodErr 104
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
105
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
7010 0CodErr 106
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey_it.ini"},
7769 leency 107
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
108
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
5098 clevermous 109
}) else tup.append_table(img_files, {
7769 leency 110
 {"EXAMPLE.ASM", PROGS .. "/develop/examples/example/trunk/example.asm"},
5098 clevermous 111
 {"File Managers/KFM_KEYS.TXT", PROGS .. "/fs/kfm/trunk/docs/english/kfm_keys.txt"},
7769 leency 112
 {"File Managers/KFAR.INI", "common/File Managers/kfar.ini"},
113
 {"SETTINGS/.shell", PROGS .. "/system/shell/bin/eng/.shell"},
7426 leency 114
 {"SETTINGS/GAMES.INI", "common/settings/games.ini"},
7010 0CodErr 115
 {"SETTINGS/MYKEY.INI", PROGS .. "/system/MyKey/trunk/mykey.ini"},
7769 leency 116
 {"SETTINGS/SYSPANEL.INI", "common/settings/syspanel.ini"},
5098 clevermous 117
}) end
118
 
119
--[[
120
Files to be included in kolibri.iso and distribution kit outside of kolibri.img.
5132 clevermous 121
 
5098 clevermous 122
The first subitem of every item is name relative to the root of ISO or distribution kit,
123
the second is name of local file.
5132 clevermous 124
 
5098 clevermous 125
If the first subitem ends in /, the last component of local file name is appended.
126
The last component of the second subitem may contain '*'; if so, it will be expanded
127
according to usual rules, but without matching directories.
5132 clevermous 128
 
129
Tup does not allow a direct dependency on a file that is generated in a directory
130
other than where Tupfile.lua is and its children. Most files are generated
131
in the directory with Tupfile.lua; for other files, the item should contain
132
a named subitem "group=path/" and the file should be put in .
5098 clevermous 133
--]]
134
extra_files = {
7137 dunkaist 135
 {"/", "common/distr_data/autorun.inf"},
136
 {"/", "common/distr_data/KolibriOS_icon.ico"},
5098 clevermous 137
 {"/", build_type .. "/settings/kolibri.lbl"},
7715 leency 138
 {"Docs/stack.txt", "../kernel/trunk/docs/stack.txt"},
5098 clevermous 139
 {"HD_Load/9x2klbr/", "common/HD_load/9x2klbr/LDKLBR.VXD"},
140
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/AUTOEXEC.BAT"},
141
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/CONFIG.SYS"},
142
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme.txt"},
143
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/L_readme_Win.txt"},
144
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_install.bat"},
145
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/vista_remove.bat"},
146
 {"HD_Load/", "common/HD_load/memdisk"},
147
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot.rtf"},
148
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_866.txt"},
149
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/usb_boot_1251.txt"},
6226 leency 150
 {"kolibrios/3D/info3ds/INFO3DS.INI", PROGS .. "/develop/info3ds/info3ds.ini"},
151
 {"kolibrios/3D/info3ds/OBJECTS.PNG", PROGS .. "/develop/info3ds/objects.png"},
152
 {"kolibrios/3D/info3ds/TOOLBAR.PNG", PROGS .. "/develop/info3ds/toolbar.png"},
6237 IgorA 153
 {"kolibrios/3D/info3ds/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
6583 leency 154
 {"kolibrios/3D/md2view/", "common/3d/md2view/*"},
6584 leency 155
 {"kolibrios/3D/md2view/md2_model/", "common/3d/md2view/md2_model/*"},
6248 IgorA 156
 {"kolibrios/3D/voxel_editor/VOX_EDITOR.INI", PROGS .. "/media/voxel_editor/trunk/vox_editor.ini"},
6247 IgorA 157
 {"kolibrios/3D/voxel_editor/HOUSE1.VOX", PROGS .. "/media/voxel_editor/trunk/house1.vox"},
158
 {"kolibrios/3D/voxel_editor/HOUSE2.VOX", PROGS .. "/media/voxel_editor/trunk/house2.vox"},
6279 IgorA 159
 {"kolibrios/3D/voxel_editor/SQUIRREL.VOX", PROGS .. "/media/voxel_editor/trunk/squirrel.vox"},
160
 {"kolibrios/3D/voxel_utilites/VOX_MOVER.INI" , PROGS .. "/media/voxel_editor/utilites/vox_mover.ini"},
6287 IgorA 161
 {"kolibrios/3D/FONT8X9.BMP", PROGS .. "/fs/kfar/trunk/font8x9.bmp"},
162
 {"kolibrios/3D/TOOLB_1.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/toolb_1.png"},
163
 {"kolibrios/3D/TEST_GLU1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu1"},
164
 {"kolibrios/3D/TEST_GLU2", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/test_glu2"},
165
 {"kolibrios/3D/TEXT_2.PNG", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/text_2.png"},
6613 leency 166
 {"kolibrios/develop/oberon07/", PROGS .. "/develop/oberon07/*"},
167
 {"kolibrios/develop/oberon07/Docs/", PROGS .. "/develop/oberon07/Docs/*"},
168
 {"kolibrios/develop/oberon07/Lib/KolibriOS/", PROGS .. "/develop/oberon07/Lib/KolibriOS/*"},
169
 {"kolibrios/develop/oberon07/Samples/", PROGS .. "/develop/oberon07/Samples/*"},
7543 leency 170
 {"kolibrios/develop/c--/", PROGS .. "/cmm/c--/*"},
7866 leency 171
 {"kolibrios/develop/lua/lua", "../contrib/other/lua-5.2.0/lua"},
172
 {"kolibrios/develop/lua/calc.lua", "../contrib/other/lua-5.2.0/calc.lua"},
173
 {"kolibrios/develop/lua/console.lua", "../contrib/other/lua-5.2.0/console.lua"},
7849 leency 174
 {"kolibrios/develop/tcc/", PROGS ..  "/develop/ktcc/trunk/*"},
175
 {"kolibrios/develop/tcc/", PROGS ..  "/develop/ktcc/trunk/bin/*"},
176
 {"kolibrios/develop/tcc/lib/", PROGS ..  "/develop/ktcc/trunk/bin/lib/*"},
177
 {"kolibrios/develop/tcc/include/", PROGS ..  "/develop/ktcc/trunk/libc/include/*"},
7947 Boppan 178
 {"kolibrios/develop/tcc/include/kos/", PROGS ..  "/develop/ktcc/trunk/libc/include/kos/*"},
7849 leency 179
 {"kolibrios/develop/tcc/samples/", PROGS ..  "/develop/ktcc/trunk/samples/*"},
7216 leency 180
 {"kolibrios/develop/TinyBasic/", "common/develop/TinyBasic/*"},
7368 pavelyakov 181
 {"kolibrios/utils/cnc_editor/cnc_editor", PROGS .. "/other/cnc_editor/cnc_editor"},
182
 {"kolibrios/utils/cnc_editor/kolibri.NC", PROGS .. "/other/cnc_editor/kolibri.NC"},
7864 leency 183
 {"kolibrios/emul/", "common/emul/*"},
5098 clevermous 184
 {"kolibrios/emul/dosbox/", "common/emul/DosBox/*"},
6225 leency 185
 {"kolibrios/emul/e80/readme.txt", PROGS .. "/emulator/e80/trunk/readme.txt"},
7636 leency 186
 {"kolibrios/emul/e80/keyboard.png", PROGS .. "/emulator/e80/trunk/keyboard.png"},
6225 leency 187
 {"kolibrios/emul/fceu/fceu", PROGS .. "/emulator/fceu/fceu"},
188
 {"kolibrios/emul/fceu/FCEU ReadMe.txt", PROGS .. "/emulator/fceu/FCEU ReadMe.txt"},
7874 leency 189
 {"kolibrios/emul/kwine/kwine", PROGS .. "/emulator/kwine/bin/kwine"},
7875 dunkaist 190
 {"kolibrios/emul/kwine/lib/", PROGS .. "/emulator/kwine/bin/lib/*"},
5827 leency 191
 {"kolibrios/demos/ak47.lif", "common/demos/ak47.lif"},
192
 {"kolibrios/demos/life2", "common/demos/life2"},
7525 leency 193
 {"kolibrios/demos/life3tb.png", PROGS .. "/games/life3/trunk/life3tb.png"},
5827 leency 194
 {"kolibrios/demos/relay.lif", "common/demos/relay.lif"},
195
 {"kolibrios/demos/rpento.lif", "common/demos/rpento.lif"},
6179 leency 196
 {"kolibrios/games/BabyPainter", "common/games/BabyPainter"},
197
 {"kolibrios/games/bomber/ackack.bmp", PROGS .. "/games/bomber/ackack.bmp"},
198
 {"kolibrios/games/bomber/bomb.bmp", PROGS .. "/games/bomber/bomb.bmp"},
199
 {"kolibrios/games/bomber/plane.bmp", PROGS .. "/games/bomber/plane.bmp"},
200
 {"kolibrios/games/bomber/tile.bmp", PROGS .. "/games/bomber/tile.bmp"},
201
 {"kolibrios/games/doom1/", "common/games/doom/*"},
5098 clevermous 202
 {"kolibrios/games/fara/fara.gfx", "common/games/fara.gfx"},
5647 leency 203
 {"kolibrios/games/jumpbump/", "common/games/jumpbump/*"},
6179 leency 204
 {"kolibrios/games/knight", "common/games/knight"},
7685 leency 205
 {"kolibrios/games/KosChess/", "common/games/KosChess/*"},
7821 leency 206
 {"kolibrios/games/KosChess/images/", "common/games/KosChess/images/*"},
5296 ZblCoder 207
 {"kolibrios/games/LaserTank/", "common/games/LaserTank/*"},
5098 clevermous 208
 {"kolibrios/games/lrl/", "common/games/lrl/*"},
6181 leency 209
 {"kolibrios/games/mun/data/", "common/games/mun/data/*"},
6182 leency 210
 {"kolibrios/games/mun/libc.dll", "common/games/mun/libc.dll"},
6181 leency 211
 {"kolibrios/games/mun/mun", "common/games/mun/mun"},
6991 leency 212
 {"kolibrios/games/pig/", "common/games/pig/*"},
6188 hidnplayr 213
 {"kolibrios/games/soko/", "common/games/soko/*"},
6993 leency 214
 {"kolibrios/games/the_bus/menu.png", PROGS .. "/cmm/the_bus/menu.png"},
215
 {"kolibrios/games/the_bus/objects.png", PROGS .. "/cmm/the_bus/objects.png"},
216
 {"kolibrios/games/the_bus/road.png", PROGS .. "/cmm/the_bus/road.png"},
6583 leency 217
 {"kolibrios/grafx2/fonts/", "common/media/grafx2/fonts/*"},
218
 {"kolibrios/grafx2/scripts/", "common/media/grafx2/scripts/libs/*"},
219
 {"kolibrios/grafx2/scripts/libs/", "common/media/grafx2/scripts/*"},
220
 {"kolibrios/grafx2/skins/", "common/media/grafx2/skins/*"},
221
 {"kolibrios/grafx2/", "common/media/grafx2/*"},
6654 leency 222
 {"kolibrios/drivers/drvinf.ini", "common/drivers/drvinf.ini"},
6156 leency 223
 {"kolibrios/drivers/ahci/", "common/drivers/ahci/*"},
224
 {"kolibrios/drivers/atikms/", "common/drivers/atikms/*"},
225
 {"kolibrios/drivers/i915/", "common/drivers/i915/*"},
7591 leency 226
 {"kolibrios/drivers/test/", "common/drivers/test/*"},
6156 leency 227
 {"kolibrios/drivers/vmware/", "common/drivers/vmware/*"},
7655 leency 228
 {"kolibrios/KolibriNext/settings/", "common/KolibriNext/settings/*"},
6719 serge 229
 {"kolibrios/lib/avcodec-56.dll", "common/lib/avcodec-56.dll"},
230
 {"kolibrios/lib/avdevice-56.dll", "common/lib/avdevice-56.dll"},
231
 {"kolibrios/lib/avformat-56.dll", "common/lib/avformat-56.dll"},
232
 {"kolibrios/lib/swscale-3.dll", "common/lib/swscale-3.dll"},
233
 {"kolibrios/lib/avutil-54.dll", "common/lib/avutil-54.dll"},
7191 leency 234
 {"kolibrios/lib/cairo2.dll", "common/lib/cairo2.dll"},
5098 clevermous 235
 {"kolibrios/lib/freetype.dll", "common/lib/freetype.dll"},
5378 serge 236
 {"kolibrios/lib/i965-video.dll", "common/lib/i965-video.dll"},
237
 {"kolibrios/lib/libdrm.dll", "common/lib/libdrm.dll"},
238
 {"kolibrios/lib/libegl.dll", "common/lib/libegl.dll"},
7180 leency 239
 {"kolibrios/lib/libeglut.dll", "common/lib/libeglut.dll"},
5378 serge 240
 {"kolibrios/lib/libGL.dll", "common/lib/libGL.dll"},
6982 leency 241
 {"kolibrios/lib/libjpeg.dll", "common/lib/libjpeg.dll"},
242
 {"kolibrios/lib/libpng16.dll", "common/lib/libpng16.dll"},
5378 serge 243
 {"kolibrios/lib/libva.dll", "common/lib/libva.dll"},
244
 {"kolibrios/lib/libz.dll", "common/lib/libz.dll"},
5132 clevermous 245
 {"kolibrios/lib/libc.dll", "../contrib/sdk/bin/libc.dll", group = "../contrib/sdk/lib/"},
7191 leency 246
 {"kolibrios/lib/osmesa.dll", "common/lib/osmesa.dll"},
5378 serge 247
 {"kolibrios/lib/pixlib-gl.dll", "common/lib/pixlib-gl.dll"},
7191 leency 248
 {"kolibrios/lib/pixman-1.dll", "common/lib/pixman-1.dll"},
6719 serge 249
 {"kolibrios/lib/swresample-1.dll", "common/lib/swresample-1.dll"},
5378 serge 250
 {"kolibrios/lib/i915_dri.drv", "common/lib/i915_dri.drv"},
251
 {"kolibrios/media/fplay", "common/media/fplay"},
7203 leency 252
 {"kolibrios/media/fplay_run", "common/media/fplay_run"},
7646 leency 253
 {"kolibrios/media/minimp3", "common/media/minimp3"},
6155 leency 254
 {"kolibrios/media/updf", "common/media/updf"},
255
 {"kolibrios/media/vttf", "common/media/vttf"},
5098 clevermous 256
 {"kolibrios/media/zsea/zsea.ini", PROGS .. "/media/zsea/zSea.ini"},
257
 {"kolibrios/media/zsea/buttons/buttons.png", PROGS .. "/media/zsea/buttons.png"},
6094 leency 258
 {"kolibrios/res/skins/", "../skins/authors.txt"},
7569 leency 259
 {"kolibrios/res/templates/", "common/templates/*"},
7640 leency 260
 {"kolibrios/res/templates/", PROGS .. "/emulator/e80/trunk/games/*"},
7643 leency 261
 {"kolibrios/res/templates/NES/", "common/templates/NES/*"},
7544 leency 262
 {"kolibrios/res/wallpapers/", "common/wallpapers/*"},
6958 leency 263
 }
5098 clevermous 264
if build_type == "rus" then tup.append_table(extra_files, {
265
 {"Docs/cp866/config.txt", build_type .. "/docs/CONFIG.TXT"},
266
 {"Docs/cp866/gnu.txt", build_type .. "/docs/GNU.TXT"},
267
 {"Docs/cp866/history.txt", build_type .. "/docs/HISTORY.TXT"},
268
 {"Docs/cp866/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
269
 {"Docs/cp866/install.txt", build_type .. "/docs/INSTALL.TXT"},
270
 {"Docs/cp866/readme.txt", build_type .. "/docs/README.TXT"},
271
 {"Docs/cp866/sysfuncr.txt", PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
272
 {"Docs/cp1251/config.txt", build_type .. "/docs/CONFIG.WIN.TXT", cp1251_from = build_type .. "/docs/CONFIG.TXT"},
273
 {"Docs/cp1251/gnu.txt", build_type .. "/docs/GNU.WIN.TXT", cp1251_from = build_type .. "/docs/GNU.TXT"},
274
 {"Docs/cp1251/history.txt", build_type .. "/docs/HISTORY.WIN.TXT", cp1251_from = build_type .. "/docs/HISTORY.TXT"},
275
 {"Docs/cp1251/hot_keys.txt", build_type .. "/docs/HOT_KEYS.WIN.TXT", cp1251_from = build_type .. "/docs/HOT_KEYS.TXT"},
276
 {"Docs/cp1251/install.txt", build_type .. "/docs/INSTALL.WIN.TXT", cp1251_from = build_type .. "/docs/INSTALL.TXT"},
277
 {"Docs/cp1251/readme.txt", build_type .. "/docs/README.WIN.TXT", cp1251_from = build_type .. "/docs/README.TXT"},
278
 {"Docs/cp1251/sysfuncr.txt", build_type .. "/docs/SYSFUNCR.WIN.TXT", cp1251_from = PROGS .. "/system/docpack/trunk/SYSFUNCR.TXT"},
5471 leency 279
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_dos.txt"},
5098 clevermous 280
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme_win.txt"},
281
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/install.txt"},
282
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/readme.txt"},
7650 leency 283
 {"kolibrios/games/ataka", "common/games/ataka/ataka_ru"},
5334 Anton_K 284
 {"kolibrios/games/Dungeons/Resources/Textures/Environment/", PROGS .. "/games/Dungeons/Resources/Textures/Environment/*"},
285
 {"kolibrios/games/Dungeons/Resources/Textures/Objects/", PROGS .. "/games/Dungeons/Resources/Textures/Objects/*"},
286
 {"kolibrios/games/Dungeons/Resources/Textures/HUD/", PROGS .. "/games/Dungeons/Resources/Textures/HUD/*"},
287
 {"kolibrios/games/Dungeons/Resources/Textures/", PROGS .. "/games/Dungeons/Resources/Textures/Licenses.txt"},
288
 {"kolibrios/games/Dungeons/", PROGS .. "/games/Dungeons/readme_ru.txt"},
7928 leency 289
 {"kolibrios/games/sstartrek/SStarTrek", "common/games/sstartrek/SStarTrek_ru"},
7410 0CodErr 290
 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/whowtbam"},
291
 {"kolibrios/games/WHOWTBAM/", build_type .. "/games/appdata.dat"},
7569 leency 292
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_rus.txt"},
293
 {"kolibrios/res/guide/", build_type .. "/docs/guide/*"},
5098 clevermous 294
}) else tup.append_table(extra_files, {
295
 {"Docs/config.txt", build_type .. "/docs/CONFIG.TXT"},
296
 {"Docs/copying.txt", build_type .. "/docs/COPYING.TXT"},
297
 {"Docs/hot_keys.txt", build_type .. "/docs/HOT_KEYS.TXT"},
298
 {"Docs/install.txt", build_type .. "/docs/INSTALL.TXT"},
299
 {"Docs/readme.txt", build_type .. "/docs/README.TXT"},
300
 {"Docs/sysfuncs.txt", PROGS .. "/system/docpack/trunk/SYSFUNCS.TXT"},
301
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/readme.txt"},
302
 {"HD_Load/mtldr/install.txt", PROGS .. "/hd_load/mtldr/install_eng.txt"},
303
 {"HD_Load/USB_Boot/readme.txt", PROGS .. "/hd_load/usb_boot/readme_eng.txt"},
7650 leency 304
 {"kolibrios/games/ataka", "common/games/ataka/ataka_en"},
7928 leency 305
 {"kolibrios/games/sstartrek/SStarTrek", "common/games/sstartrek/SStarTrek_en"},
5098 clevermous 306
 {"kolibrios/media/zsea/zsea_keys.txt", PROGS .. "/media/zsea/Docs/zSea_keys_eng.txt"},
307
}) end
308
--[[
309
Files to be included in distribution kit outside of kolibri.img, but not kolibri.iso.
310
Same syntax as extra_files.
311
]]--
312
if build_type == "rus" then
313
distr_extra_files = {
314
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos_distr.txt"},
315
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt", cp1251_from = build_type .. "/distr_data/readme_dos_distr.txt"},
316
}
317
else
318
distr_extra_files = {
319
 {"/readme.txt", build_type .. "/distr_data/readme_distr.txt"},
320
}
321
end
322
--[[
323
Files to be included in kolibri.iso outside of kolibri.img, but not distribution kit.
324
Same syntax as extra_files.
325
]]--
326
if build_type == "rus" then
327
iso_extra_files = {
328
 {"/readme_dos.txt", build_type .. "/distr_data/readme_dos.txt"},
329
 {"/readme.txt", build_type .. "/distr_data/readme.txt", cp1251_from = build_type .. "/distr_data/readme_dos.txt"},
330
}
331
else
332
iso_extra_files = {
333
 {"/readme.txt", build_type .. "/distr_data/readme.txt"},
334
}
335
end
336
 
337
-- Programs that require FASM to compile.
338
if tup.getconfig('NO_FASM') ~= 'full' then
339
tup.append_table(img_files, {
340
 {"KERNEL.MNT", "../kernel/trunk/kernel.mnt"},
7014 leency 341
 {"@DOCKY", PROGS .. "/system/docky/trunk/docky"},
7390 theonlymir 342
 {"@HOTANGLES", PROGS .. "/other/ha/HOTANGLES"},
7014 leency 343
 {"@ICON", PROGS .. "/system/icon_new/icon"},
5098 clevermous 344
 {"@MENU", PROGS .. "/system/menu/trunk/menu"},
7014 leency 345
 {"@NOTIFY", PROGS .. "/system/notify3/notify"},
346
 {"@OPEN", PROGS .. "/system/open/open"},
5454 leency 347
 {"@TASKBAR", PROGS .. "/system/taskbar/trunk/TASKBAR"},
7658 leency 348
 {"@SS", PROGS .. "/system/scrsaver/scrsaver"},
7014 leency 349
 {"@VOLUME", PROGS .. "/media/volume/volume"},
7390 theonlymir 350
 {"HACONFIG", PROGS .. "/other/ha/HACONFIG"},
7647 leency 351
 {"APM", PROGS .. "/system/apm/apm"},
5098 clevermous 352
 {"ASCIIVJU", PROGS .. "/develop/asciivju/trunk/asciivju"},
353
 {"CALC", PROGS .. "/other/calc/trunk/calc"},
354
 {"CALENDAR", PROGS .. "/system/calendar/trunk/calendar"},
355
 {"COLRDIAL", PROGS .. "/system/colrdial/color_dialog"},
7160 leency 356
 {"CROPFLAT", PROGS .. "/system/cropflat/cropflat"},
5098 clevermous 357
 {"CPU", PROGS .. "/system/cpu/trunk/cpu"},
7900 leency 358
 {"CPUID", PROGS .. "/testing/cpuid/trunk/CPUID"},
7160 leency 359
 {"DOCPACK", PROGS .. "/system/docpack/trunk/docpack"},
6207 leency 360
 {"DEFAULT.SKN", "../skins/Leency/Shkvorka/Shkvorka.skn"},
7899 leency 361
 {"DISPTEST", PROGS .. "/testing/disptest/trunk/disptest"},
5098 clevermous 362
 {"END", PROGS .. "/system/end/light/end"},
7160 leency 363
 {"ESKIN", PROGS .. "/system/eskin/trunk/eskin"},
7899 leency 364
 {"FSPEED", PROGS .. "/testing/fspeed/fspeed"},
5098 clevermous 365
 {"GMON", PROGS .. "/system/gmon/gmon"},
366
 {"HDD_INFO", PROGS .. "/system/hdd_info/trunk/hdd_info"},
7899 leency 367
 {"KBD", PROGS .. "/testing/kbd/trunk/kbd"},
5098 clevermous 368
 {"KPACK", PROGS .. "/other/kpack/trunk/kpack"},
369
 {"LAUNCHER", PROGS .. "/system/launcher/trunk/launcher"},
7160 leency 370
 {"LOADDRV", PROGS .. "/system/loaddrv/loaddrv"},
5098 clevermous 371
 {"MAGNIFY", PROGS .. "/demos/magnify/trunk/magnify"},
7899 leency 372
 {"MGB", PROGS .. "/testing/mgb/trunk/mgb"},
5098 clevermous 373
 {"MOUSEMUL", PROGS .. "/system/mousemul/trunk/mousemul"},
374
 {"MADMOUSE", PROGS .. "/other/madmouse/madmouse"},
375
 {"MYKEY", PROGS .. "/system/MyKey/trunk/MyKey"},
7900 leency 376
 {"PCIDEV", PROGS .. "/testing/pcidev/trunk/PCIDEV"},
5098 clevermous 377
 {"RDSAVE", PROGS .. "/system/rdsave/trunk/rdsave"},
378
 {"RTFREAD", PROGS .. "/other/rtfread/trunk/rtfread"},
379
 {"SEARCHAP", PROGS .. "/system/searchap/searchap"},
380
 {"SCRSHOOT", PROGS .. "/media/scrshoot/scrshoot"},
381
 {"SETUP", PROGS .. "/system/setup/trunk/setup"},
7160 leency 382
 {"SKINCFG", PROGS .. "/system/skincfg/trunk/skincfg"},
383
 {"TERMINAL", PROGS .. "/system/terminal/terminal"},
7900 leency 384
 {"TEST", PROGS .. "/testing/protection/trunk/test"},
5098 clevermous 385
 {"TINYPAD", PROGS .. "/develop/tinypad/trunk/tinypad"},
7160 leency 386
 {"UNZ", PROGS .. "/fs/unz/unz"},
5098 clevermous 387
 {"ZKEY", PROGS .. "/system/zkey/trunk/ZKEY"},
388
 {"3D/3DWAV", PROGS .. "/demos/3dwav/trunk/3dwav"},
389
 {"3D/CROWNSCR", PROGS .. "/demos/crownscr/trunk/crownscr"},
7350 leency 390
 {"3D/3DCUBE2", PROGS .. "/demos/3dcube2/trunk/3DCUBE2"},
5098 clevermous 391
 {"3D/FREE3D04", PROGS .. "/demos/free3d04/trunk/free3d04"},
6736 leency 392
 {"3D/GEARS", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/gears"},
6387 leency 393
 {"3D/RAY", PROGS .. "/demos/ray/ray"},
5098 clevermous 394
 {"3D/VIEW3DS", PROGS .. "/demos/3DS/VIEW3DS"},
395
 {"DEMOS/BCDCLK", PROGS .. "/demos/bcdclk/trunk/bcdclk"},
396
 {"DEMOS/CIRCLE", PROGS .. "/develop/examples/circle/trunk/circle"},
397
 {"DEMOS/COLORREF", PROGS .. "/demos/colorref/trunk/colorref"},
398
 {"DEMOS/CSLIDE", PROGS .. "/demos/cslide/trunk/cslide"},
399
 {"DEMOS/EYES", PROGS .. "/demos/eyes/trunk/eyes"},
400
 {"DEMOS/FIREWORK", PROGS .. "/demos/firework/trunk/firework"},
401
 {"DEMOS/MOVBACK", PROGS .. "/demos/movback/trunk/movback"},
402
 {"DEMOS/PLASMA", PROGS .. "/demos/plasma/trunk/plasma"},
7606 leency 403
 {"DEMOS/SPIRAL", PROGS .. "/demos/spiral/spiral"},
5098 clevermous 404
 {"DEMOS/TINYFRAC", PROGS .. "/demos/tinyfrac/trunk/tinyfrac"},
405
 {"DEMOS/TRANTEST", PROGS .. "/demos/trantest/trunk/trantest"},
406
 {"DEMOS/TUBE", PROGS .. "/demos/tube/trunk/tube"},
407
 {"DEMOS/UNVWATER", PROGS .. "/demos/unvwater/trunk/unvwater"},
408
 {"DEMOS/USE_MB", PROGS .. "/demos/use_mb/use_mb"},
409
 {"DEMOS/WEB", PROGS .. "/demos/web/trunk/web"},
410
 {"DEVELOP/BOARD", PROGS .. "/system/board/trunk/board"},
411
 {"DEVELOP/cObj", PROGS .. "/develop/cObj/trunk/cObj"},
7839 leency 412
 {"DEVELOP/FASM", PROGS .. "/develop/fasm/1.73/fasm"},
5098 clevermous 413
 {"DEVELOP/H2D2B", PROGS .. "/develop/h2d2b/trunk/h2d2b"},
414
 {"DEVELOP/HEED", PROGS .. "/develop/heed/trunk/heed"},
415
 {"DEVELOP/KEYASCII", PROGS .. "/develop/keyascii/trunk/keyascii"},
416
 {"DEVELOP/MTDBG", PROGS .. "/develop/mtdbg/mtdbg"},
417
 {"DEVELOP/SCANCODE", PROGS .. "/develop/scancode/trunk/scancode"},
418
 {"DEVELOP/T_EDIT", PROGS .. "/other/t_edit/t_edit"},
6699 clevermous 419
 {"DEVELOP/test_gets", PROGS .. "/develop/libraries/console_coff/examples/test_gets"},
5098 clevermous 420
 {"DEVELOP/THREAD", PROGS .. "/develop/examples/thread/trunk/thread"},
421
 {"DEVELOP/INFO/ASM.SYN", PROGS .. "/other/t_edit/info/asm.syn"},
7631 leency 422
 {"DEVELOP/INFO/CPP_CLA.SYN", PROGS .. "/other/t_edit/info/cpp_kol_cla.syn"},
423
 {"DEVELOP/INFO/CPP_DAR.SYN", PROGS .. "/other/t_edit/info/cpp_kol_dar.syn"},
424
 {"DEVELOP/INFO/CPP_DEF.SYN", PROGS .. "/other/t_edit/info/cpp_kol_def.syn"},
5098 clevermous 425
 {"DEVELOP/INFO/DEFAULT.SYN", PROGS .. "/other/t_edit/info/default.syn"},
426
 {"DEVELOP/INFO/HTML.SYN", PROGS .. "/other/t_edit/info/html.syn"},
7631 leency 427
 {"DEVELOP/INFO/INI.SYN", PROGS .. "/other/t_edit/info/ini_files.syn"},
5098 clevermous 428
 {"File Managers/KFAR", PROGS .. "/fs/kfar/trunk/kfar"},
429
 {"File Managers/KFM", PROGS .. "/fs/kfm/trunk/kfm"},
430
 {"File Managers/OPENDIAL", PROGS .. "/fs/opendial/opendial"},
431
 {"GAMES/15", PROGS .. "/games/15/trunk/15"},
432
 {"GAMES/FREECELL", PROGS .. "/games/freecell/freecell"},
433
 {"GAMES/GOMOKU", PROGS .. "/games/gomoku/trunk/gomoku"},
7373 leency 434
 {"GAMES/LIGHTS", PROGS .. "/games/sq_game/trunk/SQ_GAME"},
5098 clevermous 435
 {"GAMES/LINES", PROGS .. "/games/lines/lines"},
436
 {"GAMES/MSQUARE", PROGS .. "/games/MSquare/trunk/MSquare"},
437
 {"GAMES/PIPES", PROGS .. "/games/pipes/pipes"},
438
 {"GAMES/PONG", PROGS .. "/games/pong/trunk/pong"},
439
 {"GAMES/PONG3", PROGS .. "/games/pong3/trunk/pong3"},
440
 {"GAMES/RSQUARE", PROGS .. "/games/rsquare/trunk/rsquare"},
441
 {"GAMES/SNAKE", PROGS .. "/games/snake/trunk/snake"},
442
 {"GAMES/SUDOKU", PROGS .. "/games/sudoku/trunk/sudoku"},
443
 {"GAMES/SW", PROGS .. "/games/sw/trunk/sw"},
444
 {"GAMES/TANKS", PROGS .. "/games/tanks/trunk/tanks"},
445
 {"GAMES/TETRIS", PROGS .. "/games/tetris/trunk/tetris"},
446
 {"LIB/ARCHIVER.OBJ", PROGS .. "/fs/kfar/trunk/kfar_arc/kfar_arc.obj"},
447
 {"LIB/BOX_LIB.OBJ", PROGS .. "/develop/libraries/box_lib/trunk/box_lib.obj"},
448
 {"LIB/BUF2D.OBJ", PROGS .. "/develop/libraries/buf2d/trunk/buf2d.obj"},
6699 clevermous 449
 {"LIB/CONSOLE.OBJ", PROGS .. "/develop/libraries/console_coff/console.obj"},
6737 leency 450
 {"LIB/CNV_PNG.OBJ", PROGS .. "/media/zsea/plugins/png/cnv_png.obj"},
451
 {"LIB/HTTP.OBJ", PROGS .. "/develop/libraries/http/http.obj"},
5098 clevermous 452
 {"LIB/LIBGFX.OBJ", PROGS .. "/develop/libraries/libs-dev/libgfx/libgfx.obj"},
453
 {"LIB/LIBIMG.OBJ", PROGS .. "/develop/libraries/libs-dev/libimg/libimg.obj"},
454
 {"LIB/LIBINI.OBJ", PROGS .. "/develop/libraries/libs-dev/libini/libini.obj"},
455
 {"LIB/LIBIO.OBJ", PROGS .. "/develop/libraries/libs-dev/libio/libio.obj"},
456
 {"LIB/MSGBOX.OBJ", PROGS .. "/develop/libraries/msgbox/msgbox.obj"},
457
 {"LIB/NETWORK.OBJ", PROGS .. "/develop/libraries/network/network.obj"},
6737 leency 458
 {"LIB/PROC_LIB.OBJ", PROGS .. "/develop/libraries/proc_lib/trunk/proc_lib.obj"},
6308 pathoswith 459
 {"LIB/RASTERWORKS.OBJ", PROGS .. "/develop/libraries/fontRasterWorks(unicode)/RasterWorks.obj"},
5098 clevermous 460
 {"LIB/SORT.OBJ", PROGS .. "/develop/libraries/sorter/sort.obj"},
6737 leency 461
 {"LIB/TINYGL.OBJ", PROGS .. "/develop/libraries/TinyGL/asm_fork/tinygl.obj"},
5098 clevermous 462
 {"MEDIA/ANIMAGE", PROGS .. "/media/animage/trunk/animage"},
463
 {"MEDIA/KIV", PROGS .. "/media/kiv/trunk/kiv"},
464
 {"MEDIA/LISTPLAY", PROGS .. "/media/listplay/trunk/listplay"},
465
 {"MEDIA/MIDAMP", PROGS .. "/media/midamp/trunk/midamp"},
7484 leency 466
 {"MEDIA/MP3INFO", PROGS .. "/media/mp3info/mp3info"},
5098 clevermous 467
 {"MEDIA/PALITRA", PROGS .. "/media/palitra/trunk/palitra"},
7650 leency 468
 {"MEDIA/PIANO", PROGS .. "/media/piano/piano"},
5098 clevermous 469
 {"MEDIA/STARTMUS", PROGS .. "/media/startmus/trunk/STARTMUS"},
6029 hidnplayr 470
 {"NETWORK/PING", PROGS .. "/network/ping/ping"},
5098 clevermous 471
 {"NETWORK/NETCFG", PROGS .. "/network/netcfg/netcfg"},
472
 {"NETWORK/NETSTAT", PROGS .. "/network/netstat/netstat"},
7058 ashmew2 473
 {"NETWORK/NSINSTALL", PROGS .. "/network/netsurf/nsinstall"},
5098 clevermous 474
 {"NETWORK/NSLOOKUP", PROGS .. "/network/nslookup/nslookup"},
475
 {"NETWORK/PASTA", PROGS .. "/network/pasta/pasta"},
476
 {"NETWORK/SYNERGYC", PROGS .. "/network/synergyc/synergyc"},
7640 leency 477
 {"NETWORK/SNTP", PROGS .. "/network/sntp/sntp"},
5098 clevermous 478
 {"NETWORK/TELNET", PROGS .. "/network/telnet/telnet"},
5495 hidnplayr 479
 {"NETWORK/@ZEROCONF", PROGS .. "/network/zeroconf/zeroconf"},
5098 clevermous 480
 {"NETWORK/FTPC", PROGS .. "/network/ftpc/ftpc"},
481
 {"NETWORK/FTPD", PROGS .. "/network/ftpd/ftpd"},
482
 {"NETWORK/TFTPC", PROGS .. "/network/tftpc/tftpc"},
483
 {"NETWORK/IRCC", PROGS .. "/network/ircc/ircc"},
484
 {"NETWORK/DOWNLOADER", PROGS .. "/network/downloader/downloader"},
5869 hidnplayr 485
 {"NETWORK/VNCC", PROGS .. "/network/vncc/vncc"},
5098 clevermous 486
 {"DRIVERS/VIDINTEL.SYS", "../drivers/video/vidintel.sys"},
487
 {"DRIVERS/3C59X.SYS", "../drivers/ethernet/3c59x.sys"},
7811 leency 488
 {"DRIVERS/AR81XX.SYS", "../drivers/ethernet/ar81xx.sys"},
5098 clevermous 489
 {"DRIVERS/DEC21X4X.SYS", "../drivers/ethernet/dec21x4x.sys"},
490
 {"DRIVERS/FORCEDETH.SYS", "../drivers/ethernet/forcedeth.sys"},
491
 {"DRIVERS/I8254X.SYS", "../drivers/ethernet/i8254x.sys"},
492
 {"DRIVERS/I8255X.SYS", "../drivers/ethernet/i8255x.sys"},
493
 {"DRIVERS/MTD80X.SYS", "../drivers/ethernet/mtd80x.sys"},
494
 {"DRIVERS/PCNET32.SYS", "../drivers/ethernet/pcnet32.sys"},
495
 {"DRIVERS/R6040.SYS", "../drivers/ethernet/R6040.sys"},
496
 {"DRIVERS/RHINE.SYS", "../drivers/ethernet/rhine.sys"},
497
 {"DRIVERS/RTL8029.SYS", "../drivers/ethernet/RTL8029.sys"},
498
 {"DRIVERS/RTL8139.SYS", "../drivers/ethernet/RTL8139.sys"},
499
 {"DRIVERS/RTL8169.SYS", "../drivers/ethernet/RTL8169.sys"},
500
 {"DRIVERS/SIS900.SYS", "../drivers/ethernet/sis900.sys"},
501
 {"DRIVERS/UHCI.SYS", "../drivers/usb/uhci.sys"},
502
 {"DRIVERS/OHCI.SYS", "../drivers/usb/ohci.sys"},
503
 {"DRIVERS/EHCI.SYS", "../drivers/usb/ehci.sys"},
504
 {"DRIVERS/USBHID.SYS", "../drivers/usb/usbhid/usbhid.sys"},
505
 {"DRIVERS/USBSTOR.SYS", "../drivers/usb/usbstor.sys"},
506
 {"DRIVERS/RDC.SYS", "../drivers/video/rdc.sys"},
507
 {"DRIVERS/COMMOUSE.SYS", "../drivers/mouse/commouse.sys"},
508
 {"DRIVERS/PS2MOUSE.SYS", "../drivers/mouse/ps2mouse4d/trunk/ps2mouse.sys"},
509
 {"DRIVERS/TMPDISK.SYS", "../drivers/disk/tmpdisk.sys"},
510
 {"DRIVERS/intel_hda.sys", "../drivers/audio/intel_hda/intel_hda.sys"},
511
 {"DRIVERS/SB16.SYS", "../drivers/audio/sb16/sb16.sys"},
512
 {"DRIVERS/SOUND.SYS", "../drivers/audio/sound.sys"},
513
 {"DRIVERS/INFINITY.SYS", "../drivers/audio/infinity/infinity.sys"},
514
 {"DRIVERS/INTELAC97.SYS", "../drivers/audio/intelac97.sys"},
515
 {"DRIVERS/EMU10K1X.SYS", "../drivers/audio/emu10k1x.sys"},
516
 {"DRIVERS/FM801.SYS", "../drivers/audio/fm801.sys"},
517
 {"DRIVERS/VT823X.SYS", "../drivers/audio/vt823x.sys"},
518
 {"DRIVERS/SIS.SYS", "../drivers/audio/sis.sys"},
519
})
520
tup.append_table(extra_files, {
521
 {"HD_Load/9x2klbr/", PROGS .. "/hd_load/9x2klbr/9x2klbr.exe"},
522
 {"HD_Load/MeOSLoad/", PROGS .. "/hd_load/meosload/MeOSload.com"},
523
 {"HD_Load/mtldr/", PROGS .. "/hd_load/mtldr/mtldr"},
524
 {"HD_Load/", PROGS .. "/hd_load/mtldr_install/mtldr_install.exe"},
525
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/BOOT_F32.BIN"},
526
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/MTLD_F32"},
527
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/inst.exe"},
528
 {"HD_Load/USB_Boot/", PROGS .. "/hd_load/usb_boot/setmbr.exe"},
529
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/MeOSload.com"},
530
 {"HD_Load/USB_boot_old/", PROGS .. "/hd_load/usb_boot_old/enable.exe"},
7458 leency 531
 {"kolibrios/3D/3dsheart", PROGS .. "/demos/3dsheart/trunk/3dsheart"},
7931 leency 532
 {"kolibrios/3D/flatwav", PROGS .. "/demos/flatwav/trunk/flatwav"},
7222 leency 533
 {"kolibrios/3D/info3ds/INFO3DS", PROGS .. "/develop/info3ds/info3ds"},
534
 {"kolibrios/3D/info3ds/INFO3DS_U", PROGS .. "/develop/info3ds/info3ds_u"},
7458 leency 535
 {"kolibrios/3D/mos3de", PROGS .. "/demos/mos3de/mos3de"},
7222 leency 536
 {"kolibrios/3D/voxel_editor/VOXEL_EDITOR", PROGS .. "/media/voxel_editor/trunk/voxel_editor"},
537
 {"kolibrios/3D/voxel_utilites/VOX_CREATOR" , PROGS .. "/media/voxel_editor/utilites/vox_creator"},
538
 {"kolibrios/3D/voxel_utilites/VOX_MOVER" , PROGS .. "/media/voxel_editor/utilites/vox_mover"},
539
 {"kolibrios/3D/voxel_utilites/VOX_TGL" , PROGS .. "/media/voxel_editor/utilites/vox_tgl"},
540
 {"kolibrios/3D/textures1", PROGS .. "/develop/libraries/TinyGL/asm_fork/examples/textures1"},
6991 leency 541
 {"kolibrios/demos/buddhabrot", PROGS .. "/demos/buddhabrot/trunk/buddhabrot"},
7525 leency 542
 {"kolibrios/demos/life3", PROGS .. "/games/life3/trunk/life3"},
6991 leency 543
 {"kolibrios/demos/qjulia", PROGS .. "/demos/qjulia/trunk/qjulia"},
544
 {"kolibrios/games/Almaz", PROGS .. "/games/almaz/almaz"},
6033 leency 545
 {"kolibrios/games/arcanii", PROGS .. "/games/arcanii/trunk/arcanii"},
6179 leency 546
 {"kolibrios/games/bomber/bomber", PROGS .. "/games/bomber/bomber"},
6180 leency 547
 {"kolibrios/games/bomber/bomberdata.bin", PROGS .. "/games/bomber/sounds/bomberdata.bin"},
5335 yogev_ezra 548
 {"kolibrios/games/codemaster/binary_master", PROGS .. "/games/codemaster/binary_master"},
549
 {"kolibrios/games/codemaster/hang_programmer", PROGS .. "/games/codemaster/hang_programmer"},
5379 serge 550
 {"kolibrios/games/codemaster/kolibri_puzzle", PROGS .. "/games/codemaster/kolibri_puzzle"},
6991 leency 551
 {"kolibrios/games/megamaze", PROGS .. "/games/megamaze/trunk/megamaze"},
5467 leency 552
 {"kolibrios/games/invaders", PROGS .. "/games/invaders/invaders"},
6991 leency 553
 {"kolibrios/games/phenix", PROGS .. "/games/phenix/trunk/phenix"},
554
 {"kolibrios/games/soko/soko", PROGS .. "/games/soko/trunk/SOKO"},
5098 clevermous 555
 {"kolibrios/media/zsea/zsea", PROGS .. "/media/zsea/zSea"},
556
 {"kolibrios/media/zsea/plugins/cnv_bmp.obj", PROGS .. "/media/zsea/plugins/bmp/cnv_bmp.obj"},
557
 {"kolibrios/media/zsea/plugins/cnv_gif.obj", PROGS .. "/media/zsea/plugins/gif/cnv_gif.obj"},
558
 {"kolibrios/media/zsea/plugins/cnv_jpeg.obj", PROGS .. "/media/zsea/plugins/jpeg/cnv_jpeg.obj"},
559
 {"kolibrios/media/zsea/plugins/convert.obj", PROGS .. "/media/zsea/plugins/convert/convert.obj"},
560
 {"kolibrios/media/zsea/plugins/rotate.obj", PROGS .. "/media/zsea/plugins/rotate/rotate.obj"},
561
 {"kolibrios/media/zsea/plugins/scaling.obj", PROGS .. "/media/zsea/plugins/scaling/scaling.obj"},
6991 leency 562
 {"kolibrios/utils/calcplus", PROGS .. "/other/calcplus/calcplus"},
5098 clevermous 563
})
564
-- For russian build, add russian-only programs.
565
if build_type == "rus" then tup.append_table(img_files, {
566
 {"PERIOD", PROGS .. "/other/period/trunk/period"},
7660 leency 567
 {"GAMES/KLAVISHA", PROGS .. "/games/klavisha/trunk/klavisha"},
6699 clevermous 568
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_rus"},
5098 clevermous 569
}) else tup.append_table(img_files, {
6699 clevermous 570
 {"DEVELOP/TESTCON2", PROGS .. "/develop/libraries/console_coff/examples/testcon2_eng"},
5098 clevermous 571
}) end
572
 
5334 Anton_K 573
if build_type == "rus" then tup.append_table(extra_files, {
574
 {"kolibrios/games/Dungeons/Dungeons", PROGS .. "/games/Dungeons/Dungeons"},
575
}) end
576
 
5098 clevermous 577
end -- tup.getconfig('NO_FASM') ~= 'full'
578
 
579
-- Programs that require NASM to compile.
580
if tup.getconfig('NO_NASM') ~= 'full' then
581
tup.append_table(img_files, {
6952 leency 582
 {"LOD", PROGS .. "/fs/lod/lod"},
583
 {"TINFO", PROGS .. "/system/tinfo/tinfo"},
5098 clevermous 584
 {"DEMOS/ACLOCK", PROGS .. "/demos/aclock/trunk/aclock"},
585
 {"DEMOS/TIMER", PROGS .. "/other/Timer/timer"},
6952 leency 586
 {"DEVELOP/MSTATE", PROGS .. "/develop/mstate/mstate"},
5098 clevermous 587
 {"GAMES/C4", PROGS .. "/games/c4/trunk/c4"},
6998 0CodErr 588
 {"MEDIA/FILLSCR", PROGS .. "/media/FillScr/fillscr"},
5098 clevermous 589
})
7664 dunkaist 590
tup.append_table(extra_files, {
591
 {"kolibrios/develop/utils/GenFiles", PROGS .. "/testing/genfiles/GenFiles"},
592
})
5098 clevermous 593
end -- tup.getconfig('NO_NASM') ~= 'full'
594
 
7081 0CodErr 595
-- Programs that require JWASM to compile.
596
if tup.getconfig('NO_JWASM') ~= 'full' then
597
tup.append_table(img_files, {
598
 {"RUN", PROGS .. "/system/RunOD/1/RUN"},
7492 0CodErr 599
 {"LIB/INPUTBOX.OBJ", PROGS .. "/develop/libraries/InputBox/INPUTBOX.OBJ"},
7081 0CodErr 600
})
601
end -- tup.getconfig('NO_JWASM') ~= 'full'
602
 
5098 clevermous 603
-- Programs that require C-- to compile.
604
if tup.getconfig('NO_CMM') ~= 'full' then
605
tup.append_table(img_files, {
6776 leency 606
 {"APP_PLUS", PROGS .. "/cmm/app_plus/app_plus.com"},
7911 leency 607
 {"EASYSHOT", PROGS .. "/cmm/misc/easyshot.com"},
7370 leency 608
 {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
7630 leency 609
 {"BARSCFG", PROGS .. "/cmm/barscfg/barscfg.com"},
7911 leency 610
 {"SYSPANEL", PROGS .. "/cmm/misc/software_widget.com"},
7370 leency 611
 {"SYSMON", PROGS .. "/cmm/sysmon/sysmon.com"},
7946 leency 612
 {"QUARK", PROGS .. "/cmm/quark/quark.com"},
6776 leency 613
 {"TMPDISK", PROGS .. "/cmm/tmpdisk/tmpdisk.com"},
6569 leency 614
 {"DEVELOP/CLIPVIEW", PROGS .. "/cmm/clipview/clipview.com"},
7778 leency 615
 {"DEVELOP/MENU", PROGS .. "/cmm/menu/menu.com"},
7911 leency 616
 {"DEVELOP/PIPET", PROGS .. "/cmm/misc/pipet.com"},
5098 clevermous 617
 {"File Managers/EOLITE", PROGS .. "/cmm/eolite/Eolite.com"},
7472 leency 618
 {"KF_VIEW", PROGS .. "/cmm/kf_font_viewer/font_viewer.com"},
5098 clevermous 619
 {"GAMES/CLICKS", PROGS .. "/games/clicks/trunk/clicks.com"},
7911 leency 620
 {"GAMES/MBLOCKS", PROGS .. "/cmm/misc/mblocks.com"},
6748 leency 621
 {"DEVELOP/DIFF", PROGS .. "/cmm/diff/diff.com"},
5098 clevermous 622
 {"GAMES/FindNumbers", PROGS .. "/games/FindNumbers/trunk/FindNumbers"},
6776 leency 623
 {"GAMES/FLOOD-IT", PROGS .. "/games/flood-it/trunk/flood-it.com"},
5098 clevermous 624
 {"GAMES/MINE", PROGS .. "/games/mine/trunk/mine"},
7630 leency 625
 {"MEDIA/PIXIE", PROGS .. "/cmm/pixie2/pixie.com"},
7254 leency 626
 {"MEDIA/ICONEDIT", PROGS .. "/cmm/iconedit/iconedit.com"},
5632 leency 627
 {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
5098 clevermous 628
})
6776 leency 629
tup.append_table(extra_files, {
7885 leency 630
 {"kolibrios/develop/utils/codeview", PROGS .. "/cmm/codeview/codeview.com"},
7541 leency 631
 {"kolibrios/drivers/drvinst.kex", PROGS .. "/cmm/drvinst/drvinst.com"},
7542 leency 632
 {"kolibrios/games/pig/pigex", PROGS .. "/cmm/examples/pigex.com"},
6991 leency 633
 {"kolibrios/games/the_bus/the_bus", PROGS .. "/cmm/the_bus/the_bus.com"},
7654 leency 634
 {"kolibrios/KolibriNext/install.kex", PROGS .. "/cmm/installer/install.com"},
7592 leency 635
 {"kolibrios/utils/appearance", PROGS .. "/cmm/appearance/appearance.com"},
7541 leency 636
 {"kolibrios/utils/dicty.kex", PROGS .. "/cmm/dicty/dicty.com"},
637
 {"kolibrios/utils/netcheck", PROGS .. "/cmm/examples/netcheck.com"},
7640 leency 638
 {"kolibrios/utils/notes", PROGS .. "/cmm/notes/notes.com"},
6776 leency 639
})
5098 clevermous 640
end -- tup.getconfig('NO_CMM') ~= 'full'
641
 
642
-- Programs that require MSVC to compile.
643
if tup.getconfig('NO_MSVC') ~= 'full' then
644
tup.append_table(img_files, {
645
 {"GRAPH", PROGS .. "/other/graph/graph"},
646
 {"TABLE", PROGS .. "/other/table/table"},
647
 {"MEDIA/AC97SND", PROGS .. "/media/ac97snd/ac97snd.bin"},
648
 {"GAMES/KOSILKA", PROGS .. "/games/kosilka/kosilka"},
5113 clevermous 649
 {"GAMES/RFORCES", PROGS .. "/games/rforces/trunk/rforces"},
5115 clevermous 650
 {"GAMES/XONIX", PROGS .. "/games/xonix/trunk/xonix"},
5098 clevermous 651
})
5110 clevermous 652
tup.append_table(extra_files, {
5109 clevermous 653
 {"kolibrios/games/fara/fara", PROGS .. "/games/fara/trunk/fara"},
5276 ZblCoder 654
 {"kolibrios/games/LaserTank/LaserTank", PROGS .. "/games/LaserTank/trunk/LaserTank"},
5109 clevermous 655
})
5098 clevermous 656
end -- tup.getconfig('NO_MSVC') ~= 'full'
657
 
658
-- Programs that require GCC to compile.
659
if tup.getconfig('NO_GCC') ~= 'full' then
660
tup.append_table(img_files, {
5123 clevermous 661
 {"GAMES/CHECKERS", PROGS .. "/games/checkers/trunk/checkers"},
5111 clevermous 662
 {"GAMES/REVERSI", PROGS .. "/games/reversi/trunk/reversi"},
5098 clevermous 663
 {"SHELL", PROGS .. "/system/shell/shell"},
664
})
665
tup.append_table(extra_files, {
6736 leency 666
 {"kolibrios/3D/cubeline", PROGS .. "/demos/cubeline/trunk/cubeline"},
5098 clevermous 667
 {"kolibrios/emul/e80/e80", PROGS .. "/emulator/e80/trunk/e80"},
7531 leency 668
 {"kolibrios/games/2048", PROGS .. "/games/2048/2048"},
7528 leency 669
 {"kolibrios/games/donkey", PROGS .. "/games/donkey/donkey"},
7531 leency 670
 {"kolibrios/games/heliothryx", PROGS .. "/games/heliothryx/heliothryx"},
671
 {"kolibrios/games/marblematch3", PROGS .. "/games/marblematch3/marblematch3"},
672
 {"kolibrios/games/nsider", PROGS .. "/games/nsider/nsider"},
5131 clevermous 673
 {"kolibrios/games/quake/", "common/games/quake/*"}, -- not really gcc, but no sense without sdlquake
674
 {"kolibrios/games/quake/", "../contrib/other/sdlquake-1.0.9/sdlquake"},
5098 clevermous 675
})
5327 igevorse 676
-- For russian build, add russian-only programs.
5329 igevorse 677
if build_type == "rus" then tup.append_table(extra_files, {
7531 leency 678
 {"kolibrios/games/21days", PROGS .. "/games/21days/21days"},
5328 igevorse 679
}) end
5098 clevermous 680
end -- tup.getconfig('NO_GCC') ~= 'full'
681
 
682
-- Skins.
683
tup.include("../skins/skinlist.lua")
684
 
685
--[================================[ CODE ]================================]--
686
-- expand extra_files and similar
687
function expand_extra_files(files)
688
  local result = {}
689
  for i,v in ipairs(files) do
690
    if string.match(v[2], "%*")
691
    then
692
      local g = tup.glob(v[2])
693
      for j,x in ipairs(g) do
5132 clevermous 694
        table.insert(result, {v[1], x, group=v.group})
5098 clevermous 695
      end
696
    else
697
      if v.cp1251_from then
698
        tup.definerule{inputs = {v.cp1251_from}, command = 'iconv -f cp866 -t cp1251 "%f" > "%o"', outputs = {v[2]}}
699
      end
5132 clevermous 700
      table.insert(result, {v[1], v[2], group=v.group})
5098 clevermous 701
    end
702
  end
703
  return result
704
end
705
 
706
-- append skins to extra_files
707
for i,v in ipairs(skinlist) do
6094 leency 708
  table.insert(extra_files, {"kolibrios/res/skins/", "../skins/" .. v})
5098 clevermous 709
end
710
 
711
-- prepare distr_extra_files and iso_extra_files: expand and append common part
712
extra_files = expand_extra_files(extra_files)
713
distr_extra_files = expand_extra_files(distr_extra_files)
714
iso_extra_files = expand_extra_files(iso_extra_files)
715
tup.append_table(distr_extra_files, extra_files)
716
tup.append_table(iso_extra_files, extra_files)
717
 
718
-- generate list of directories to be created inside kolibri.img
719
img_dirs = {}
720
input_deps = {}
721
for i,v in ipairs(img_files) do
722
  img_file = v[1]
723
  local_file = v[2]
724
 
725
  slash_pos = 0
726
  while true do
727
    slash_pos = string.find(img_file, '/', slash_pos + 1)
728
    if not slash_pos then break end
729
    table.insert(img_dirs, string.sub(img_file, 1, slash_pos - 1))
730
  end
731
 
732
  -- tup does not want to see hidden files as dependencies
733
  if not string.match(local_file, "/%.") then
5132 clevermous 734
    table.insert(input_deps, v.group or local_file)
5098 clevermous 735
  end
736
end
737
 
738
-- create empty 1.44M file
5118 clevermous 739
make_img_command = '^ MKIMG kolibri.img^ ' -- for tup: don't write full command to logs
740
make_img_command = make_img_command .. "dd if=/dev/zero of=kolibri.img count=2880 bs=512 2>&1"
5098 clevermous 741
-- format it as a standard 1.44M floppy
742
make_img_command = make_img_command .. " && mformat -f 1440 -i kolibri.img ::"
743
-- copy bootloader
744
if tup.getconfig("NO_FASM") ~= "full" then
745
bootloader = "../kernel/trunk/bootloader/boot_fat12.bin"
746
make_img_command = make_img_command .. " && dd if=" .. bootloader .. " of=kolibri.img count=1 bs=512 conv=notrunc 2>&1"
747
table.insert(input_deps, bootloader)
748
end
749
-- make folders
750
table.sort(img_dirs)
751
for i,v in ipairs(img_dirs) do
752
  if v ~= img_dirs[i-1] then
753
    make_img_command = make_img_command .. ' && mmd -i kolibri.img "::' .. v .. '"'
754
  end
755
end
756
-- copy files
757
for i,v in ipairs(img_files) do
758
  local_file = v[2]
759
  if v[1] == "KERNEL.MNT" and tup.getconfig("INSERT_REVISION_ID") ~= ""
760
  then
761
    -- for kernel.mnt, insert autobuild revision identifier
762
    -- from .revision to .kernel.mnt
763
    -- note that .revision and .kernel.mnt must begin with .
764
    -- to prevent tup from tracking them
765
    if build_type == "rus"
766
    then str='$(LANG=ru_RU.utf8 date -u +"[автосборка %d %b %Y %R, r$(cat .revision)]"|iconv -f utf8 -t cp866)'
767
    else str='$(date -u +"[auto-build %d %b %Y %R, r$(cat .revision)]")'
768
    end
769
    str = string.gsub(str, "%$", "\\$") -- escape $ as \$
770
    str = string.gsub(str, "%%", "%%%%") -- escape % as %%
771
    make_img_command = make_img_command .. " && cp " .. local_file .. " .kernel.mnt"
772
    make_img_command = make_img_command .. " && str=" .. str
773
    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'
774
    local_file = ".kernel.mnt"
775
  end
776
  make_img_command = make_img_command .. ' && mcopy -moi kolibri.img "' .. local_file .. '" "::' .. v[1] .. '"'
777
end
778
 
779
-- generate tup rule for kolibri.img
780
tup.definerule{inputs = input_deps, command = make_img_command, outputs = {"kolibri.img"}}
7131 dunkaist 781
tup.definerule{inputs = {"../kernel/trunk/boot/uefi4kos.asm", "kolibri.img", "../kernel/trunk/kernel.bin"}, command = "fasm ../kernel/trunk/boot/uefi4kos.asm %o", outputs = {"kolibri.efi"}}
5098 clevermous 782
 
783
-- generate command and dependencies for mkisofs
784
input_deps = {"kolibri.img"}
785
iso_files_list = ""
786
for i,v in ipairs(iso_extra_files) do
787
  iso_files_list = iso_files_list .. ' "' .. v[1] .. '=' .. v[2] .. '"'
5132 clevermous 788
  table.insert(input_deps, v.group or v[2])
5098 clevermous 789
end
790
 
791
-- generate tup rule for kolibri.iso
792
if tup.getconfig("INSERT_REVISION_ID") ~= ""
793
then volume_id = "KolibriOS r`cat .revision`"
794
else volume_id = "KolibriOS"
795
end
796
tup.definerule{inputs = input_deps, command =
5118 clevermous 797
  '^ MKISOFS kolibri.iso^ ' .. -- for tup: don't write full command to logs
5098 clevermous 798
  'mkisofs -U -J -pad -b kolibri.img -c boot.catalog -hide-joliet boot.catalog -graft-points ' ..
799
  '-A "KolibriOS AutoBuilder" -p "CleverMouse" -publisher "KolibriOS Team" -V "' .. volume_id .. '" -sysid "KOLIBRI" ' ..
800
  '-iso-level 3 -o kolibri.iso kolibri.img' .. iso_files_list .. ' 2>&1',
801
  outputs = {"kolibri.iso"}}
802
 
803
-- generate command and dependencies for distribution kit
5104 clevermous 804
cp = 'cp "%f" "%o"'
5102 clevermous 805
tup.definerule{inputs = {"kolibri.img"}, command = cp, outputs = {"distribution_kit/kolibri.img"}}
5098 clevermous 806
for i,v in ipairs(distr_extra_files) do
5132 clevermous 807
  cmd = cp:gsub("%%f", v[2]) -- input can be a group, we can't rely on tup's expansion of %f in this case
5098 clevermous 808
  if string.sub(v[1], -1) == "/"
5132 clevermous 809
  then tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1] .. tup.file(v[2])}}
810
  else tup.definerule{inputs = {v.group or v[2]}, command = cmd, outputs = {"distribution_kit/" .. v[1]}}
5098 clevermous 811
  end
812
end