add $DESTDIR in makefiles for package mgmt

Tim Black
  • 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.


  • 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


    You must make some changes to the tarball unfortunately.
    A good build env for opensource stuff should have at least these steps
    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

    Having said that, here is a patch that allows linx to be installed in a
    staging area via standard DESTDIR stuff :-)


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks