Felix D.
Felix D.

Reputation: 2220

'glib.h' file not found on Max OSX 10.9

I'm trying to compile msg2pdf which is a tool to convert messages in mu4e (mu for Emacs) to pdf. I'm receiving the following error :

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in .
  CC       msg2pdf.o
In file included from msg2pdf.c:20:
In file included from ../../lib/mu-msg.h:24:
../../lib/mu-flags.h:24:10: fatal error: 'glib.h' file not found
#include <glib.h>
         ^
1 error generated.
make[2]: *** [msg2pdf.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Oddly, I checked the Makefile and GLIB_CFLAGS seem to be pointing on the right folder (where brew installed it). In fact, glib.h is located in /usr/local/Cellar/glib/2.40.0_1/include/glib-2.0.

GLIB_CFLAGS = -D_REENTRANT -I/usr/local/Cellar/glib/2.40.0_1/include/glib-2.0 -I/usr/local/Cellar/glib/2.40.0_1/lib/glib-2.0/include -I/usr/local/opt/gettext/include 
GLIB_LIBS = -L/usr/local/Cellar/glib/2.40.0_1/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl 

How can I succeed compiling the file? Is there any command line "hack" I can use while calling make?

Edit Here are the files in the directory https://github.com/flexdec/temp

Edit 2 This is the output when using make V=1

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in .
gcc -DHAVE_CONFIG_H -I. -I../..  -I../../lib   -DICONDIR='""'  -Wall -Wextra -Wno-unused-parameter -Wdeclaration-after-statement -g -O2 -MT msg2pdf.o -MD -MP -MF .deps/msg2pdf.Tpo -c -o msg2pdf.o msg2pdf.c
In file included from msg2pdf.c:20:
In file included from ../../lib/mu-msg.h:24:
../../lib/mu-flags.h:24:10: fatal error: 'glib.h' file not found
#include <glib.h>
         ^
1 error generated.
make[2]: *** [msg2pdf.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Edit 3 The new error I get using make V=1 now that GLIB_CFLAGS issue is fixed

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in .
gcc -DHAVE_CONFIG_H -I. -I../..  -I../../lib   -D_REENTRANT -I/usr/local/Cellar/glib/2.40.0_1/include/glib-2.0 -I/usr/local/Cellar/glib/2.40.0_1/lib/glib-2.0/include -I/usr/local/opt/gettext/include  -DICONDIR='""'  -Wall -Wextra -Wno-unused-parameter -Wdeclaration-after-statement -g -O2 -MT msg2pdf.o -MD -MP -MF .deps/msg2pdf.Tpo -c -o msg2pdf.o msg2pdf.c
msg2pdf.c:24:10: fatal error: 'gtk/gtk.h' file not found
#include <gtk/gtk.h>
         ^
1 error generated.
make[2]: *** [msg2pdf.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Upvotes: 2

Views: 6507

Answers (2)

djcb
djcb

Reputation: 399

You need to run ./configure in mu's top-level directory on the machine where you want to compile it. configure will tell you about any missing dependencies. Optional components (such as msg2pdf) are skipped if their dependencies are not there.

Then, after configure succeeds, do a 'make'.

In any case, if configure has run successfully, the top-level 'make' should succeed as well (that's why we have configure!), otherwise please file a bug.

Upvotes: 0

nemequ
nemequ

Reputation: 17472

make V=1 instead of make will tell you what the C compiler command looks like (instead of just "CC msg2pdf.o")—check that and make sure it includes the flags you need.

Based on a quick look at your Makefile.am, you are including $(GTK_CFLAGS) and $(WEBKIT_CFLAGS) in your AM_CPPFLAGS but not $(GLIB_CFLAGS).

Upvotes: 2

Related Questions