mono / gtk-sharp

Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit and the foundation of most GUI apps built with Mono
http://www.mono-project.com/GtkSharp
Other
424 stars 140 forks source link

The "traditional" build instructions don't work #244

Open aaronfranke opened 5 years ago

aaronfranke commented 5 years ago

For building GTK#, the instructions here mention this:

The build is the traditional:

./configure

make

make install

When I try this on my system after cloning the repo:

$ ./configure
bash: ./configure: No such file or directory
$ make
make: *** No targets specified and no makefile found.  Stop.
$ make install
make: *** No rule to make target 'install'.  Stop.

There is a file called configure.ac and when I try to run that:

$ ./configure.ac
bash: ./configure.ac: Permission denied
$ sudo ./configure.ac
sudo: ./configure.ac: command not found
$ sudo bash ./configure.ac
./configure.ac: line 2: syntax error near unexpected token `gtk-sharp,'
./configure.ac: line 2: `AC_INIT(gtk-sharp, 2.99.4)'

Your build instructions don't work or are incomplete.

cyanfish commented 5 years ago

Try running ./autogen.sh instead of ./configure.

aaronfranke commented 5 years ago

./autogen.sh worked, and it should be added to the build instructions. Also, consider changing it to a markdown-formatted document (README.md) so it looks nice on GitHub.

But I still can't build. There is a configuration warning about a different prefix:

configure: WARNING: Prefix to use (/usr/local) is not the same as Mono's (/usr).
        Consider using ./configure --prefix=/usr
        See the README for more information.

And then make has compiler errors:

gui-thread-check.c:90:1: warning: no previous prototype for ‘mono_profiler_startup’ [-Wmissing-prototypes]
 mono_profiler_startup (const char *desc)
 ^~~~~~~~~~~~~~~~~~~~~
gui-thread-check.c: In function ‘mono_profiler_startup’:
gui-thread-check.c:94:2: warning: implicit declaration of function ‘mono_profiler_install’; did you mean ‘mono_profiler_startup’? [-Wimplicit-function-declaration]
  mono_profiler_install (NULL, NULL);
  ^~~~~~~~~~~~~~~~~~~~~
  mono_profiler_startup
gui-thread-check.c:94:2: warning: nested extern declaration of ‘mono_profiler_install’ [-Wnested-externs]
gui-thread-check.c:95:2: warning: implicit declaration of function ‘mono_profiler_install_enter_leave’; did you mean ‘mono_profiler_enable_coverage’? [-Wimplicit-function-declaration]
  mono_profiler_install_enter_leave (simple_method_enter, NULL);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  mono_profiler_enable_coverage
gui-thread-check.c:95:2: warning: nested extern declaration of ‘mono_profiler_install_enter_leave’ [-Wnested-externs]
gui-thread-check.c:96:2: warning: implicit declaration of function ‘mono_profiler_set_events’; did you mean ‘mono_profiler_startup’? [-Wimplicit-function-declaration]
  mono_profiler_set_events (MONO_PROFILE_ENTER_LEAVE);
  ^~~~~~~~~~~~~~~~~~~~~~~~
  mono_profiler_startup
gui-thread-check.c:96:2: warning: nested extern declaration of ‘mono_profiler_set_events’ [-Wnested-externs]
gui-thread-check.c:96:28: error: ‘MONO_PROFILE_ENTER_LEAVE’ undeclared (first use in this function); did you mean ‘MONO_NATIVE_INTERFACE’?
  mono_profiler_set_events (MONO_PROFILE_ENTER_LEAVE);
                            ^~~~~~~~~~~~~~~~~~~~~~~~
                            MONO_NATIVE_INTERFACE
gui-thread-check.c:96:28: note: each undeclared identifier is reported only once for each function it appears in
Makefile:459: recipe for target 'gui-thread-check.lo' failed
make[4]: *** [gui-thread-check.lo] Error 1
make[4]: Leaving directory '/home/aaronfranke/workspace/gtk-sharp/gtk/gui-thread-check/profiler'
Makefile:387: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/aaronfranke/workspace/gtk-sharp/gtk/gui-thread-check'
Makefile:603: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/aaronfranke/workspace/gtk-sharp/gtk'
Makefile:447: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/aaronfranke/workspace/gtk-sharp'
Makefile:375: recipe for target 'all' failed
make: *** [all] Error 2
scx commented 5 years ago

Temporary patch (gtk-sharp-profiler-startup.patch):

diff -Naur gtk-sharp.org/gtk/gui-thread-check/profiler/gui-thread-check.c gtk-sharp/gtk/gui-thread-check/profiler/gui-thread-check.c
--- gtk-sharp.org/gtk/gui-thread-check/profiler/gui-thread-check.c  2018-12-07 05:05:42.325500894 +0100
+++ gtk-sharp/gtk/gui-thread-check/profiler/gui-thread-check.c  2018-12-07 05:40:53.044438289 +0100
@@ -93,6 +93,6 @@

    mono_profiler_install (NULL, NULL);
    mono_profiler_install_enter_leave (simple_method_enter, NULL);
-   mono_profiler_set_events (MONO_PROFILE_ENTER_LEAVE);
+   mono_profiler_set_events (1 << 12);
 }

See also: https://github.com/flathub/org.gnome.gbrainy/pull/4#issue-236756221

aaronfranke commented 4 years ago

The build instructions are still wrong. It still does not contain ./autogen.sh as mentioned above, and autogen.sh doesn't fully work either.