Differences between revisions 4 and 5
Revision 4 as of 2007-09-05 21:13:49
Size: 866
Editor: ?ArthurLoiret
Comment:
Revision 5 as of 2007-09-07 14:43:19
Size: 1684
Editor: ?ArthurLoiret
Comment:
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:

== HOWTO: generate a D binding from a C library ==

 * Install gdc: apt-get install gdc-4.1
 * Get dsss from mentors: dget -x http://mentors.debian.net/debian/pool/main/d/dsss/dsss_0.72.1-1.dsc
 * Build it with fakeroot debian/rules binary and install it
 * Get BCD: svn co http://svn.dsource.org/projects/bcd/trunk/bcd.gen
 * Build it with dsss build and put the bcdgen executable in your PATH

Now, let's generate a binding for libalsaplayer (for example):
 * mkdir tmp; cd tmp
 * for i /usr/include/alsaplayer/*.h ; do echo $i && bcdgen $i alsaplayer -C -b ; done

bcdgen $1 $2 will generate a binding for $1 header file in a $2 module, so all alsaplayer D headers will have to be included from alsaplayer.*;

-C option tell bcdgen this is a C header, and -b avoid 'bcd.' prefix for modules name.

Bindings for the D programming language

HOWTO: generate a D binding from a C library

Now, let's generate a binding for libalsaplayer (for example):

  • mkdir tmp; cd tmp
  • for i /usr/include/alsaplayer/*.h ; do echo $i && bcdgen $i alsaplayer -C -b ; done

bcdgen $1 $2 will generate a binding for $1 header file in a $2 module, so all alsaplayer D headers will have to be included from alsaplayer.*;

-C option tell bcdgen this is a C header, and -b avoid 'bcd.' prefix for modules name.