The makesis
example projects demonstrate how .sis
installation files are built using the makesis
tool. They are provided with all SDKs which supply the EPOC Tools and Utilities documentation, see directory \epoc32ex\adk\
.
The examples are primarily concerned with the configuration of .pkg
files, see Package file format, as they define the components which are bundled into the .sis
file, and hence the files which are ultimately installed on the target EPOC system.
The example applications are trivial, and are included purely for the demonstration of makesis.
The minimal application ikhello
is used to demonstrate the most basic makesis
functionality. The application prints Hello World! on the screen in English. It is comprised of two files ikhello.app
and ikhello.rsc
, located in the directory \epoc32ex\adk\
, which must be installed into \system\apps\ikhello\
on the target machine. Rather than manually creating this directory and copying the files into it, a .sis
file may be produced to automate the installation procedure.
The package file ikhello.pkg
(see Package file format) defines the source files to be bundled in the .sis
file, and the folder location to which the files are to be copied.
#{"Minimal application"},(0x01000508),1,0,0 ; Only two files to install for the minimal application "\epoc32ex\adk\ikhello.app"-"!:\system\apps\ikhello\ikhello.app" "\epoc32ex\adk\ikhello.rsc"-"!:\system\apps\ikhello\ikhello.rsc"
The first line is the installation header, which defines the applications name, Minimal application, UID3 (0x01000508), major and minor build numbers (1 , 0) and the variant number (0). The second line is a comment. The final two lines specify the files which should be installed and their destination on the target machine.
AppName 3.1
specifies a major build 3, and minor build 1.)makesis
, and may be omitted. Eventually EPOC applications may require a variant number, to distinguish between application builds for different target platforms..pkg
file by specifying ! as the destination drive.To create the installation file ikhello.sis
, invoke makesis
on the package file:
makesis ikhello.pkg
ikhello.sis
can then be installed on the target machine using one of the methods described in the topic Installing EPOC applications. After installation the application may be run by selecting the ikhello
icon on the extras bar.
This example demonstrates how to configure a .pkg
file for installing applications supporting more than one language. It uses the same application as in the previous example, but prints Hello World in English, French or Italian, depending on the language selected by the user during installation.
EPOC supports different languages through the use of resource files, see Resource compiler). Each resource file contains, in a different language, the text used by the application (e.g. in menu options). The .sis
file bundles the resource files belonging to all languages, but EPOC Connect transfers only the file supporting the language selected.
The following diagrams show the process more clearly. The ikhello
application file can link to one of three resource files produced by the resource compiler. When makesis
is invoked with the appropriate package file, ikhellom.pkg
, all four files are bundled into the ikhellom.sis
file.
During installation, EPOC Connect selects the resource file associated with the users preferred language. Since ikhello.app
can only link to a file with an extension .rsc
, the files extension is changed when it is installed. The installation process is shown in the diagram below.
The package file ikhellom.pkg
defines the source files to be bundled in the ikhellom.sis
file, and the folder locations to which the files are to be (optionally) copied.
&EN,FR,IT #{"Minimal application", "Application minimale", "Applicazione minima"},(0x01000508),1,0,0 "\epoc32ex\adk\ikhello.app"-"!:\system\apps\ikhello\ikhello.app" { "\epoc32ex\adk\ikhello.ruk" "\epoc32ex\adk\ikhello.rfr" "\epoc32ex\adk\ikhello.rit" }-"!:\system\apps\ikhello\ikhello.rsc"
The package file is similar to that in the preceding example. The notes below cover only the additional features.
To create the installation file ikhellom.sis
, invoke makesis
on the package file:
makesis ikhellom.pkg
This example demonstrates how to configure a .pkg
file so that a text file is viewed on the PC, and a file is automatically run on the target platform, during installation. It uses the same application as in the first example, but additionally displays a license agreement during installation. Also, during installation of the application, an EPOC Word document is run on the target machine.
The following diagrams show the process more clearly. The sis
file bundles the same ikhello
application and resource files as in the first example. It also bundles a license agreement and de-installation notice.
As shown in the diagram below, the license agreement is displayed during installation, but is not copied to the target machine. The de-installation notice is transferred to the target machine, and is run when the application is installed/removed see Installing applications.
This package file used for this example, ikhellol.pkg
, is shown below. The following notes cover only file features which are additional to the previous examples.
#{"Application with licence"},(0x01000508),1,0,0 "\epoc32ex\adk\
ikhellol.txt"-"",FT,TA ; Files to be installed - only three, no language variants "\epoc32ex\adk\
ikhello.app"-"!:\system\apps\ikhello\ikhello.app" "\epoc32ex\adk\
ikhello.rsc"-"!:\system\apps\ikhello\ikhello.rsc" "\epoc32ex\adk\
ikhellod"-"!:\system\apps\ikhello\ikhello-deinstall",FR,RI
To create the installation file ikhellol.sis
, invoke makesis
on the package file:
makesis ikhellol.pkg
This example demonstrates how to configure a .pkg
file so that the new installation file bundles other .sis files. This feature might be used for packaging different parts of an application, e.g. user interface and engine, prior to generating a complete installation file for the whole application. It might also be used as a means of preventing components from being overwritten by earlier versions.
The diagram above illustrates the bundling process. The ikhellos
package file specifies an installation file which includes the BossPzzl.sis
file. During installation, shown below, BossPzzl.sis
is extracted from the ikhellos.sis
file and its contents, BossPuzzle.hlp
, automatically installed.
The package file used for this example, ikhellos.pkg
, is shown below. The following notes cover only file features which are additional to the previous examples.
#{"Minimal application"},(0x01000508),1,0,0 ; Ikhello installation with an embedded .sis file "\epoc32ex\adk\
ikhello.app"-"!:\system\apps\ikhello\ikhello.app" "\epoc32ex\adk\
ikhello.rsc"-"!:\system\apps\ikhello\ikhello.rsc" ; Component .sis files @"\epoc32ex\adk\
BossPzzl.sis",(0x01000508)
BossPuzzle.sis
, and a UID. A help file has no UID. Since makesis
requires a UID to build the installation file, a dummy UID has been used.To create the installation file ikhellos.sis
, invoke makesis
on the package file:
makesis ikhellos.pkg