The "root of the relevant SDK", aka. %EPOCROOT%, has in a default installation 3 path components, e.g. "\Symbian\8.0a\S60_3rd_MR\" however it is unlikely that you actually have a folder called "series60" thus this must be a generic component used to make abstraction of the particular SDK you might be using.
Originally Posted by wirefree101
So, for the S60 2nd SDK FP3 for CodeWarrior the example application are to be installed under \Symbian\8.0a\S60_2nd_FP2_CW\ thus their path becoming \Symbian\8.0a\S60_2nd_FP2_CW\EMCCSoft\...
Also, when reading any path references from the book make sure make the proper translation.
Now, for the HelloWorldCon you need to look at the EMCCSoft\HelloWorldCon\group\HelloWorldCon.mmp, particularly the following line defining the USERINCLUDE paths
Parse this path having the file location as start point and you will see that the book assumes that a directory called Epoc32ex is available in SDK's root (or in the parent directory of \EMCCSoft). There is no such directory in the S60 SDKs, we call it \Examples
So modify this line to look like this:
and now the project can be compiled (assuming the examples are installed in the SDK root otherwise this USERINCLUDE statement does not evaluate to a valid path).