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

Reply via email to