TacoVox
TacoVox

Reputation: 141

PKGBUILD with make all

I am trying to write a PKGBUILD for the AUR right now for a github project consisting of several sub applications.
So basically the CMake file of this project just runs a make to make && make install the sub applications.
These are my build and package steps:

build() {
  cd "$srcdir/$_gitname"
  [[ -d build ]] && rm -r build
  mkdir build && cd build
  cmake -DCMAKE_INSTALL_PREFIX=/opt/od ..
}

package() {
  cd "${_gitname}/build"
  sudo make all
}

My problem is now that everything works except:

I cannot change the CMake file though, because the project is not mine and all the different subapplications belong together and if I try make && make install them separately I get a bunch of errors that they are depending each other.

Upvotes: 1

Views: 1987

Answers (2)

followait
followait

Reputation: 103

As an exmaple

package()
{
    cd "$pkgname"
    DESTDIR="$pkgdir" cmake --install out 
} 

This will install things to $pkgdir, and then packaged to zst file.

Upvotes: 0

Emilio Miralles
Emilio Miralles

Reputation: 129

The package function cannot install into the root hierarchy. Instead, makepkg is intended to install into the pkgdir under a fakeroot, where the pkgdir replicates the actual root directory structure. See ArchWiki/Creating Packages.

You can do this by adding DESTDIR="$pkgdir/" to the make options in your package function.

When pacman is invoked on the created package, it will copy the files over into the real root hierarchy.

Upvotes: 0

Related Questions