Makefile for GTK2 programs?



What CFLAGS and LIBS I should use in Makefiles?
I installed GTK2 to home directory, and thus I won't use lddconfig.
My programs should take all from ~/gtk2/, and nothing from
/usr/include/gtk-1.2/ and nothing gtk-related from /usr/lib/.

GTK2 does not have gtk-config program. It made things easier
in gtk1.2:

  CC=gcc -O2 -Wall
  CFLAGS = `gtk-config --cflags`
  LIBS= `gtk-config --libs` -lm -ljpeg -lpng

Is there away to get all CFLAGS and LIBS by checking the pkgconfig file?
  ~/gtk2/lib/pkgconfig/gtk+-2.0.pc

I have now the following in Makefile. Very messy. It does not work;
I get errors: undefined reference to `gtk_text_view_new' and the like.

  CC=gcc -O2 -Wall
  CFLAGS= -I/home/juhana/gtk2/include/glib-2.0 -I/home/juhana/gtk2/include/gtk-2.0 -I/home/juhana/gtk2/lib/glib-2.0/include -I/home/juhana/gtk2/include/cairo -I/home/juhana/gtk2/include/pango-1.0 -I/home/juhana/gtk2/lib/gtk-2.0/include -I/home/juhana/gtk2/include/atk-1.0
  LIBS= -L/home/juhana/gtk2/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -ljpeg -lpng

  O_ESPBROWSER=mylib/filesdirs.o mylib/buffer.o mylib/image.o mylib/gsl_taus.o mylib/clock.o mylib/mmapfile.o mylib/sprint.o mylib/arrays.o espbrowser.o

  all:: espbrowser

  espbrowser: $(O_ESPBROWSER)
              $(CC) $(CFLAGS) -o espbrowser $(O_ESPBROWSER) $(LIBS)


I use this include command in the C code:
  #include "/home/juhana/gtk2/include/gtk-2.0/gtk/gtk.h"
I'm afraid it won't help because gtk.h uses
  #include <gdk/gdk.h>
which may be "/usr/include/gtk-1.2/gdk/gdk.h".


How the linked ld works? My programs are simple. Perhaps I could
write a script to compile and link everything explicitly. But this
include file business worries me still.

This is so frustating. I will return to GTK 1.2 soon.
First Ubuntu failed to install GTK2, and now this!

I could start writing my programs under demos/gtk-demo/ and compile
the demo. But then I don't understand how to add my mylib/mmapfile.o
etc. files to the configure system. :-(

Help needed.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]