473,769 Members | 2,081 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

autoconf and shared library

I hope I am posting this to the right newsgroup. I tried submitting this to the
au******@gnu.or g mailing list, but I see no activity. If this is the wrong
newsgroup, I would appriciate a reference to a different source.

My question was:

One of my source files uses the library:

#include <openssl/md5.h>

This forces me to add /usr/lib/libcrypto.so to the gcc command when I link the
object to produce an executable for instance. My gcc command looks something
like below:

gcc --pedantic -Wall -std=c99 -O2 -g -O2 /usr/lib/libcrypto.so -o main Main.o
my_md5.o

I was studying autoconf today and was wondering how I can assert that the user
compiling does in fact have the libcrypto.so shared object.

e.g. ./configure would check to make sure libcrypto.so is available... at least
it's functionality--the function MD5_Init is defined for example.

Is this possible?

Second Question:

As programs grow in complexity and require many of these shared objects, what is
the best way to assure portability? Do I include the code for libcrypto.c for
the user to compile if they don't have libcrypto.so? Or do I provide the user
with an unfriendly error message from the compiler.

Also, the location of my libcrypto.so object may differ from other peoples. How
do I deal with that?

Thanks,
Matt
Mar 26 '06 #1
11 2540

Matt Kowalczyk wrote:
I hope I am posting this to the right newsgroup. I tried submitting this to the
au******@gnu.or g mailing list, but I see no activity. If this is the wrong
newsgroup, I would appriciate a reference to a different source.
This is indeed the wrong newsgroup, but it seems you originally posted
this in the correct one with no reply, which is a good enough excuse
for me.

My question was:

One of my source files uses the library:

#include <openssl/md5.h>

This forces me to add /usr/lib/libcrypto.so to the gcc command when I link the
object to produce an executable for instance. My gcc command looks something
like below:

gcc --pedantic -Wall -std=c99 -O2 -g -O2 /usr/lib/libcrypto.so -o main Main.o
my_md5.o

I was studying autoconf today and was wondering how I can assert that the user
compiling does in fact have the libcrypto.so shared object.

e.g. ./configure would check to make sure libcrypto.so is available... at least
it's functionality--the function MD5_Init is defined for example.

Is this possible?

Second Question:

As programs grow in complexity and require many of these shared objects, what is
the best way to assure portability? Do I include the code for libcrypto.c for
the user to compile if they don't have libcrypto.so? Or do I provide the user
with an unfriendly error message from the compiler.

Also, the location of my libcrypto.so object may differ from other peoples. How
do I deal with that?
See for example:

http://roo.no-ip.org/howtos/autoconf.php#head

You could bail out if the required functionality is missing using
something like:

# Search for specified function in specified libraries
AC_SEARCH_LIBS( [BK_set_key],
[crypto],
[],
[AC_MSG_ERROR( [Cannot find the libcrypto library, needed to build
this package.] )] )

You also need to remove the direct reference to libcrypto from your
Makefile.in and instead use @LDFLAGS@ for the above to work.

The above would work even if the libcrypto was missing but the
functionality lives in libc. It also works if the library lives in e.g.
/usr/local.

Thanks,
Matt


Hope this helps.

--
Axel

Mar 26 '06 #2
li**********@gm ail.com wrote:
Matt Kowalczyk wrote:
I hope I am posting this to the right newsgroup. I tried submitting this to the
au******@gnu.or g mailing list, but I see no activity. If this is the wrong
newsgroup, I would appriciate a reference to a different source.


This is indeed the wrong newsgroup, but it seems you originally posted
this in the correct one with no reply, which is a good enough excuse
for me.


If this is the case, why wouldn't you post your response in the correct
forum where it would be on topic?

Robert Gamble

Mar 26 '06 #3
On 2006-03-26, Robert Gamble <rg*******@gmai l.com> wrote:
li**********@gm ail.com wrote:
Matt Kowalczyk wrote:
> I hope I am posting this to the right newsgroup. I tried submitting this to the
> au******@gnu.or g mailing list, but I see no activity. If this is the wrong
> newsgroup, I would appriciate a reference to a different source.


This is indeed the wrong newsgroup, but it seems you originally posted
this in the correct one with no reply, which is a good enough excuse
for me.


If this is the case, why wouldn't you post your response in the correct
forum where it would be on topic?

Robert Gamble


Out of curiosity where is the correct newsgroup for C programmers to
discuss (multi-platform) tools and libraries?
Mar 26 '06 #4
Matt Kowalczyk <ma******@comca st.net> writes:
I hope I am posting this to the right newsgroup. I tried
submitting this to the au******@gnu.or g mailing list, but I see
no activity.


There's plenty of activity on that mailing list, so you must be
doing something wrong.
--
"I've been on the wagon now for more than a decade. Not a single goto
in all that time. I just don't need them any more. I don't even use
break or continue now, except on social occasions of course. And I
don't get carried away." --Richard Heathfield
Mar 26 '06 #5

Richard G. Riley wrote:
On 2006-03-26, Robert Gamble <rg*******@gmai l.com> wrote:
li**********@gm ail.com wrote:
Matt Kowalczyk wrote:
> I hope I am posting this to the right newsgroup. I tried submitting this to the
> au******@gnu.or g mailing list, but I see no activity. If this is the wrong
> newsgroup, I would appriciate a reference to a different source.

This is indeed the wrong newsgroup, but it seems you originally posted
this in the correct one with no reply, which is a good enough excuse
for me.


If this is the case, why wouldn't you post your response in the correct
forum where it would be on topic?

Robert Gamble


Out of curiosity where is the correct newsgroup for C programmers to
discuss (multi-platform) tools and libraries?


I am not aware of any such all encompassing newsgroup nor am I
convinced there should be one. What is your point?

Robert Gamble

Mar 26 '06 #6
On 2006-03-26, Robert Gamble <rg*******@gmai l.com> wrote:

Richard G. Riley wrote:
On 2006-03-26, Robert Gamble <rg*******@gmai l.com> wrote:
> li**********@gm ail.com wrote:
>> Matt Kowalczyk wrote:
>> > I hope I am posting this to the right newsgroup. I tried submitting this to the
>> > au******@gnu.or g mailing list, but I see no activity. If this is the wrong
>> > newsgroup, I would appriciate a reference to a different source.
>>
>> This is indeed the wrong newsgroup, but it seems you originally posted
>> this in the correct one with no reply, which is a good enough excuse
>> for me.
>
> If this is the case, why wouldn't you post your response in the correct
> forum where it would be on topic?
>
> Robert Gamble
>


Out of curiosity where is the correct newsgroup for C programmers to
discuss (multi-platform) tools and libraries?


I am not aware of any such all encompassing newsgroup nor am I
convinced there should be one. What is your point?

Robert Gamble


Point? I did not make a point. I asked if their was a general meeting
place for C programmers to discuss tools used to facilitate C
development. Looking back at the text above, I'm surprised it wasn't
relatively clear.

You can be sure I wasnt trying to convince you of anything.
Mar 26 '06 #7

Robert Gamble wrote:
li**********@gm ail.com wrote:
Matt Kowalczyk wrote:
I hope I am posting this to the right newsgroup. I tried submitting this to the
au******@gnu.or g mailing list, but I see no activity. If this is the wrong
newsgroup, I would appriciate a reference to a different source.
This is indeed the wrong newsgroup, but it seems you originally posted
this in the correct one with no reply, which is a good enough excuse
for me.


If this is the case, why wouldn't you post your response in the correct
forum where it would be on topic?


My bad. I am not subscribed to that mailing list, nor did I have the
subject of the original message, so doing the extra digging required
would have taken some additional effort, which is probably why the
thought never occured to me.

Robert Gamble


--
Axel

Mar 26 '06 #8
On Sun, 26 Mar 2006 18:17:09 +0200, in comp.lang.c , "Richard G.
Riley" <rg****@gmail.c om> wrote:
On 2006-03-26, Robert Gamble <rg*******@gmai l.com> wrote:
li**********@gm ail.com wrote:
Matt Kowalczyk wrote:
> I hope I am posting this to the right newsgroup. I tried submitting this to the
> au******@gnu.or g mailing list, but I see no activity. If this is the wrong
> newsgroup, I would appriciate a reference to a different source.

This is indeed the wrong newsgroup, but it seems you originally posted
this in the correct one with no reply, which is a good enough excuse
for me.


If this is the case, why wouldn't you post your response in the correct
forum where it would be on topic?

Robert Gamble


Out of curiosity where is the correct newsgroup for C programmers to
discuss (multi-platform) tools and libraries?


I doubt there is one - the details of tools tend to be discussed
either in groups specific to the tool (if they're in general enough
use) or in groups specific to the OS or compiler environment.
Mark McIntyre
--
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it."
--Brian Kernighan
Mar 26 '06 #9
Mark McIntyre wrote:
"Richard G. Riley" <rg****@gmail.c om> wrote:
On 2006-03-26, Robert Gamble <rg*******@gmai l.com> wrote:
li**********@gm ail.com wrote:
Matt Kowalczyk wrote: I hope I am posting this to the right newsgroup. I tried
> submitting this to the au******@gnu.or g mailing list, but I
> see no activity. If this is the wrong newsgroup, I would
> appriciate a reference to a different source.

This is indeed the wrong newsgroup, but it seems you originally
posted this in the correct one with no reply, which is a good
enough excuse for me.

If this is the case, why wouldn't you post your response in the
correct forum where it would be on topic?


Out of curiosity where is the correct newsgroup for C programmers
to discuss (multi-platform) tools and libraries?


I doubt there is one - the details of tools tend to be discussed
either in groups specific to the tool (if they're in general enough
use) or in groups specific to the OS or compiler environment.


At a guess, comp.programmin g and comp.os.linux.m isc would seem to
be suitable.

--
Some informative links:
news:news.annou nce.newusers
http://www.geocities.com/nnqweb/
http://www.catb.org/~esr/faqs/smart-questions.html
http://www.caliburn.nl/topposting.html
http://www.netmeister.org/news/learn2quote.html
Mar 26 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
2057
by: Michael Ströder | last post by:
HI! Is it possible to probe for installed libs with DistUtils? I'd like to automatically search for optional libs and adjust C compiler switchers before starting the build of a the extension module. Ciao, Michael.
0
1336
by: Mark Asbach | last post by:
Hi Python-Pros, I'm working on a project using an embedded and extended python interpreter. We use autoconf/automake/libtool and have our own autoconf macros for detecting a python installation. Everythings works fine under traditional UNIX, but since we're trying to port to other platforms like Mac OS or Windows, we are in trouble. My question is: how can I find out, which compiler and linker options are necessary to build a custom...
0
1318
by: Heiko Wundram | last post by:
Hi all! Although it's slightly OT: I've written PAM, NSS and PPPd plugins which do authentication (and other things) against a running Python daemon, communicating via a Unix domain socket. For the C part of the whole adventure (the modules for PAM, NSS and PPPd), I'd love to have some form of autoconf/automake installation routine before I distribute the whole thing, but I myself am not knowledgeable with the use of automake and...
1
4422
by: AH | last post by:
I have two functions in my shared library which are declared as follows: void setName(const std::string& str); std::vector<std::string> getInfo(); Since the code is compiled and in shared library. Every thing is great if the customer of my shared library is using the same compiler version (and same STL version). I am wondering if the customer changes their compiler version (or STL version) which may have same interface
0
1215
by: Hallvard B Furuseth | last post by:
I want to use Python as an extension language in a package which uses autoconf. That means its and Python's autoconf #defines can conflict, so I can't safely #include both <Python.h> and the package's own include files:-( Do anyone have a safe way to #include at least <object.h> without <pyconfig.h>? E.g. copy the files (and <pyport.h>'s PyAPI_FUNC/PyAPI_DATA) and rename the autoconf macros - and fail compilation if that wouldn't work?
0
4430
by: Tom | last post by:
I've been trying to install the PECL library libssh2 for secure shell2 functions. I'm on a shared webhost which allows custom php installations that run as a CGI binary. I've been trying to configure libssh2 but I cannot get the server I'm on to find autoconf... it originally was not installed on the server, so I downloaded, unpacked, and installed it successfully to a custom folder in my /home directory (along with autoheader). ...
1
6591
by: Tom | last post by:
I'm trying to install the Fileinfo extensions from a PECL library called "fileinfo". The install fails because autoconf cannot be found. I have a custom installation of autoconf running out of my home directory (I do not have root access), so it's not in the default location (presumably something like /usr/bin/autoconf). I don't know how to manually force ./configure and make to look for autoconf in a custom location. I would guess...
1
5037
by: Daniel Nogradi | last post by:
It might be slightly off topic here but couldn't find a more suitable place for this question: I'm trying to build the python binding for ming -- http://ming.sf.net -- but for some reason the python macro for autoconf -- python.m4 -- doesn't seem to detect my python installation correctly. The strange thing is that it seemingly detects everything correctly, but a final check still fails. I have the python 2.5 source distribution...
1
1284
by: Ruben | last post by:
Where is the best news group to discuss autoconf I have to tip my hat to the GNU developers becaause autoconf seems like an animal, impossible to learn. Between M4, C Marcos, GDB, C++, C- and GTK/Gnome, its a huge mindshare to work with, and then throw in VIM macros and/EMACS, you need to be a guinius to make any contribtuions today to anything GNU i'm going back to my sendmail configuration files ;)
0
9589
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
10049
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9997
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9865
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7413
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5310
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5448
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3965
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3565
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.