After a clean checkout: $ ./autogen.sh $ ./configure --prefix=/home/mlunter/projekte/xfce/xfce4-volstatus/inst/ $ make [...] xfce-volstatus-icon.c:35:36: error: xfce-volstatus-marshal.h: No such file or directory xfce-volstatus-icon.c: In function ‘xfce_volstatus_icon_class_init’: xfce-volstatus-icon.c:128: error: ‘xfce_volstatus_marshal_VOID__OBJECT_BOOLEAN’ undeclared (first use in this function) [...] Fixed by: $ ./configure --prefix=/home/mlunter/projekte/xfce/xfce4-volstatus/inst/ --enable-maintainer-mode Seems that xfce-volstatus-marshal.h/.c are not created in normal build mode. I didn't check without using --prefix since I installed the required ghal-0 there. Regards, Michael
Are you compiling from svn, or a release tarball?
(In reply to comment #1) > Are you compiling from svn, or a release tarball? Sorry, forgot to state that explicitly... checked out from svn. In the meantime I looked into xfce4-volstatus-icon/xfce4-volstatus-icon/Makefile.am and understood the problem... I assume the reason for putting the generation of xfce-volstatus-marshal.h/.c in the conditional is that not every "normal" developer has "glib-genmarshal" installed? Then I would propose to change the instructions on http://goodies.xfce.org/projects/applications/xfce4-volstatus-icon since with an svn checkout the build fails. Something like: "Replace configure with autogen.sh if checking the code out of the Subversion repository instead of using a source tarball. Run ./configure --prefix=<install_path> --enable-maintainer-mode to generate the required source files." Does glib-genmarshal generate platform dependent code? Otherwise I'd just add both files to the repo...
(In reply to comment #2) > Sorry, forgot to state that explicitly... checked out from svn. > In the meantime I looked into > xfce4-volstatus-icon/xfce4-volstatus-icon/Makefile.am and understood the > problem... I assume the reason for putting the generation of > xfce-volstatus-marshal.h/.c in the conditional is that not every "normal" > developer has "glib-genmarshal" installed? No, it's because not every normal *user* needs to have glib-genmarshal installed. That's generally what maintainer-mode is for: disabling rules that developers need but users don't. The generated files are distributed with tarballs, so the rules to generate them aren't needed. > Then I would propose to change the instructions on > http://goodies.xfce.org/projects/applications/xfce4-volstatus-icon > since with an svn checkout the build fails. Something like: > > "Replace configure with autogen.sh if checking the code out of the Subversion > repository instead of using a source tarball. Run > ./configure --prefix=<install_path> --enable-maintainer-mode > to generate the required source files." If you run autogen.sh, it passes --enable-maintainer mode. If you choose to run configure manually -- which you shouldn't need to do, as --enable-maintainer-mode also enables the auto-rebuild rules for the Makefiles, then you're on your own. > Does glib-genmarshal generate platform dependent code? Otherwise I'd just add > both files to the repo... No, I don't store generated files in svn except for a few special cases.
(In reply to comment #3) > (In reply to comment #2) > > Sorry, forgot to state that explicitly... checked out from svn. > > In the meantime I looked into > > xfce4-volstatus-icon/xfce4-volstatus-icon/Makefile.am and understood the > > problem... I assume the reason for putting the generation of > > xfce-volstatus-marshal.h/.c in the conditional is that not every "normal" > > developer has "glib-genmarshal" installed? > > No, it's because not every normal *user* needs to have glib-genmarshal > installed. That's generally what maintainer-mode is for: disabling rules that > developers need but users don't. Ok agreed. > > The generated files are distributed with tarballs, so the rules to generate > them aren't needed. > > > Then I would propose to change the instructions on > > http://goodies.xfce.org/projects/applications/xfce4-volstatus-icon > > since with an svn checkout the build fails. Something like: > > > > "Replace configure with autogen.sh if checking the code out of the Subversion > > repository instead of using a source tarball. Run > > ./configure --prefix=<install_path> --enable-maintainer-mode > > to generate the required source files." > > If you run autogen.sh, it passes --enable-maintainer mode. If you choose to > run configure manually -- which you shouldn't need to do, as > --enable-maintainer-mode also enables the auto-rebuild rules for the Makefiles, > then you're on your own. Ok, fine. How do I pass then a prefix? ghal-0 is not installed in a standard location since I compiled it myself and don't want to install it globally. > > > Does glib-genmarshal generate platform dependent code? Otherwise I'd just add > > both files to the repo... > > No, I don't store generated files in svn except for a few special cases. Ok. Thanks for your answers.
(In reply to comment #4) > (In reply to comment #3) > > (In reply to comment #2) > > > Sorry, forgot to state that explicitly... checked out from svn. > > > In the meantime I looked into > > > xfce4-volstatus-icon/xfce4-volstatus-icon/Makefile.am and understood the > > > problem... I assume the reason for putting the generation of > > > xfce-volstatus-marshal.h/.c in the conditional is that not every "normal" > > > developer has "glib-genmarshal" installed? > > > > No, it's because not every normal *user* needs to have glib-genmarshal > > installed. That's generally what maintainer-mode is for: disabling rules that > > developers need but users don't. > > Ok agreed. > > > > > The generated files are distributed with tarballs, so the rules to generate > > them aren't needed. > > > > > Then I would propose to change the instructions on > > > http://goodies.xfce.org/projects/applications/xfce4-volstatus-icon > > > since with an svn checkout the build fails. Something like: > > > > > > "Replace configure with autogen.sh if checking the code out of the Subversion > > > repository instead of using a source tarball. Run > > > ./configure --prefix=<install_path> --enable-maintainer-mode > > > to generate the required source files." > > > > If you run autogen.sh, it passes --enable-maintainer mode. If you choose to > > run configure manually -- which you shouldn't need to do, as > > --enable-maintainer-mode also enables the auto-rebuild rules for the Makefiles, > > then you're on your own. > > Ok, fine. How do I pass then a prefix? ghal-0 is not installed in a standard > location since I compiled it myself and don't want to install it globally. I didn't know that configure parameters can be passed to autogen.sh... Passing --prefix to autogen.sh runs configure with the right parameters. Problem solved...
Actually what you're really looking for is the env var PKG_CONFIG_PATH... But yeah, I suppose using the same prefix for dependencies will work as well.
(In reply to comment #6) > Actually what you're really looking for is the env var PKG_CONFIG_PATH... Yeah, you're right... I've set PKG_CONFIG_PATH and forgot about it. I've tested un-setting the var and just passing --prefix to autogen.sh: configuration error --> ghal-0 not found. So the correct fix is to set PKG_CONFIG_PATH if ghal-0 is installed in a non-standard location. Thx for your help.