Using C libraries for a D program

From D Wiki
Revision as of 16:37, 15 May 2014 by Tbrowder (talk | contribs) (Created page with "'''WARNING: This recipe by an absolute D newbie has not yet been tested--corrections are welcome!''' Assume one has the following, error-free files: * a D language source p...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

WARNING: This recipe by an absolute D newbie has not yet been tested--corrections are welcome!

Assume one has the following, error-free files:

  • a D language source program:
./main.d
  • a C ABI library file:
/usr/local/lib/libbu.so
  • a D language binding file to the C library API headers:
/usr/local/include/bu.d

We first create a GNU Makefile to build program test-bu using those three files (note the leading spaces on lines following targets must be tabs in a real GNU Makefile):

$ cat Makefile
# use the dmd compiler
DMD = /usr/bin/dmd

LIBDIR = /usr/local/brlcad/lib
MODDIR = /usr/local/brlcad/include

BINDINGS = bu.d

all: test-bu

test-bu: main.o 
        $(DMD) -o $@ -I$(MODDIR) $(BINDINGS) -L$(LIBDIR) -lbu
 
%.o: %.d
        $(DMD) -c $< -o $@

clean:
        -rm *.o

Then we can build test-bu by executing:

$ make test-bu