# Symbian PDK 4.0.a
Symbian PDK 4.0.a built with GCC. This archive contain sources required to run a build.

## Sources
- [binaries_prebuilt.7z.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fbinaries_prebuilt.7z.zip)
- [build_BOM.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fbuild_BOM.zip)
- [build_md5.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fbuild_md5.zip)
- [release_metadata.xml](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Frelease_metadata.xml)
- [src_oss_adaptation.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fsrc_oss_adaptation.zip)
- [src_oss_app.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fsrc_oss_app.zip)
- [src_oss_mw.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fsrc_oss_mw.zip)
- [src_oss_os.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fsrc_oss_os.zip)
- [src_oss_tools.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Fsrc_oss_tools.zip)
- [tools_epoc.7z.zip](https://archive.org/download/nokia_sdks_n_dev_tools/PDK_4_0a.zip/pdk%2FPDK_4.0.a%2Ftools_epoc.7z.zip)
- [oss+FCL+sftools+fbf+configs+default.hg](https://archive.org/download/nokia_sdks_n_dev_tools2/source.zip/source%2Foss%2BFCL%2Bsftools%2Bfbf%2Bconfigs%2Bdefault.hg)
- [oss+FCL+sftools+fbf+projects+platforms.hg](https://archive.org/download/nokia_sdks_n_dev_tools2/source.zip/source%2Foss%2BFCL%2Bsftools%2Bfbf%2Bprojects%2Bplatforms.hg)

## Toolchain
- [gcc-10.2.0](https://osdn.net/users/jonebontus/pf/symbian_build_toolchain/wiki/FrontPage)
- perl-5.32.1 (You need a perl that can build modules)
	- [Class-Inspector-1.36.tar.gz](http://www.cpan.org/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz)
	- [libxml-perl-0.08.tar.gz](http://www.cpan.org/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz)
	- [XML-Checker-0.13.tar.gz](http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-Checker-0.13.tar.gz)
	- [XML-DOM-1.44.tar.gz](http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-DOM-1.44.tar.gz)
	- [XML-RegExp-0.04.tar.gz](http://www.cpan.org/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz)
	- [libwww-perl-5.837.tar.gz](http://www.cpan.org/authors/id/G/GA/GAAS/libwww-perl-5.837.tar.gz)
	- [SOAP-Lite-1.27.tar.gz](http://www.cpan.org/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz)
	- [URI-1.67.tar.gz](http://www.cpan.org/authors/id/E/ET/ETHER/URI-1.67.tar.gz)
	- [Win32-OLE-0.1712.tar.gz](http://www.cpan.org/authors/id/J/JD/JDB/Win32-OLE-0.1712.tar.gz)
	- [XML-Parser-2.44.tar.gz](http://www.cpan.org/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz)
	- [XML-Simple-2.25.tar.gz](http://www.cpan.org/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz)
- [python-2.5.4.msi](https://www.python.org/ftp/python/2.5.4/python-2.5.4.msi)
- [mercurial-1.6.4.msi](http://mercurial.selenic.com/wiki/Download)
- [PDT_v1.7.0.exe](https://archive.org/download/nokia_sdks_n_dev_tools/PDT_v1.7.0.exe)

## Building
### Preparation
#### Install the Toolchain
For GCC binaries and Mercurial should be installed on `C:\apps`. For other tools use default install locations.

#### Get Source Archives
Download source archives listed above and save to `C:\PDK`.

#### Setup the Environment
Call `buildenv.bat` to set the environment variables required to run a build.

#### Clone Mercurial Repositories
These repositories contain build scripts not included with the PDK.
```
hg clone oss+FCL+sftools+fbf+configs+default.hg C:\Symbian\maintools\sf-config
hg clone oss+FCL+sftools+fbf+projects+platforms.hg C:\Symbian\maintools\build\config
```

#### Patch the PDK and Tools
Copy the contents of this directory to root of C drive.

### Building a Package
- First run the prebuild step from Helium.
	```
	cd C:\Symbian\maintools\sf-config
	hlm sf-prebuild -Dsf.subproject.path=symbian3/single
	```
- Then extract the precompiled binaries (those found in `binaries_*.zip`).
- And then build the desired package. For example with serviceapi:
	```
	M:
	cd M:\
	sbs -s M:\build_info\package_definitions\mw\serviceapi\package_definition.xml -k -c tools2_rel.whatlog -f tools2_rel.log
	sbs -s M:\build_info\package_definitions\mw\serviceapi\package_definition.xml -k -c armv5_udeb_gcce10_2_0.whatlog -f armv5_udeb_gcce10_2_0.log
	```

### Building the Platform
- This can be done with the commands below.
	```
	cd C:\Symbian\maintools\sf-config
	hlm sf-build -Dsf.subproject.path=symbian3/single
	```
