Re: [Anjuta-list] Newbie Question: Checking for Libs



I totally agree with that,

I just want to add that all macros you can write to add specific checks are
m4 macros and usually stored in .m4 files. Autoconf site handle a good
list of such macros so far. They can be found at tha AutoConf Macro Archive
(http://www.gnu.org/software/ac-archive/index.html).

There is so far macros for checking c++ features (like namespaces,exceptions...) c features, java, cross-compilation and a lot of packages : mysql, mico, apache,
perl, zlib, ssl ...

So, first, check here if your needed macros is not existing already. And if you
write one, send it to the autoconf macro archive to help others.

Best regards. Erwan.

Biswapesh Chattopadhyay wrote:

This is a pretty good question and I'm afraid the answer is: we do a
pretty shitty job of making the user's autotools handling pain easier.
This is mainly due to two reasons:

1) Limitations of our project manager. It does not understand
hierarchies, cannot parse configure.in/Makefile.am, etc., cannot handle
multiple targets, etc. We are hoping to correct this in Anjuta2 and in a
future GNOME2 port of Anjuta1.

2) There is no standard way to check for a particular library, header
file, etc. The GNOME (and KDE I think) teams are trying to standardize
on pkg-config but currently, there are various ways to check for package
installation. The main ways are:
	a) pkg-config. Supported my all GNOME2 (and probably KDE3) packages +
many current libraries. To check for a package which supports
pkg-config, you need to add this to your configure.in:
	PKG_CHECK_MODULES(YOURPACKAGE, yourpackage >= versionnrequired)
	AC_SUBST(YOURPACKAGE_CFLAGS)
	AC_SUBST(YOURPACKAGE_LIBS)

Then in your Makefile.am, you'll need to add:
	INCLUDES += $(YOURPACKAGE_CFLAGS)
	LDFLAGS += $(YOURPACKAGE_LIBS)

(Substitute YOURPACKAGE with your package name in caps and yourpackage
with your package name in lowercase)

	b) The various package-config scripts. These are available for GNOME
1.x, wxWIndows, PCRE, curl and various other packages. If a package does
not support pkg-config, it is very likely that it will support a package
specific config script. For example, if you want to use GLib in your
program, you add this to your configure.in:
	AC_PATH_PROG(GLIB_CONFIG, glib-config,no)
	if test x$GLIB_CONFIG = xno; then
	  AC_MSG_ERROR(Couldn't find glib-config, please install the GLib
package.)
	fi
	GLIB_CFLAGS=`glib-config --cflags`
	GLIB_LIBS=`glib-config --libs`
	AC_SUBST(GLIB_LIBS)
	AC_SUBST(GLIB_CFLAGS)

Then, in your Makefile.am, you'll need to add:
	INCLUDES += $(GLIB_CFLAGS)
	LDFLAGS += $(GLIB_LIBS)

	c) If you want to check for a library header file, you can use the
AC_CHECK_HEADERS macro like this:
		AC_CHECK_HEADER(myheader.h)
	This will work provided the headers are in the standard path.

	d) To check is a particular library function is available, you can use
AC_CHECK_LIB. For example, add this to your configure.in to check if you
have a sufficiently recent version of aspell:
	AC_CHECK_LIB(pspell, new_pspell_manager,,[AC_MSG_ERROR("some error")])
	(Example taken directly for balsa)

	e) To simply check for a function, you can use AC_CHECK_FUNCS in your
configure.in like this:
	AC_CHECK_FUNCS(fnmatch)

	f) To check whether something compiles and works, you can use
AC_TRY_COMPILE

There are lots of other ways, most of which have already been made easy
for you through autoconf macros. You can find out more by reading the
macros in /usr/share/aclocal.

The best way to do it is to just copy what others before you have done.
I find it very handy to have the entire GNOME2 CVS on my disk. When I
need to know/use something, I just grep for it and copy-paste it. It is
the fastest and the best way.

Finally, a warning: Since you'll have to make these changes by hand,
make sure that you've set the overwriting of configure.in and
Makefile.am off in Project->Configure.

Hope this helps.

Rgds,
Biswa.

Hi,

I would like to know, how to control the automake/autoconf stuff with
anjuta.
I do not really know much about this, so I hope that anjuta makes it
somehow
easier for me.
How do I tell anjuta to check for a special library, header file, program
and so
on. I go to the project explorer, rightclick->configure project:
Now what I have to type?
If its too basic, please give me an example and/or some info-sources.

Thanks in advance,
                 Andre.






-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
Anjuta-list mailing list
Anjuta-list lists sourceforge net
https://lists.sourceforge.net/lists/listinfo/anjuta-list






-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp
_______________________________________________
Anjuta-list mailing list
Anjuta-list lists sourceforge net
https://lists.sourceforge.net/lists/listinfo/anjuta-list







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