Radu Serban wrote:



I've added this to my implementation (attached to this message). If successful, the name mangling scheme is encoded in two (cached, internal) variables: SCHEME_NO_UNDERSCORES is the mangled name of the symbol "mysub" and SCHEME_WITH_UNDERSCORES is the mangled name of the symbol "my_sub". The way I use them is by further defining two substitution variables which I use to generate a configuration header (using CONFIGURE_FILE). These variables (DEFINE_F77_FUNC and DEFINE_F77_FUNC_) contain the #define lines for two C preprocessor macros, F77_FUNC and F77_FUNC_ which can then be used in the C code. As an example, using the GNU compilers (without any of the g77 flags you mention) these two macros will be:
#define F77_FUNC(name,NAME) name ## _
#define F77_FUNC_(name,NAME) name ## __

I've tested this with the GNU compilers (with and without the flags you mentioned), as well as with PGI and Intel compilers (all under Linux). I hope it's portable but, unfortunately, I don't have a Windows machine to try it on...

Hi Radu,

I took a look at this new version of the script. It seems indeed more portable than the first version, but I must warn you that there are a few other issues on Windows that you need to take care of (there is the matter of the calling convention, indicated by the special keyword stdcall__ or the like and the positioning of the implicit string length argument). I am not sure how these can be automatically determined.

Regards,

Arjen


_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to