×

Discussion Board

Results 1 to 8 of 8
  1. #1
    Registered User
    Join Date
    Nov 2006
    Posts
    23

    Understanding the build proccess

    UPDATE 2: Partially solved, see the reply below.

    UPDATE: While digging for the error code, I noticed the quite-human-readable line "Unable to identify a valid CodeWarrior for Symbian OS installation" which I interpret to mean that my environment isn't set correctly.

    I've been fighting with the Symbian build process now for about two days straight. First I started with Linux-version (GnuPoc)[/URL], which builds the gcce-binaries just fine.

    However, I decided that testing with the emulator could ease the process, so I installed windows and Carbide.c++. First I struggled with the carbide build settings and personally I loathed the per-file build-preference dialogs which make managing the whole process practically impossible. I got the examples running just fine, but when I tried to create my own environment, I just couldn't get the exe to register in the emulator. It builds fine and I have a minimal registration resource file and the needed(?) install-lines in a .pkg-file.

    As a Unix-user, the bld.inf and .mmp -style started to sound quite appealing and I think I have quite a good grasp of the system now. However, when I try to build for WINSCW-target using abld, it just says "nothing to do" or complains about missing .WINSCW-files as if the bldmake bldfiles -command just doesn't create the needed makefiles.

    Here's the build files I'm using:
    bld.inf:
    Code:
    PRJ_PLATFORMS
    WINSCW
    
    PRJ_MMPFILES
    SimpleFftTests.mmp
    SimpleFftTests.mmp:
    Code:
    TARGET          SimpleFftTests.exe
    TARGETTYPE      exe
    UID             0xEBAF8912
    
    USERINCLUDE     . ..
    SYSTEMINCLUDE   \epoc32\include
    
    SOURCEPATH      .
    SOURCE          SimpleFftTests.cpp
    
    LIBRARY         euser.lib
    
    START RESOURCE  SimpleFftTests_reg.rss
    TARGETPATH	\private\1003a3f\apps
    TARGET		SimpleFftTests_reg.rsc
    END //RESOURCE
    And SimpleFftTests_reg.rss:
    Code:
    #include <appinfo.rh>
    
    UID2 KUidAppRegistrationResourceFile
    UID3 0xEBAF8912
    
    RESOURCE APP_REGISTRATION_INFO
    {
    	app_file = "SimpleFftTests";
    }
    AFAIK these should be enough for running a .exe in the emulator. What I'm not sure though is where I should copy the .rsc to the \apps\xxxxxxx\imports (or whatever) directory, which is normally specified in the SIS .pkg.

    Edit: The error messages could help a bit ;)
    I'm trying to build the project using following commands:
    Code:
    bldmake bldfiles
    abld build winscw udeb
    And the error is:
    Code:
      make -r  -f "\Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\S
    IMPLE~2\test\EXPORT.make" EXPORT VERBOSE=-s
    Nothing to do
      make -r  -f "\Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\S
    IMPLE~2\test\WINSCW.make" MAKEFILE VERBOSE=-s
    perl -S makmake.pl  -D \Symbian\Carbide\WORKSP~2\SIMPLE~2\test\SIMPLEFFTTESTS WI
    NSCW
    ERROR: Unable to identify a valid CodeWarrior for Symbian OS installation
    make: *** [MAKEFILESIMPLEFFTTESTS] Error 255
      make -r  -f "\Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\S
    IMPLE~2\test\WINSCW.make" LIBRARY VERBOSE=-s
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\
    SIMPLE~2\test\SIMPLEFFTTESTS\WINSCW\SIMPLEFFTTESTS.WINSCW" LIBRARY
    make[1]: \Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\SIMPLE~
    2\test\SIMPLEFFTTESTS\WINSCW\SIMPLEFFTTESTS.WINSCW: No such file or directory
    And if someone is intrested about the project, I'm working on a open source fft library (or more like a wrapper) for symbian. So if you know about such library, please let me know so I don't do duplicate effort.
    Last edited by Theril; 2007-03-28 at 12:27.

  2. #2
    Registered User
    Join Date
    Nov 2006
    Posts
    23

    Re: Understanding the build proccess

    OK, I solved the environment problem partially myself by configuring the CodeWarrior compiler environment and copying the cpp-plugin-dir to C:\codewarrior:

    Code:
    set MWCSym2Includes="c:\\codewarrior\\symbian_support\\MSL\\MSL_C\\MSL_Common\\include;c:\\codewarrior\\symbian_support\\MSL\\MSL_C++\\MSL_Common\\include;c:\\codewarrior\\symbian_support\\MSL\\MSL_Extras\\MSL_Common\\include"
    set MWSym2Libraries="+c:\\codewarrior\\symbian_support"
    set MWSym2LibraryFiles="MSL_All_MSE_Symbian.lib;gdi32.lib;user32.lib;kernel32.lib"
    (Copypaste+s/export/set/ from the GnuPoc instructions)

    Now it seems to atleast try compiling, but either doesn't build the .o or builds it in wrong place (why on earth does the build-dir-structure have be so long anyway?) if I'm understanding the compiler message:
    Code:
    make -s  -r -f "\Symbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\
    SIMPLE~2\test\SIMPLEFFTTESTS\WINSCW\SIMPLEFFTTESTS.WINSCW" UDEB
    SimpleFftTests.cpp
    process_begin: CreateProcess((null), mwccsym2.exe -g -O0 -inline off -wchar_t of
    f -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -s
    tr pool -exc ms -trigraphs on -nostdinc -d _DEBUG -d _UNICODE -d __SYMBIAN32__ -
    d __SERIES60_30__ -d __SERIES60_3X__ -d __CW32__ -d __WINS__ -d __WINSCW__ -d __
    EXE__ -d __SUPPORT_CPP_EXCEPTIONS__ -cwd source -i- -i \Symbian\Carbide\WORKSP~2
    \SIMPLE~2\test -i \Symbian\Carbide\WORKSP~2\SIMPLE~2 -i \Symbian\9.1\S60_3rd_MR_
    2\EPOC32\include -i \Symbian\9.1\S60_3rd_MR_2\epoc32\include\variant -i "\Symbia
    n\9.1\S60_3rd_MR_2\epoc32\include\variant\ " -include Symbian_OS_v9.1.hrh -o \Sy
    mbian\9.1\S60_3rd_MR_2\EPOC32\BUILD\Symbian\Carbide\WORKSP~2\SIMPLE~2\test\SIMPL
    EFFTTESTS\WINSCW\UDEB\SimpleFftTests.o -c \Symbian\Carbide\WORKSP~2\SIMPLE~2\tes
    t\SimpleFftTests.cpp, ...) failed.
    make (e=2): The system cannot find the file specified.
    Edit: Perhaps the "The system cannot find the file specified." could point to the part "-c \Symbian\Carbide\WORKSP~2\SIMPLE~2\tes
    t\SimpleFftTests.cpp, ..." to that it either can't open the SimpleFftTests.cpp or other input files are "hidden" after the ",...". I guess these tools aren't really meant to be used without the IDE/GUI, nor the whole process understood :(
    Last edited by Theril; 2007-03-28 at 12:41.

  3. #3
    Regular Contributor
    Join Date
    Sep 2006
    Location
    Australia, NSW
    Posts
    200

    Re: Understanding the build proccess

    The problem is that the tools are not meant to be used under any other operating system than Windows (which is a shame). I have enough trouble with the system under Windows, and I bow to your heroic efforts to set it up on Linux.

    To answer the question, I would get Carbide.c++ v1.1 Express (it is free and is better than nothing).

  4. #4
    Registered User
    Join Date
    Nov 2006
    Posts
    23

    Re: Understanding the build proccess

    Quote Originally Posted by sysctl
    The problem is that the tools are not meant to be used under any other operating system than Windows (which is a shame). I have enough trouble with the system under Windows, and I bow to your heroic efforts to set it up on Linux.
    Thank you, but as I mentioned in the first post, I'm currently working on Windows. I admit that the opening was a bit too long and tedious, so no wonder you have missed it.

    And BTW the Linux-"port" of the toolchain is working perfectly, but only for GCCE/ARM target. :)

    To answer the question, I would get Carbide.c++ v1.1 Express (it is free and is better than nothing).
    I have Carbide.c++ up an running, and I tried to build with it, but I find its build process even more confusing. There's also hope to get the WINS(CW) toolchain to work under Linux, so Windows would be needed only to run the emulator.

    Is there any good documentation describing the bldmake/abld process in detail? I found the reference for build files, but according to those, my project should be OK. Especially the "magic" for automatic emulator target registration files (there was some indication in the generated makefiles that the process copies the registration resources automagically to the correct /private/xxxx/apps/import (or something) directory) and such "peculiarities" would be intresting.

  5. #5
    Regular Contributor
    Join Date
    Sep 2006
    Location
    Australia, NSW
    Posts
    200

    Re: Understanding the build proccess

    From Michele Sciabarrà's blog ("ABLD with Carbide"):
    To build for the emulator, you need to set A LOT of environment variables. I obtained the correctvalues looking at the Carbide configuration, then experimenting a bit.

    Assuming you have installed Carbide and the SDK in the default location, here is the batch that worked for me:
    Code:
    set EPOCROOT=\Programmi\Symbian\9.1\S60_3rd_MR\
    set PATH=c:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Tools\Command_Line_Tools;%PATH%
    set MWCSYM2INCLUDES=c:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Support\MSL\MSL_C++\MSL_Common\Include;c:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Support\MSL\MSL_C\MSL_Common\Include;c:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Support\MSL\MSL_C\MSL_Win32\Include;
    set MWSYM2LIBRARIES=c:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Support
    set L=C:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs
    set MWSYM2LIBRARYFILES=%L%\MSL_ALL_MSE_Symbian.lib
    set L=C:\Programmi\Carbide\plugins\com.nokia.carbide.cpp.support_1.0.0\Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK
    set MWSYM2LIBRARYFILES=%MWSYM2LIBRARYFILES%;%L%\gdi32.lib
    set MWSYM2LIBRARYFILES=%MWSYM2LIBRARYFILES%;%L%\user32.lib
    set MWSYM2LIBRARYFILES=%MWSYM2LIBRARYFILES%;%L%\kernel32.lib
    As for emulator directory structure, it is horrible and I don't see any logic behind the way it is structured (actually I have asked similar questions before, but all in vain).

  6. #6
    Registered User
    Join Date
    Nov 2006
    Posts
    23

    Re: Understanding the build proccess

    Thanks alot sysctl. I created a simple .bat using the environment variables you gave (Just replace the two first variables to match your configuration):

    THIS IS WORKING AT LEAST FOR ME NOW!
    Code:
    set EPOCROOT=\Symbian\9.1\S60_3rd_MR_2\
    set CW_PATH=C:\Program Files\Nokia\Carbide.c++ Express v1.1\plugins\com.nokia.carbide.cpp.support_1.1.0.5
    
    set PATH=%CW_PATH%\Symbian_Tools\Command_Line_Tools;%PATH%;
    set MWCSYM2INCLUDES=%CW_PATH%\Symbian_Support\MSL\MSL_C++\MSL_Common\Include;%CW_PATH%\Symbian_Support\MSL\MSL_C\MSL_Common\Include;%CW_PATH%\Symbian_Support\MSL\MSL_C\MSL_Win32\Include;
    set MWSYM2LIBRARIES=%CW_PATH%\Symbian_Support
    set L=%CW_PATH%\Symbian_Support\Runtime\Runtime_x86\Runtime_Win32\Libs
    set MWSYM2LIBRARYFILES=%L%\MSL_ALL_MSE_Symbian.lib
    set L=%CW_PATH%\Symbian_Support\Win32-x86 Support\Libraries\Win32 SDK
    set MWSYM2LIBRARYFILES=%MWSYM2LIBRARYFILES%;%L%\gdi32.lib
    set MWSYM2LIBRARYFILES=%MWSYM2LIBRARYFILES%;%L%\user32.lib
    set MWSYM2LIBRARYFILES=%MWSYM2LIBRARYFILES%;%L%\kernel32.lib
    Edit: Removed the unnecessary error message.
    Last edited by Theril; 2007-03-29 at 20:34.

  7. #7
    Registered User
    Join Date
    Nov 2006
    Posts
    23

    Re: Understanding the build proccess

    Finally I solved it! It seems that my environment had been way off in that the Carbide-directory was wrong. The working environment script it edited in the post above.

    Thanks for all the help and pointers which lead to success :)

  8. #8
    Regular Contributor
    Join Date
    Sep 2006
    Location
    Berlin
    Posts
    59

    Re: Understanding the build proccess

    Hi Theril,

    it seems you spent much time in it to get your environment running. Some weeks ago I have found a hint, see the annotation "[ANN] S60 3rd Edition SDK maintenance release" on the Tools and SDK forum http://discussion.forum.nokia.com/fo...splay.php?f=29. It is valid for the 3rd SDK.

    I had the same problem with a 2nd SDK and got some hints here: http://discussion.forum.nokia.com/fo...d.php?t=102966.

Similar Threads

  1. [Pys60, 3rd Ed.] build problems
    By MHOOO in forum Symbian
    Replies: 3
    Last Post: 2007-04-09, 19:00
  2. Replies: 0
    Last Post: 2006-11-23, 10:21
  3. Latest Carbide.vs and problems with ARMI build
    By mhakkara in forum Symbian Tools & SDKs
    Replies: 5
    Last Post: 2006-04-05, 10:17
  4. Build problem
    By kirangullapalli in forum Symbian
    Replies: 1
    Last Post: 2004-10-19, 11:07
  5. armi build not working
    By lemody in forum Symbian
    Replies: 0
    Last Post: 2003-06-14, 15:04

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×