[Buildroot] Make problems

Nathanael D. Noblet nathanael at gnat.ca
Thu Jan 25 16:50:29 UTC 2007


Kleegrewe, Christian wrote:
>
> And my hello.mk File
>
> #############################################################
> #
> # Any custom stuff you feel like doing....
> #
> #############################################################
> HELLO_DIR=package/hello
> HELLO_SOURCE_DIR=$(HOME)/embedded_p2p/hello
> HELLO=hello
> HELLO_BINARY=hello
>
> $(HELLO):
>         -cp -af $(HELLO_SOURCE_DIR)/* $(HELLO_DIR)/
>         touch $@
>         touch -c $(HELLO_DIR)/hello.cpp
>
> $(HELLO_DIR)/$(HELLO_BINARY): $(HELLO_DIR)/hello.cpp $(HELLO_DIR)
>         $(MAKE) CFLAGS="$(TARGET_CFLAGS)" DEBUG=true KLIBC=false \
>             KERNEL_INCLUDE_DIR=$(STAGING_DIR)/include \
>             TARGET_DIR=$(TARGET_DIR) -C $(HELLO_SOURCE_DIR) -o 
> $(HELLO_BINARY);
>

if you look at other makefiles in buildroot, you'll see usually the last 
line (though position isn't important)

programname: $(PROGRAM_DIR)/$(TARGET_BINARY) ....

make deals with dependancies and dependency trees, so the line is like so

target: dependancy1 dependancy2
      tasks for target
      tasks for target

dependancy1: dependancy3
     tasks for dependency1

dependancy2:
    tasks for dependency2

dependancy3:
    tasks for dependency3


if I used this makefile directly and did `make target` I would get
tasks for dependency3
tasks for dependency1
tasks for dependency2
tasks for target

so with your makefile, you've made the end target of program name = 
hello, the only thing to run. In your
ifeq ($(strip $(BR2_PACKAGE_HELLO)),y)
TARGETS+=hello
Endif

hello: is added as a target, but your makefile has hello: as a 
dependency free target. it does the first part, but that is it. so 
change it so it is something like
$(HELLO_DIR):
    mkdir $(HELLO_DIR)

$(HELLO_DIR)/hello.cpp: $(HELLO_DIR)
    tasks including your touch $HELLO_DIR/hello.cpp

$(HELLO_DIR)/$(HELLO_BINARY): $(HELLO_DIR)/hello.cpp
       tasks...

hello: $(HELLO_DIR)/$(HELLO_BINARY)




More information about the buildroot mailing list