Code Monkey home page Code Monkey logo

Comments (3)

mosteo avatar mosteo commented on June 3, 2024

gtkada uses a makefile for its build. I'm guessing something in that step is failing. I'd try to just alr get gtkada, enter it and issue make manually to see if you get the same error (you should) and diagnose from there.

One thing I see is that there's already gtkada 23.0 in the index. So you may have to alr index --update-all too.

from alire.

johnperry-math avatar johnperry-math commented on June 3, 2024

Thanks for the suggestions. Updating alr's index does indeed make it try to obtain gtkada 23 now. Unfortunately, it quits with the same error.

I then tried the following:

$ cd ~/gtkada_23.0.0_bac4d634/
$ make
make: *** No targets specified and no makefile found.  Stop.

This is a correct response, since ls gives:

$ ls
aclocal.m4  config.guess  contrib          features-17     install-sh           po             xml
alire       config.log    COPYING3         features.old    known-problems-3.14  README.md
alire.toml  config.sub    COPYING.RUNTIME  gtkada_gps.gpr  known-problems.old   shared.gpr.in
ANNOUNCE    configure     docs             gtk.gpr         m4                   src
AUTHORS     configure.ac  doinstall        INSTALL         Makefile.in          testgtk

There is no Makefile! The INSTALL file has the following instructions:

On Unix systems, you'll then just need to run the following command once
GNAT is installed and available in your PATH:

   $ sudo env "PATH=$PATH" ./doinstall

...so I guess make is the wrong thing to try here. I try that:

$ ./doinstall 
Gtk+ binary package not found. Aborting the installation process.

Odd: gtk+ and gtk+-devel 1.2.10-99.fc.37 are both installed. Looking into things further, I find this in doinstall:

# Checks for the presence of a Gtk+ binary package in gtk-bin/
check_gtk_bin() {
   gtk_bin_dir="`pwd`/gtk-bin"
   if test ! -d "$gtk_bin_dir"; then
      echo "Gtk+ binary package not found. Aborting the installation process."
      exit
   fi
}

It's looking for gtk_bin, but there isn't one in the folder.

I don't understand why (a) alr acts as if it's running a makefile when don't see a makefile, and (b) the doinstall command looks for a gtk_bin folder that isn't present.

As noted above, I installed Fedora's gtk+, GtkAda3, and gnatcoll. When I run gprbuild from in the folder of the project I want to build, everything works. I realize that is independent of this issue, but I include it in case it's of interest.

from alire.

mosteo avatar mosteo commented on June 3, 2024

It's true that gtkada doesn't ship with a Makefile, but it generates one with configure. In my system, during alr get gtkada, I see:

ⓘ Running post_fetch actions for gtkada=23.0.0...
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
...

And indeed the actions are:

$ alr action
gtkada=23.0.0:
   Post_Fetch run: ${CRATE_DIR}/./bash -c PATH=${DISTRIB_ROOT}/mingw64/bin:${PATH} ./configure
   Post_Fetch run: ${CRATE_DIR}/./make src/gtkada-intl.adb

So after retrieval, be it with alr get or alr with, the Makefile should exist:

$ ll Makefile
-rw-rw-r-- 1 user user 5.1K May  9 13:54 Makefile

and in fact make will have been invoked as a post-fetch action.

Now, I would try to reproduce these actions by hand. You can do that with:

$ alr get --only gtkada # skips actions and dependencies
$ cd gtkada*
$ ./configure
$./make src/gtkada-intl.adb

gtkada has three dependencies, which are all system packages. If you have already tried a regular alr get gtkada, they should be available already systemwide and the previous alr get --only shouldn't be a problem.

About the gtk_bin folder, I don't have it either. My guess is that the magic in ./configure is relocating to where the system one is installed.

Hope this gives you some pointers. Nonetheless, you can attach a complete log of alr -vvd get --build gtkada to see where your build gets astray.

from alire.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.