473,659 Members | 2,671 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

C library package design

Hi!

I know this question is more suitable for gnu.utils group but im
posting here, since that group looks almost dead (last post 1 May with
no reply yet) and I need the answer much faster.

I am going to release an ANSI C library soon but I am still confused
about the automake package design I should use. The main trouble is
that I am also distributing some example programs to show the use of
library but don't really know how / where the compilation of those
should take place.

First thing that troubles me is, whether I should build the examples
in the same run as the library itself, using a single configure script
with an additional --with-examples argument added to conditionally run
the makefile in the examples directory?

Or should I rather use another configure script inside the examples
directory and invoke it from the main script via AC_CONFIGURE_SU BDIRS?
Would this mean I would need to run automake, autoheader, autoconf in
the examples folder separately? Would I also need then to maintain the
examples subfolder as a complete separate package and add standard
files for an automake package there as well (COPYING, AUTHORS,
NEWS...)?

The design of the package is quite important because the examples
depend on the library being built so the library must be built first
and maybe there should be another check in the configuration of
example to see if the library was really built. Furthermore, should
the examples link to the uninstalled library file and include the
uninstalled headers directly from the source or should they use the
installed files?

Moreover, one of the examples requires some additional libraries to
link to. This means that the configuration should also check whether
that one is installed in the system. And now I'm puzzled because it
seems like the AC_CHECK_LIB always adds the library it found to the
LIBS string automatically and thus the library only required by one
example would be used when linking the library itself as well. Does
this mean I should definitely use another configure script for
examples?

Basically, I am just asking which of these ways is the usual one, the
one that a user would expect from a library package and is common
among existing libraries. What I want is to give the user of the
library a choice whether to build the examples or not and there should
be additional configuration checks in case the examples are going to
be built. I am just asking about the most common way to achieve this.

thanks,
Ivan Leben

May 15 '07 #1
6 1709

<iv********@gma il.comwrote in message
news:11******** **************@ h2g2000hsg.goog legroups.com...
I am going to release an ANSI C library soon but I am still confused
about the automake package design I should use.
Basically, I am just asking which of these ways is the usual one, the
one that a user would expect from a library package and is common
among existing libraries.
The code is ANSI C. So just put the source files, uncompressed (:-() on a
website somewhere and let people download them.
gcc *.c will build the library under unix, under MS Win you've got to mess
about with project files, but Windows programmers are used to that.
--
Free games and programming goodies.
http://www.personal.leeds.ac.uk/~bgy1mm

May 15 '07 #2
In article <11************ **********@h2g2 000hsg.googlegr oups.com>,
<iv********@gma il.comwrote:
>I am going to release an ANSI C library soon but I am still confused
about the automake package design I should use. The main trouble is
that I am also distributing some example programs to show the use of
library but don't really know how / where the compilation of those
should take place.
>First thing that troubles me is, whether I should build the examples
in the same run as the library itself, using a single configure script
with an additional --with-examples argument added to conditionally run
the makefile in the examples directory?
>The design of the package is quite important because the examples
depend on the library being built so the library must be built first
and maybe there should be another check in the configuration of
example to see if the library was really built. Furthermore, should
the examples link to the uninstalled library file and include the
uninstalled headers directly from the source or should they use the
installed files?
Traditionally they would use the uninstalled versions, and they
would be built via 'make test', so that people can check that
everything is working before they install the new version
(thus possibly overwriting the old working version)
--
I was very young in those days, but I was also rather dim.
-- Christopher Priest
May 15 '07 #3
iv********@gmai l.com writes:
I know this question is more suitable for gnu.utils group but im
posting here, since that group looks almost dead (last post 1 May with
no reply yet) and I need the answer much faster.
I'd recommend asking automake questions at au******@gnu.or g.
--
Ben Pfaff
http://benpfaff.org
May 15 '07 #4
iv********@gmai l.com writes:
I know this question is more suitable for gnu.utils group but im
posting here, since that group looks almost dead (last post 1 May with
no reply yet) and I need the answer much faster.
[...]

Your question isn't really about the C programming language.

Maybe comp.unix.progr ammer would be more suitable?

--
Keith Thompson (The_Other_Keit h) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
May 15 '07 #5
Malcolm McLean said:

<snip>
The code is ANSI C. So just put the source files, uncompressed (:-()
on a website somewhere and let people download them.
gcc *.c will build the library under unix,
No, it won't. But gcc -c *.c will compile all the files, and then you
need to build the library using a tool such as ar.
under MS Win you've got to
mess about with project files, but Windows programmers are used to
that.
Actually, you don't have to mess about with project files at all. That's
just a myth.

See http://www.cpax.org.uk/prg/portable/c/statlibs.php for instructions
on how to build a static library under Linux, Windows (Borland and
Microsoft), and OS X (although my OS X info is second-hand, so I can't
actually vouch for its accuracy). And not a project file in sight.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
May 15 '07 #6
<iv********@gma il.comschrieb im Newsbeitrag
news:11******** **************@ h2g2000hsg.goog legroups.com...
Hi!

I know this question is more suitable for gnu.utils group but im
posting here, since that group looks almost dead (last post 1 May with
no reply yet) and I need the answer much faster.
If you haven't seen a post in this group for more than 2 weks, you most
probably won't see replies to your post as your newsfeed seems to be severly
broken.

Other than that your post in this group is utterly off-topic.

Bye, Jojo
May 16 '07 #7

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

Similar topics

51
3004
by: Reinhold Birkenfeld | last post by:
Hello, at the moment python-dev is discussing including Jason Orendorff's path module into the standard library. Do you have any other good and valued Python modules that you would think are bug-free, mature (that includes a long release distance) and useful enough to be granted a place in the stdlib? For my part, ctypes seems like a suggestion to start with.
4
5495
by: Rex_chaos | last post by:
Hi all, I am looking for a high-performance container(matrix and vector) for numerical computation. Someone recommended the boost::multi_array. After having looked at the documentation, I know several more candidates from it. They are : MTL, blitz++, boost::ublas. I have no idea which one is the best. The documentation of these packages are trying to convince me that they are free from drawback :)) I need someone to tell me the experience...
4
3349
by: womanontheinside | last post by:
I have a library which was written in C, you call a function, it provides the result by a callback to specific function names. I am trying to wrap the calls to this inside a class, but this causes a problem with the callbacks, for example: class X { public: add(); };
23
2210
by: Rotem | last post by:
Hi, while working on something in my current project I have made several improvements to the logging package in Python, two of them are worth mentioning: 1. addition of a logging record field %(function)s, which results in the name of the entity which logged the record. My version even deduces the class name in the case which the logger is a bound method, and assuming the name of the "self" variable is indeed "self".
0
3127
by: ka | last post by:
I'm using Corwnwood.Magic library for docking in my application. My application to let the users to create their screen look to show some particular data. I treid to dock my things in the way, Left Side: ToolBox Middle: WorkPanel Right: Package Explorer + PropertyWindow WorkToolBox, Package Explore, PrepertyWindow : derived from Content
0
1002
by: Erik Read | last post by:
I have an issue with using a .Net DLL as a COM object in an ASP.NET page. First a little background. 1. The web application is for intranet use only. 2. The web site will be included in the Trusted Zone 3. Access is required to the local file system to move a file from there to a designated network share. 4. The user must be able to pick the file in question 5. Design requires that the OpenFileDialog filter the extensions 6. A separate...
3
2476
by: M | last post by:
I'm in the process of writing some C++ libraries. The only references to library design and writing I have are the compiler and some extremely overpriced commercial libaries (which have some fundamental design issues in certain areas). Can anyone suggest a good detailed read on building libraries (eg. book, online source)? Regards, Michael
5
7717
by: sophie_newbie | last post by:
OK this might seem like a retarded question, but what is the difference between a library and a module? If I do: import string am I importing a module or a library? And if i do string.replace() am I using a module or a function or a
3
4434
by: MyPetSlug | last post by:
Hello Guys, Using Pythong 2.4 and py2exe 0.6.6. So, I've created a wxPython application that I use for testing. The idea is to have a tests directory so that every time the application starts, it looks in the directory and loads the tests it sees into a list it uses during runtime. So, I've got this working fine on my machine locally, but now I'm trying to get it working right with py2exe. My problem is, if I include my 'tests" package in...
0
8427
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
8330
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
1
6178
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
5649
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4175
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
4334
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2749
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
1975
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1737
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.