summaryrefslogtreecommitdiff
path: root/util/Makefile.bind.in
blob: 109a7987d1313cebe016036373fbb9afabd3329a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#
# Copyright (C) 2009-2012, 2015  Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.

# Configure and build the bind libraries for use by DHCP

include ./version.tmp
version=${MAJORVER}.${MINORVER}.${PATCHVER}${RELEASETYPE}${RELEASEVER}

# bindvar.tmp is constructed by configure, it has the paths for bind
# if GMAKE is blank the shell script couldn't find a gmake to use.
# binddir=
# GMAKE=
include ./bindvar.tmp

bindsrcdir=bind-${version}

bindconfig = --disable-kqueue --disable-epoll --disable-devpoll \
	--without-openssl --without-libxml2 --enable-exportlib \
	--with-gssapi=no --enable-threads=no @BINDCONFIG@ \
	--with-export-includedir=${binddir}/include \
	--with-export-libdir=${binddir}/lib

@BIND_ATF_FALSE@cleandirs = ./lib ./include
@BIND_ATF_TRUE@cleandirs = ./lib ./include ./atf
cleanfiles = ./configure.log ./build.log ./install.log

@BIND_ATF_FALSE@all: bind1 bind2
@BIND_ATF_TRUE@all: bind1 atf bind2

bind1:
# Extract the source from the tarball, if it hasn't been already.
	@if test -d ${bindsrcdir} ; then                    \
		echo ${bindsrcdir} already unpacked... ;    \
	else                                                \
		gunzip -c bind.tar.gz | tar xf - ;          \
	fi

	@if test -z "${GMAKE}"; then                        \
		echo "unable to find gmake" 1>&2 ;          \
		exit 1;                                     \
	fi

# Configure the export libraries
# Currently disable the epoll, devpoll and kqueue options as they
# don't interact well with the DHCP code.
# If the top-level Bind Makefile exists we skip the configuration step
# as we assume it's done and won't change.  Doing a make clean will
# reset things if necessary.
	@if test -f ${bindsrcdir}/Makefile ; then                       \
		echo Bind export libraries already configured ;         \
	else                                                            \
		echo Configuring BIND Export libraries for DHCP. ;      \
		rm -rf ${cleandirs} ${cleanfiles} ;                     \
		(cd ${bindsrcdir} &&                                    \
                 ./configure ${bindconfig} > ${binddir}/configure.log); \
	fi

atf:
# Build and copy the ATF support if not yet installed.
	@if test -d ./atf ; then				      \
		echo ATF support already installed ;		      \
	else							      \
		echo Building ATF support ;			      \
		(cd ${bindsrcdir}/unit;				      \
		 MAKE=${GMAKE} ${GMAKE} atf > ${binddir}/build.log ;  \
		 cp -rp atf ${binddir}) ;			      \
	fi

@CROSS_COMPILING_FALSE@bind2: bind2-noguest
@CROSS_COMPILING_TRUE@bind2: bind2-hostgen

bind2-noguest:
# Build and install the export libraries
# No need to do anything if we already have something installed.
	@if test -d ${binddir}/lib ; then                                    \
		echo Bind export libraries already installed ;               \
	else                                                                 \
		echo Building BIND Export libraries - this takes some time. ;\
		(cd ${bindsrcdir}/lib/export ;                               \
		  echo building in `pwd` ;                                   \
		  MAKE=${GMAKE} ${GMAKE} >> ${binddir}/build.log) ;          \
                                                                             \
		echo Installing BIND Export libraries to ${binddir}. ;       \
		(cd ${bindsrcdir}/lib/export ;                               \
		  MAKE=${GMAKE} ${GMAKE} install > ${binddir}/install.log) ; \
	fi

bind2-hostgen:
# Build and install the export libraries
# No need to do anything if we already have something installed.
	@if test -d ${binddir}/lib ; then                                    \
		echo Bind export libraries already installed ;               \
	else                                                                 \
		echo Building BIND Export libraries - this takes some time. ;\
		(cd ${bindsrcdir}/lib/export/dns ; \
		 echo building gen using ${BUILD_CC} in `pwd` ; \
		 MAKE=${GMAKE} ${GMAKE} CC=${BUILD_CC} CFLAGS=${BUILD_CFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} LIBS=${BUILD_LIBS} gen >> ${binddir}/build.log) ; \
		(cd ${bindsrcdir}/lib/export ;                               \
		  echo building in `pwd` ;                                   \
		  MAKE=${GMAKE} ${GMAKE} >> ${binddir}/build.log) ;          \
                                                                             \
		echo Installing BIND Export libraries to ${binddir}. ;       \
		(cd ${bindsrcdir}/lib/export ;                               \
		  MAKE=${GMAKE} ${GMAKE} install > ${binddir}/install.log) ; \
	fi

clean:
	@echo Cleaning BIND export library.
	rm -rf ${bindsrcdir} ${cleandirs} ${cleanfiles}

# Include the following so that this Makefile is happy when the parent
# tries to use them.

distdir:

distclean:

install:

check:

uninstall: