Saturday, November 13, 2004

 

How to speed up build process (from newsgroup)

Answer one:

u could do two steps:
1. say any project change u could build selected project and then makeimg.
make sure ur WINCEREL=1
2. use command prompt.
set WINCEREL=1---> to make sure that whatever u build is copied to release
directory.
go to the target directory and run build -c
and then do makeimg
for platform.bib etc files..just do the changes and copy paste in ur release
directory. and then run makeimage..this will save enough time.

wincerel causes the makefile to copy the target to the flat release
directory after the build has been complete. It doesn't cover all the other
files that also get copied to the flat release directory.
So, you always need to do a buildrel at least once. After that, if
wincerel is set you can just build and your changed binaries will end up in
the flat release directory.

Answer two:-------------------------------------------------------------------

The batch file "blddemo" does a lot of things to build a final image. It
also has a number of shortcuts to speed things up.
Simplified overview of what blddemo does
* SYSGEN Phase
This phase builds the CE kernel based on your selected SYSGEN variables and
BSP variables
- Build anything in Private if needed
- Build everything in Public
- Build your BSP under the Platform directory
* Buildrel Phase
- Copies your built files to the _FLATRELEASEDIR
* Makeimg Phase
- Creates the final NK.BIN based on stuff in the _FLATRELEASEDIR and your
IMG flags
*** Tricks to Speed things up ***
blddemo -q
This will skip building the Private directory. Normally, you never
change anything here anyway so you are just wasting time calculating
dependecies.
blddemo -qbsp
This is new in 5.0 and skips both Private and Public and only builds
your BSP platform. This is common when you are developing device drivers
for a BSP and didn't change the features you bring into your OS Design (no
SYSGEN or BSP variable changes)
WINCEREL=1
When you are building something in PUBLIC and then run makeimg, you
won't see the DLL in you Flat Release DIr (FRD) because it wasn't copied
there. The build system only does that in the buildrel phase which you
skipped. By setting WINCEREL=1 you get the DLL copied to the FRD as the
last step
Targeted Builds (5.0 using the IDE for your builds)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceosdev5/h
tml/wce50tskrunningtargetedbuild.asp
Skipping makeimg by using Release Directory Modules list
If you are debugging an image already flashed to the device, you can
tell the CE filesystem loader to grab your DLL from your PC (in the FRD)
rather than use the one built inside the NK.BIN. This means you can skip
the makeimg step if your newly-built DLL is in the FRD. To do this, go to
the Menu Target \ Release Directory Modules. This will pop-up a dialog that
lets you add your DLL to the list. Now, when you reboot and debug, your DLL
will come from your FRD and not the one in NK.BIN. Combined with Targeted
Builds, this should speed you up a lot.



This page is powered by Blogger. Isn't yours?