[U-Boot] [PATCH v4 05/13] tegra20: plutux: change obj directory mkdir commands

Allen Martin
2012-06-25T17:39:31Z

On Thu, Jun 21, 2012 at 05:00:39PM -0700, Allen Martin wrote:
> Change the mkdir commands for the object directories to be more
> general purpose. This fixes an issue when building for SPL where
> SRCTREE and OBJTREE are the same, but $(obj) is under SPLTREE.
>
> Signed-off-by: Allen Martin <amartin@nvidia.com>
> ---
> board/avionic-design/plutux/Makefile | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/board/avionic-design/plutux/Makefile b/board/avionic-design/plutux/Makefile
> index d96d043..6bd394e 100644
> --- a/board/avionic-design/plutux/Makefile
> +++ b/board/avionic-design/plutux/Makefile
> @@ -25,8 +25,11 @@
>
> include $(TOPDIR)/config.mk
>
> -ifneq ($(OBJTREE),$(SRCTREE))
> -$(shell mkdir -p $(obj)../common $(obj)../../nvidia/common)
> +ifeq ($(wildcard $(obj)../common),)
> +$(shell mkdir -p $(obj)../common)
> +endif
> +ifeq ($(wildcard $(obj)../../nvidia/common),)
> +$(shell mkdir -p $(obj)../../nvidia/common)
> endif

I verified the other boards that reach up and over to ../common and
../../nvidia/common also fail, it's just that this directory doesn't
get removed on a "make clobber" so once the directories are made it
works fine from then on.

I couldn't figure a good way of moving this up to a higher level.
The problem the build assumes all object files go to $(obj) and it's
only when evaluating the $(obj)%.o: %.c rule that we really know where
the object is going to end up (because the %.c has a relative path in
it). Putting extra logic in that rule seems like it would slow the
build down a lot for the general case, so I think it's better just to
put the explicit mkdirs in the Makefiles where we reach up and over.

-Allen
--
nvpublic