I would suggest to use separate build directories but let these builds to share downloads and sstate.

Regards,
Chen Qi

On 11/30/2014 12:49 PM, Qiang Yu wrote:
Hi all,

I'm maintaining a Yocto build system to produce these outputs:

1. ARM SOC 1
  1). board 1 image
  2). board 2 image
  3). SDK for i686
  4). SDK for x86_64
2. ARM SOC 2
  1). board 3 image
  2). board 4 image
  3). SDK for i686
  4). SDK for x86_64

Now I don't know the right way to create build directories for these builds. The simplest way 
I think is creating one build directory for each of these builds. But it wast resource for boards 
with the same SOC which can share cross toolchain. And ARM SOC 1 and ARM SOC 2 use 
different conf/bblayers.conf to add different BSP layer, I need to modify it when switch SOC. 
So the right way is creating one build directory for each SOC, then bitbake each output's recipe, 
right?

I am also not sure if I can put the SDK and board image in the same build directory. Because 
once I build a board's image after creating its SDK, I add gdbserver to it, but the build fail without 
really building the gdbserver package. So I guess the board image build is confused by the SDK 
build state.

So the conclusion is I need a recommended way to separate output into different build directories:
1. minimize rebuild shared packages
2. no build state corruption
3. if multi output in the same build dir, no change to conf/ files or an easy way to switch between

Regards,
Qiang