You are not logged in.

#1 2014-04-08 14:52:48

greymatter
Member
Registered: 2014-04-05
Posts: 5

PKGBUILD attempt: MRIConvert fails to build with: "make: *** No rule t

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

#2 2014-04-08 15:14:33

Trilby
Inspector Parrot
Registered: 2011-11-29
Posts: 30,456
Website

Re: PKGBUILD attempt: MRIConvert fails to build with: "make: *** No rule t

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

#3 2014-04-08 15:49:34

Scimmia
Fellow
Registered: 2012-09-01
Posts: 13,655

Re: PKGBUILD attempt: MRIConvert fails to build with: "make: *** No rule t

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

#4 2014-04-08 16:35:01

greymatter
Member
Registered: 2014-04-05
Posts: 5

Re: PKGBUILD attempt: MRIConvert fails to build with: "make: *** No rule t

Trilby wrote:

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. smile

Trilby wrote:

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 files

Apparently there are man pages... :S



Scimmia wrote:

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

Board footer

Powered by FluxBB