[Buildroot] Changing install location of a package
H Hartley Sweeten
hartleys at visionengravers.com
Mon Oct 11 19:00:24 UTC 2010
On Sunday, October 10, 2010 2:35 PM, Martin Banky wrote:
> On Fri, Oct 8, 2010 at 2:59 PM, H Hartley Sweeten <hartleys at visionengravers.com> wrote:
>>
>> Is there a way to setup a .mk file for a package to configure and install
>> the package into a place other than /bin, /sbin, /usr/bin or /usr/sbin?
>> Or is this actually handled internally by the .configure of the package?>
>
> Yes, you would need to setup the .mk file to install the package into a
> different location. It will depend on the package type. If it's an
> autotools package, then you will have to do one of two things. The choice
> would be based on whether the existing options are acceptable, but just
> need to be added to, then add/change (PKG)_CONF_OPT, or the existing
> options are not acceptable, then redefine (PKG)_CONFIGURE_CMDS. If it's
> a gentargets package, then the only choice you have is to change
> (PKG)_CONFIGURE_CMDS. If it's a manual makefile package, then you will
> have to add/change the configuration step, if it has one, and/or the
> installation step, if necessary. I would suggest that you read
> buildroot/docs/buildroot.html. It has a lot of good information about
> creating and changing packages.
Thanks for the reply.
My package is autotools based. Currently my *.mk looks something like this.
FOO_VERSION = 0.0.1
FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
FOO_SITE = http://dummysite
FOO_AUTORECONF = YES
FOO_INSTALL_STAGING = NO
FOO_INSTALL_TARGET = YES
FOO_CONF_OPT = --with-freetype-prefix=$(STAGING_DIR)/usr \
--with-sdl-prefix=$(STAGING_DIR)/usr \
--with-sdl-exec-prefix=$(STAGING_DIR)/usr
FOO_DEPENDENCIES = sdl sdl_image
$(eval $(call AUTOTARGETS,package,foo))
To install the package inro a different location I assume I need to override the
--prefix option in the ./configure step. But this appears to be hardcoded to
/usr in Makefile.autotools.in:
# Configure package for target
define $(2)_CONFIGURE_CMDS
(cd $$($$(PKG)_SRCDIR) && rm -rf config.cache && \
$$(TARGET_CONFIGURE_OPTS) \
$$(TARGET_CONFIGURE_ARGS) \
$$($$(PKG)_CONF_ENV) \
./configure \
$$(if $$(filter YES,$$($$(PKG)_USE_CONFIG_CACHE)),--cache-file="$(BUILD_DIR)/tgt-config.cache",) \
--target=$$(GNU_TARGET_NAME) \
--host=$$(GNU_TARGET_NAME) \
--build=$$(GNU_HOST_NAME) \
--prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
$$(DISABLE_DOCUMENTATION) \
$$(DISABLE_NLS) \
$$(DISABLE_LARGEFILE) \
$$(DISABLE_IPV6) \
$$(QUIET) $$($$(PKG)_CONF_OPT) \
)
Will adding --prefix/{somedir} to FOO_CONF_OPT override this?
Thanks,
Hartley
More information about the buildroot
mailing list