[Mono-dev] mgnat.dll saga

Robert Jordan robertj at gmx.net
Sun Nov 13 10:11:46 EST 2005


Laurent,

I just downloaded the package you're trying to port:
The dll is compiled as a module and linked together
with the IL to a dll. A bootstrap mgnat.dll seems
to be used:

	$(CD) $(MGNAT_DIR)/lib; $(CP) $(ADALIB)/mgnat.dll .
	$(CD) $(MGNAT_DIR)/lib; $(CSC) /debug /t:module /out:mgnatcs.netmodule 
/R:mgnat.dll $(MGNAT_LIB_CS_SRCS)
	al /target:lib /out:mgnatcs.dll /keyfile:$(DLL_DIR)/TestKey.snk 
mgnatcs.netmodule
	$(CP) mgnat.dll mgnatcs.dll mgnatcs.netmodule $(DLL_DIR)

Robert


> Robert, thanks again for your help.
> 
> In the .il file that are used to build mgnat.dll I have plenty of
> references like:
> 
> .assembly extern mgnatcs {
> ...
> }
> 
> And in the .cs file that are used to build mgnatcs.dll there are things
> like:
> 
> using system.task_primitives;
> namespace mgnat.adalib {
> ...
> }
> 
> where system.task_primitives is in mgnat.dll
> .namespace system.task_primitives {
> ...}
> 
> My understanding of the mgnat setup is that we want to have a "library"
> in the namespace "mgnat" built from *.il files (generated by the A#
> compiler from Ada library code) together with code from a small set of
> *.cs files (in C# to complete the library interface using C# library). 
> 
> It looks like on MS Windows/C# the setup is using two mutually
> dependant dlls and this works, but since this causes problem on mono,
> from my reading of the A# compiler code, it should be doable to make
> this only one dll instead of two if this helps.
> 
> Is there a way say x.il and y.cs can be combined in one dll using mono
> tools?
> 
> Thanks in advance,
> 
> Laurent




More information about the Mono-devel-list mailing list