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