[Buildroot] Makefile.autotools.in does not work wellwith projects

Bernhard Fischer rep.dot.nop at gmail.com
Wed Jul 30 10:19:52 UTC 2008


On Mon, Jul 28, 2008 at 10:52:41AM +0200, Hans-Christian Egtvedt wrote:
>On Mon, 2008-07-28 at 18:50 +1000, Hamish Moffatt wrote:
>> On Mon, Jul 28, 2008 at 10:42:37AM +0200, Hans-Christian Egtvedt wrote:
>> > On Sun, 2008-07-27 at 11:33 +1000, Hamish Moffatt wrote:
>
><snipp>
>
>> > And two minutes later I have a RFC for this solution, see attached
>> > patch.
>> [..]
>> >  # Install to target dir
>> > -$(BUILD_DIR)/%/.stamp_target_installed:
>> > +$(TARGET_DIR)/%/$($($(PKG)_NAME)_TARGET_INSTALLED_TOUCH_FILE):
>> >  	$(call MESSAGE,"Installing to target")
>> > -	$($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_INSTALL_TARGET_OPT) -C $(@D)/$($(PKG)_SUBDIR)
>> > +	$($(PKG)_MAKE_ENV) $(MAKE) $($(PKG)_INSTALL_TARGET_OPT) -C $($(PKG)_DIR)/$($(PKG)_SUBDIR)
>> [..]
>> >  # define sub-target stamps
>> > -$(2)_TARGET_INSTALL_TARGET =	$$($(2)_DIR)/.stamp_target_installed
>> > +$(2)_TARGET_INSTALL_TARGET =	$$(TARGET_DIR)/$$($(2)_TARGET_INSTALLED_TOUCH_FILE)
>> 
>> Will every package that uses Makefile.autotools.in need to be modified
>> to define the target installed file? If so, would you like to prepare a
>> large patch? :)
>
>Not really, since I do not have knowledge about each package and what
>they will need to depend on installed on target.
>
>> Alternatively, perhaps $(2)_TARGET_INSTALL_TARGET could
>> be fall back to the old definition if the new variable is not supplied,
>> using some ifeq logic.
>> 
>
>Yes, there should be a fallback when the variable is not supplied. The
>Makefile should print a warning message as well, demanding an update ;)
>
>I'll see what I can figure out.

Let me suggest to rename that variable to $(2)_TARGET_FILES
and do
$(2)_TARGET_INSTALL_TARGET = $(firstword $($(2)_TARGET_FILES))

foo_tmp=$(firstword $($(2)_TARGET_FILES))
or somthing like $(if $(foo_tmp),$(foo_tmp),$($(2).old_stamp_file))

Reasoning:
You really want to only have a few files in $(TARGET_DIR) as opposed to
$(STAGING_DIR). Those $(2)_TARGET_FILES should ideally be the only files
installed into the final image (think of a gazillion superfluous termcap
entries or other unneeded files).



More information about the buildroot mailing list