1# Copyright (C) 2004-2012  Internet Systems Consortium, Inc. ("ISC")
2# Copyright (C) 1998-2003  Internet Software Consortium.
3#
4# Permission to use, copy, modify, and/or distribute this software for any
5# purpose with or without fee is hereby granted, provided that the above
6# copyright notice and this permission notice appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14# PERFORMANCE OF THIS SOFTWARE.
15
16# $Id$
17
18srcdir =	@srcdir@
19VPATH =		@srcdir@
20top_srcdir =	@top_srcdir@
21
22@BIND9_VERSION@
23
24@LIBISC_API@
25
26CINCLUDES =	-I${srcdir}/unix/include \
27		-I${srcdir}/@ISC_THREAD_DIR@/include \
28		-I${srcdir}/@ISC_ARCH_DIR@/include \
29		-I./include \
30		-I${srcdir}/include @ISC_OPENSSL_INC@
31CDEFINES =	@USE_OPENSSL@
32CWARNINGS =
33
34# Alphabetically
35UNIXOBJS =	@ISC_ISCIPV6_O@ \
36		unix/app.@O@ unix/dir.@O@ unix/entropy.@O@ \
37		unix/errno2result.@O@ unix/file.@O@ unix/fsaccess.@O@ \
38		unix/interfaceiter.@O@ unix/keyboard.@O@ unix/net.@O@ \
39		unix/os.@O@ unix/resource.@O@ unix/socket.@O@ unix/stdio.@O@ \
40		unix/stdtime.@O@ unix/strerror.@O@ unix/syslog.@O@ unix/time.@O@
41
42NLSOBJS =	nls/msgcat.@O@
43
44THREADOPTOBJS = @ISC_THREAD_DIR@/condition.@O@ @ISC_THREAD_DIR@/mutex.@O@
45
46THREADOBJS =	@THREADOPTOBJS@ @ISC_THREAD_DIR@/thread.@O@
47
48WIN32OBJS = 	win32/condition.@O@ win32/dir.@O@ win32/file.@O@ \
49		win32/fsaccess.@O@ win32/once.@O@ win32/stdtime.@O@ \
50		win32/thread.@O@ win32/time.@O@
51
52# Alphabetically
53OBJS =		@ISC_EXTRA_OBJS@ \
54		assertions.@O@ backtrace.@O@ base32.@O@ base64.@O@ \
55		bitstring.@O@ buffer.@O@ bufferlist.@O@ commandline.@O@ \
56		error.@O@ event.@O@ \
57		hash.@O@ heap.@O@ hex.@O@ hmacmd5.@O@ hmacsha.@O@ \
58		httpd.@O@ inet_aton.@O@ iterated_hash.@O@ \
59		lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \
60		md5.@O@ mem.@O@ mutexblock.@O@ \
61		netaddr.@O@ netscope.@O@ ondestroy.@O@ \
62		parseint.@O@ portset.@O@ quota.@O@ radix.@O@ random.@O@ \
63		ratelimiter.@O@ refcount.@O@ region.@O@ result.@O@ rwlock.@O@ \
64		serial.@O@ sha1.@O@ sha2.@O@ sockaddr.@O@ stats.@O@ \
65		string.@O@ strtoul.@O@ symtab.@O@ task.@O@ taskpool.@O@ \
66		timer.@O@ version.@O@ ${UNIXOBJS} ${NLSOBJS} ${THREADOBJS}
67SYMTBLOBJS =	backtrace-emptytbl.@O@
68
69# Alphabetically
70SRCS =		@ISC_EXTRA_SRCS@ \
71		assertions.c backtrace.c base32.c base64.c bitstring.c \
72		buffer.c bufferlist.c commandline.c error.c event.c \
73		heap.c hex.c hmacmd5.c hmacsha.c \
74		httpd.c inet_aton.c iterated_hash.c \
75		lex.c lfsr.c lib.c log.c \
76		md5.c mem.c mutexblock.c \
77		netaddr.c netscope.c ondestroy.c \
78		parseint.c portset.c quota.c radix.c random.c \
79		ratelimiter.c refcount.c region.c result.c rwlock.c \
80		serial.c sha1.c sha2.c sockaddr.c stats.c string.c strtoul.c \
81		symtab.c symtbl-empty.c task.c taskpool.c timer.c version.c
82
83LIBS =		@LIBS@
84
85# Note: the order of SUBDIRS is important.
86# Attempt to disable parallel processing.
87.NOTPARALLEL:
88.NO_PARALLEL:
89SUBDIRS =	include unix nls @ISC_THREAD_DIR@ @ISC_ARCH_DIR@
90TARGETS =	timestamp
91TESTDIRS =	@UNITTESTS@
92
93@BIND9_MAKE_RULES@
94
95version.@O@: version.c
96	${LIBTOOL_MODE_COMPILE} ${CC} ${ALL_CFLAGS} \
97		-DVERSION=\"${VERSION}\" \
98		-DLIBINTERFACE=${LIBINTERFACE} \
99		-DLIBREVISION=${LIBREVISION} \
100		-DLIBAGE=${LIBAGE} \
101		-c ${srcdir}/version.c
102
103libisc.@SA@: ${OBJS} ${SYMTBLOBJS}
104	${AR} ${ARFLAGS} $@ ${OBJS} ${SYMTBLOBJS}
105	${RANLIB} $@
106
107libisc-nosymtbl.@SA@: ${OBJS}
108	${AR} ${ARFLAGS} $@ ${OBJS}
109	${RANLIB} $@
110
111libisc.la: ${OBJS} ${SYMTBLOBJS}
112	${LIBTOOL_MODE_LINK} \
113		${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisc.la -rpath ${libdir} \
114		-version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
115		${OBJS} ${SYMTBLOBJS} ${LIBS}
116
117libisc-nosymtbl.la: ${OBJS}
118	${LIBTOOL_MODE_LINK} \
119		${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisc-nosymtbl.la -rpath ${libdir} \
120		-version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \
121		${OBJS} ${LIBS}
122
123timestamp: libisc.@A@ libisc-nosymtbl.@A@
124	touch timestamp
125
126installdirs:
127	$(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir}
128
129install:: timestamp installdirs
130	${LIBTOOL_MODE_INSTALL} ${INSTALL_DATA} libisc.@A@ ${DESTDIR}${libdir}
131
132clean distclean::
133	rm -f libisc.@A@ libisc-nosymtbl.@A@ libisc.la \
134	libisc-nosymtbl.la timestamp
135