11

I'm trying to cross-compile some applications for an alternative architecture.

My typical procedure is as follows:

  1. Download and untar source into /var/source
  2. ./configure --prefix=/var/install CC=[my-cross-compiler-gcc]
  3. make
  4. make install

This works as expected: My application is installed into /var/install.

However, when I deploy this application onto my alternative architecture, I don't want it deployed in /var/install. I just want it installed in / as normal.

I can copy it into /, however the application itself is still trying to look inside /var/install for various default settings.

I want to compile and install the software on my x86 system, but when I deploy it on the alternative architecture, I want it to be as if I had installed it into /, not in /var/install.

Is there a way to accomplish what I'm trying to do?

Runcible
  • 7,006
  • 12
  • 42
  • 62

2 Answers2

13

If I understand correctly, /var/install on your x86 system will be / on your alternative architecture. To solve your issue, you need to modify the following step:

  • configure will certainly do some sed in file, so you need to specify the final place

    ./configure --prefix=/ CC=[my-cross-compiler-gcc]

  • makefile generated by automake have support of variable DESTDIR which is prepended to the installation path:

    make DESTDIR=/var/install install

austinmarton
  • 2,278
  • 3
  • 20
  • 23
3

I had a similar problem, but I was cross-compiling and wanted to install to the root directory of my device. In this case I specified:

make install DESTDIR=<path/to/rootfs>
Samuel
  • 8,063
  • 8
  • 45
  • 41