You are not logged in.
I'm attempting to create a PKGBUILD for MRIConvert (home page: http://lcni.uoregon.edu/~jolinda/MRIConvert/ ).
I managed to get around some issues within the build() process, but I'm stuck because I can't make install.
The process fails miserably with:
make: *** No rule to make target 'install'. Stop.I've googled a lot, and I've got the impression that this error is somewhat nonspecific, and the underlying issue may be variable.
If I understand correctly, it means that cmake or make didn't do their job properly and didn't create an install target. I tried to look at the output (if anyone is interested, it can be found here: http://pastebin.com/6LgBkRr6 ), but I couldn't spot anything obvious. . Not that I could make much sense of it.
I'm not experienced with building packages, so I don't know exactly what to look for.
I should probably mention that the instructions to compile from source provided by upstream recommend to build wxWidgets and boost from source (which I'd like to avoid if possible, for obvious reasons). Also:
- recommended: cmake 2.8.2 or greater - I have: cmake 2.8.12.2-2
- recommended: wxWidgets 2.8.12 - I have: wxgtk2.8 2.8.12.1-1
- recommended: Boost 1.52.0 - I have: boost 1.55.0-5
The PKGBUILD I came up with is:
# Maintainer: Your Name <youremail@domain.com>
pkgname=MRIConvert
pkgver=2.0.7
pkgrel=1
epoch=
pkgdesc="Medical image file conversion utility that converts DICOM files to NIfTI 1.1, FSL NIfTI, Analyze 7.5 , SPM99/Analyze, BrainVoyager, and MetaImage volume formats."
arch=('x86_64')
url="http://lcni.uoregon.edu/~jolinda/MRIConvert/"
license=('GPL')
groups=()
makedepends=(
'wxgtk2.8'
'boost'
'cmake'
)
checkdepends=()
optdepends=()
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
source=("http://lcni.uoregon.edu/~jolinda/MRIConvert/${pkgname}-${pkgver}-src.tar.gz")
noextract=("${pkgname}-${pkgver}-src.tar.gz")
md5sums=('ad012e38faded2619248dc6f66f6e0c2')
prepare() {
cd "${srcdir}/"
if [[ -d "${srcdir}/${pkgname}-${pkgver}/build" ]]; then
rm -rf "${srcdir}/${pkgname}-${pkgver}/build"
rm -rf "${srcdir}/${pkgname}-${pkgver}/"
fi
mkdir "${srcdir}/${pkgname}-${pkgver}/"
mkdir "${srcdir}/${pkgname}-${pkgver}/build"
tar -xzf "${pkgname}-${pkgver}-src.tar.gz" -C "${srcdir}/${pkgname}-${pkgver}/build"
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
cmake ./build -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_BUILD_TYPE='Release' -DwxWidgets_CONFIG_EXECUTABLE='/usr/bin/wx-config-2.8' -DwxWidgets_wxrc_EXECUTABLE='/usr/bin/wxrc-2.8'
make
}
package() {
cd "${srcdir}/${pkgname}-${pkgver}/build"
make DESTDIR="${pkgdir}/" install
}
Any help is greatly appreciated. Thanks.
Last edited by greymatter (2014-04-08 14:58:05)
Offline
I'd report this to the upstream mailing list. I can confirm the same failure - there is no installation directive in their makefile, nor is there an install script. There is a README, but it says nothing of how to install except that it is a "standard cmake" procedure, which it clearly isn't.
You *could* manually install the binaries that are put into the <builddir>/release/ folder. There are just two of them, so if that is all there is to this package, that would be simple enough. There don't seem to be any associated manual pages, nor any obvious configuration files that would be needed.
Last edited by Trilby (2014-04-08 15:17:14)
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline
Looks like it doesn't include an install target in the makefile, but it does create a cmake_install.cmake file. Not sure how to use it, though.
BTW, your setup for making a build dir is way off. Get rid of the noextract and the entire prepare function. In the build function, cd to $srcdir and
[[ -d build ]] && rm -rf build
mkdir build
cd build
cmake .. <everything else>Give you an actual out of tree build.
Offline
I'd report this to the upstream mailing list. I can confirm the same failure - there is no installation directive in their makefile, nor is there an install script. There is a README, but it says nothing of how to install except that it is a "standard cmake" procedure, which it clearly isn't.
Thanks, I sent an email on their list. They do not have a public archive, so I can't post a link to the discussion, but I'll try to report back. ![]()
You *could* manually install the binaries that are put into the <builddir>/release/ folder. There are just two of them, so if that is all there is to this package, that would be simple enough. There don't seem to be any associated manual pages, nor any obvious configuration files that would be needed.
This is the precompiled package provided for debian:
├── install.sh
├── MRIConvert-2.0.7-x86_64.DIGEST
├── README.txt
├── release-notes.txt
└── usr
├── bin
│ ├── mcverter
│ └── MRIConvert
└── share
├── doc
│ └── mriconvert
│ ├── changelog.Debian.gz
│ ├── changelog.gz
│ └── copyright
└── man
└── man1
├── mcverter.1.gz
└── MRIConvert.1.gz
7 directories, 11 filesApparently there are man pages... :S
Looks like it doesn't include an install target in the makefile, but it does create a cmake_install.cmake file. Not sure how to use it, though.
BTW, your setup for making a build dir is way off. Get rid of the noextract and the entire prepare function. In the build function, cd to $srcdir and
[[ -d build ]] && rm -rf build mkdir build cd build cmake .. <everything else>Give you an actual out of tree build.
Thanks for your patient suggestions Scimmia! I didn't know how to handle the fact that extracting the source was cramming the directory with files... this way is definitely cleaner.
Offline