1# For building the dlz_perl_driver driver we don't use
2# the bind9 build structure as the aim is to provide an
3# perl_driver that is separable from the bind9 source tree
4
5CFLAGS += -fPIC -O2 -I../include
6FLAGS_PERL ?= perl
7LIBNAME = dlz_perl_driver.so
8
9all: $(LIBNAME)
10
11dlz_perl_driver.o: dlz_perl_driver.c
12	$(CC) $(CFLAGS) `${FLAGS_PERL} -MExtUtils::Embed -e ccopts` -c -o dlz_perl_driver.o dlz_perl_driver.c
13
14
15dlz_perl_callback_clientinfo.c: dlz_perl_callback_clientinfo.xs
16	${FLAGS_PERL} `${FLAGS_PERL} -MConfig -le 'print $$Config{privlibexp}'`/ExtUtils/xsubpp -prototypes -typemap `${FLAGS_PERL} -MConfig -le 'print $$Config{privlibexp}'`/ExtUtils/typemap dlz_perl_callback_clientinfo.xs > dlz_perl_callback_clientinfo.c
17
18dlz_perl_callback_clientinfo.o: dlz_perl_callback_clientinfo.c
19	$(CC) $(CFLAGS) `${FLAGS_PERL} -MExtUtils::Embed -e ccopts` -c -o dlz_perl_callback_clientinfo.o dlz_perl_callback_clientinfo.c
20
21
22dlz_perl_callback.c: dlz_perl_callback.xs
23	${FLAGS_PERL} `${FLAGS_PERL} -MConfig -le 'print $$Config{privlibexp}'`/ExtUtils/xsubpp -prototypes -typemap `${FLAGS_PERL} -MConfig -le 'print $$Config{privlibexp}'`/ExtUtils/typemap dlz_perl_callback.xs > dlz_perl_callback.c
24
25dlz_perl_callback.o: dlz_perl_callback.c
26	$(CC) $(CFLAGS) `${FLAGS_PERL} -MExtUtils::Embed -e ccopts` -c -o dlz_perl_callback.o dlz_perl_callback.c
27
28
29$(LIBNAME): dlz_perl_driver.o dlz_perl_callback_clientinfo.o dlz_perl_callback.o
30	$(CC) $(LDFLAGS) -shared -o $(LIBNAME) dlz_perl_driver.o dlz_perl_callback_clientinfo.o dlz_perl_callback.o `${FLAGS_PERL} -MExtUtils::Embed -e ldopts`
31
32clean:
33	rm -f dlz_perl_driver.o dlz_perl_driver.so dlz_perl_callback_clientinfo.c dlz_perl_callback_clientinfo.o dlz_perl_callback.c dlz_perl_callback.o
34