add $DESTDIR in makefiles for package mgmt

Help
Tim Black
2010-09-17
2012-09-28
  • Tim Black
    Tim Black
    2010-09-17

    I am cross-compiling LINX for powerpc to create a package within our custom
    package management system for an embedded powerpc target. It looks like your
    make system includes support for cross-compiling with ARCH, CROSS_COMPILE, and
    KERNEL, but I don't see any support for the install target installing anywhere
    but the local system. e.g. for installing linx kernel modules, INSTALLDIR is
    hard-coded to /lib/modules/uname -r/kernel/net/linx.

    My package build scripts typically do something like:

    make DESTDIR=/path/to/jail/root install

    and the install target in the makefile always prefixes the dest path with
    $DESTDIR before copying anything. This seems to be fairly standard in the
    other packages we're using. Before we patch your makefiles to support this, I
    wanted to check with you to see if this would be considered for next release
    (which I heard was imminent) or if this work had already been done.

    Thanks..

     
  • Per
    Per
    2010-11-26

    Hello timblacktu,

    Did you had any success in receiving updates for DESTDIR support?
    I'm just about to travel same road and it's faster of course if someone
    already have all or major part of this done....
    Seems like not too many places though for this.

    I'd also suggest using the target rule "modules_install" (similar to
    what's done when compiling with "modules") + the extra define
    INSTALL_MOD_PATH=$(DESTDIR) and thus use more of
    the standard build framework for linux stuff (no need for your
    own depmod line for example)
    relying on a correctly defined kernel

     
  • Per
    Per
    2010-11-26

    ok, that was easy fixed. I'll add a patch here when time arrives in excess...
    :-)

     
  • Tim Black
    Tim Black
    2010-12-06

    I'm curious to see how you solved this problem. At the moment, I prefer to not
    make local changes to the LINX tarball. So I solved it with a simple post-
    install script that gets run separate from make to install the kernel modules.

     
  • Per
    Per
    2010-12-07

    Hi,

    You must make some changes to the tarball unfortunately.
    A good build env for opensource stuff should have at least these steps
    somewhere:
    1. unpack of package (tar, rpms or so)
    2. applying a list of patches to it

    If you don't have step 2, you don't have a good place for your bugfixes,
    updates, enhancements etc.

    So alway wrap the build of a opensource package in a Makefile (that you
    probably do already), there you
    can unpack, patch, etc and thereafter drive the build, install etc. for the
    package.

    Having said that, here is a patch that allows linx to be installed in a
    staging area via standard DESTDIR stuff :-)
    http://dl.dropbox.com/u/9714971/staging-
    area.patch