On Mon, 10 Mar 2008, Bob Atkins wrote:
I also was bitten by this include file. Is there some reason that you didn't
put this stuff on linkage.h?
linkage.c is code, not definitions. It does such tasks as driver and
authenticator linkage, application/API version match verification, etc.
This is more fundamental than the environment stuff; c-client itself is
not fully built until the application invokes the linkage.c code. [It is
a last build step, done at runtime.]
There are a few, very limited, cases in which the application may want to
do these steps manually instead of including linkage.c. This is in the
realm of black magic and is utterly unsupported. Put another way, if you
think that you need to do that, you're probably mistaken...
I have thought about removing the linkage.c requirement and instead make
that code happen at the first c-client call. However, that would incur
the wrath of a few black magic practitioners who have good reason to
indulge in the dark arts. This is a sleeping dog that I prefer to let
lie.
Given that there is no make install target -those of us that build UW imap
take our best guess as to what is required to be installed for a complete
distribution. I missed this file - which sent us down a rabbit hole for until
we reazlized the problem and included linkage.c in our distribution package.
Correct; any application that builds with c-client needs linkage.c.
However, my Official Politically Correct Position is that the only good
"make install" for c-client library is a symlink or copy of the entire
imap-????/c-client directory (not the src/c-client directory, but rather
the one created by the IMAP toolkit build process).
If you choose to do something else, be my guest; but you're on your own.
I can't promise that there won't be other mandatory files in the future.
Also, it isn't clear to me but are all of the c-client/*.h files required for
an installation distribution in order to support building an app that uses
the UW imap c-client lib?
"It depends", but to be safe the answer is "yes".
Now, with that said, you don't need the extraneous os_???.h files
(other than the one used for osdep.h!).
You also should retain ARCHIVE, CCTYPE, CFLAGS, and LDFLAGS.
In looking at mail.h and the chain of includes that occurs it seems to need
pretty much everything in the c-client/*.h files in order to build an
external app that uses the c-client lib.
Probably. But the application should include c-client.h, not mail.h
directly.
-- Mark --
http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.
_______________________________________________
Imap-uw mailing list
Imap-uw@u.washington.edu
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw