You are not logged in.

#1 2006-10-06 23:34:56

scrawler
Member
Registered: 2005-06-07
Posts: 318

this time, Unicon.

I don't know what to do when the makefile doesn't support the
"install" option.

here's the PKGBUILD

pkgname=unicon
pkgver=cvs
pkgrel=1
pkgdesc="A very high level, goal-directed, object-oriented, general purpose applications language.
url="http://unicon.sourceforge.net/"
license=""
depends=()
makedepends=()
conflicts=()
replaces=()
backup=()

build() {

cvs -z3 -d:pserver:user@unicon.cvs.sourceforge.net:/cvsroot/unicon co -P unicon
cd $startdir/src/$pkgname
  make X-Configure name=intel_linux || return
  make prefix=$startdir/pkg/usr install
}

It compiles just fine, then

make: *** No rule to make target `install'.  Stop.
==> ERROR: Build Failed.  Aborting...

I don't quite have the hang of this yet.  Would someone mind stepping
me through it?  The finished package has the info about where
everything goes, right?  Doesn't "make install" do that? For
PKGBUILDs, the "make install" is just inside the package.  That may be
oversimplified, but is it more or less correct?

Offline

#2 2006-10-07 04:00:40

djscholl
Member
From: Michigan, USA
Registered: 2006-05-24
Posts: 56

Re: this time, Unicon.

I can help you with some of the issues; there are quite a few.

The traditional three-step build process is:
1. configure
2. make
3. make install

In this unicon package, they are all there, but they are a little tricky to recognize. The README file in the root of the source distribution directory is your friend, as is "less Makefile"

First step: configure
In unicon, this step looks like

make X-Configure name=intel_linux

If you look in the Makefile in the root of the source distribution, and scroll down to the X-Configure target, you will see the commands that run the configure script.
The configure script runs without error on my Arch box. This step changes the Makefile, by the way, to reflect details of your local build environment.

Second step: make
In unicon, this step looks like

make Unicon

You have skipped this step in your PKGBUILD script, so I am puzzled that you report that the package compiles just fine. Your PKGBUILD does not compile anything that I can see. The configure script scrolls lots of messages past; is it possible that the absence of errors in the configure messages is what you are referring to as compiles just fine? Configure messages tend to start with "checking" and compilation messages tend to start with "gcc". At the end of the configure messages you should see "Now remember to add unicon/bin to your path". If you look for this message in the pre-configure Makefile, you will see it right after the line that runs the configure script.

On my Arch box, the compilation (make Unicon) fails because there are missing header files. It looks like this

cd src/common;          make
make[1]: Entering directory `/home/dscholl/abs/unicon/src/unicon/src/common'
gcc -I../libtp -I../gdbm -I../xpm  -I/usr/include -I/usr/X11R6/include   -c -o doincl.o doincl.c
In file included from ../h/rt.h:10,
                 from doincl.c:14:
../h/../h/sys.h:374:25: error: AL/altypes.h: No such file or directory
../h/../h/sys.h:375:28: error: AL/alexttypes.h: No such file or directory
../h/../h/sys.h:379:22: error: AL/alut.h: No such file or directory
make[1]: *** [doincl.o] Error 1
make[1]: Leaving directory `/home/dscholl/abs/unicon/src/unicon/src/common'
make: *** [Common] Error 2
==> ERROR: Build Failed.  Aborting...

I found one of these in the freealut package, but I don't know where the others can be obtained. This means that freealut + wherever you get the other missing headers need to be added to your PKGBUILD dependencies. There is more discussion in the README about problematic headers, which you may have to deal with. If you study the "Unicon" target in your post-configure Makefile, you will see the commands that cd into the various source directories and run the local Makefiles. This is as much help as I can give you on Step 2.

Third step: make install
In unicon, this step looks like

make Install dest=$startdir/pkg/myunicondirectory

If you page through the post-configure Makefile, you can examine the commands in the Install target. There are about a dozen test commands, then a bunch of cp commands. Inspection shows that the Makefile will make the dest directory, but not its parents, so if you use, e.g.,  $startdir/pkg/opt/unicon, you will need to run "mkdir $startdir/pkg/opt" yourself first, by putting it in the build script above "make Install". (Note that if you actually put unicon in opt, you will need to provide a script to go in /etc/profile.d to fix up the paths. Alternatively, you can put unicon in a temporary directory and then move the different types of files into their standard Arch locations. This is getting beyond the scope of this post, however.)

This should be enough to get you unstuck, at least. One last thing, watch out for case; upper vs. lower case is significant in Makefiles.

Offline

Board footer

Powered by FluxBB