none
Updating Private folder in WEC7 RRS feed

  • Question

  • Hello,

    I am aware that it is recommended not to update either Private or Public code in WEC7. There are web links on how to copy Public code to BSP, but I could not find instructions on how to copy Private code to BSP.

    Specifically, I want to update "\Private\servers\http\parser" files and make a library from my updates. Then, I want my library to be used instead of the original WEC7 library for "\Private\servers\http\parser".

    Any guidance is appreciated.

    Thank you

    Monday, November 10, 2014 11:28 PM

All replies

  • The cloning process is the same for the private code as for the public code. 

    Bruce Eitman (eMVP) Senior Engineer Bruce.Eitman AT Eurotech DOT com My BLOG http://geekswithblogs.net/bruceeitman Eurotech Inc. www.Eurotech.com


    Tuesday, November 11, 2014 11:10 AM
    Moderator
  • Thank you. I will try to clone the Private code, and then post my results.
    Wednesday, November 12, 2014 2:11 PM
  • I am able to clone the Private code and get it to work. One drawback though is that I have to build the OS. I could not figure out how to build dll from the lib that I created (as I describe below), but I can live with building the OS for the time being. Below are the steps that describe how I cloned the Private Server code.

    1. Copy the folder "C:\WINCE700\private\servers" to
       "C:\WINCE700\platform\<yourPlatformName>\SRC\DRIVERS"

    2. Update the file "C:\WINCE700\platform\<yourPlatformName>\SRC\DRIVERS\dirs" to include "servers" folder.

    3. Since I want for time being to update only http files, update
       "C:\WINCE700\platform\<yourPlatformName>\SRC\DRIVERS\servers\dirs" file to include only "http" folder.
       (e.g. DIRS=http)

    4. For unknown reason, the file ""C:\WINCE700\platform\<yourPlatformName>\SRC\DRIVERS\servers\sources.cmn"
       cannot be processed by the build process. To workaround any build errors, copy from the sources.cmn to
       "C:\WINCE700\platform\<yourPlatformName>\SRC\DRIVERS\servers\http\http.src" the following lines:

       WINCEPROJ=servers
       WINCETREE=servers

    # OS projects during compile always get the full unfiltered headers & build into their own public tree.
    _COMMONPUBROOT=$(_PUBLICROOT)\common
    __PROJROOT=$(_PUBLICROOT)\$(WINCEPROJ)
    __PROJOAKLIB=$(__PROJROOT)\oak\lib\$(_CPUINDPATH)
    __PROJSDKLIB=$(__PROJROOT)\sdk\lib\$(_CPUINDPATH)
    __PROJOAKINC=$(__PROJROOT)\oak\inc
    __PROJSDKINC=$(__PROJROOT)\sdk\inc


    _ISVINCPATH=$(_WINCEROOT)\public\common\sdk\inc;
    _OEMINCPATH=$(_WINCEROOT)\public\common\sdk\inc;$(_WINCEROOT)\public\common\oak\inc;$(_WINCEROOT)\public\ie7\sdk\inc;$(_WINCEROOT)\public\servers\sdk\inc;$(_WINCEROOT)\public\common\ddk\inc;$(_WINCEROOT)\public\servers\oak\inc;$(_WINCEROOT)\public\dcom\sdk\inc;$(_WINCEROOT)\private\winceos\inc;$(_WINCEROOT)\public\common\sdk\inc\test

    5. After the build (Build->Advanced Build Commands->Rebuild Current BSP), you will see the updated libraries under

    "C:\WINCE700\public\servers\oak\lib\<yourCPU>\retail"

    Note, in the http.src file, if you do not include "WINCEPROJ=servers" and "WINCETREE=servers", then the library
    will be saved under "C:\WINCE700\public\oak\lib\<yourCPU>\retail" (there is no "server" folder). Since I want to maintain the same directory structure, I included "WINCEPROJ=servers" and "WINCETREE=servers" in http.src.

    6. In this step, I am supposed to build dll. However, there is the large file "C:\WINCE700\public\servers\cesysgen\makefile", and there is a section on building httpd.dll which depends on other libraries that I am not updating. I could not figure out how to use this section in the makefile to build my dll. So, I just build the OS, which will take my changes from Step 5.

    I am able to change what I want in the cloned code, build the library, and then build the OS. I verified my code changes.

    Thank you.

    Monday, November 17, 2014 8:54 PM