1[SUBSYSTEM::TORTURE_UTIL]
2PRIVATE_DEPENDENCIES = LIBCLI_RAW
3PUBLIC_DEPENDENCIES = torture POPT_CREDENTIALS
4
5TORTURE_UTIL_OBJ_FILES = $(addprefix $(torturesrcdir)/, util_smb.o)
6
7#################################
8# Start SUBSYSTEM TORTURE_BASIC
9[MODULE::TORTURE_BASIC]
10SUBSYSTEM = smbtorture
11INIT_FUNCTION = torture_base_init
12OUTPUT_TYPE = MERGED_OBJ
13PRIVATE_DEPENDENCIES = \
14		LIBCLI_SMB POPT_CREDENTIALS \
15		TORTURE_UTIL LIBCLI_RAW \
16		TORTURE_RAW
17# End SUBSYSTEM TORTURE_BASIC
18#################################
19
20TORTURE_BASIC_OBJ_FILES = $(addprefix $(torturesrcdir)/basic/,  \
21		base.o \
22		misc.o \
23		scanner.o \
24		utable.o \
25		charset.o \
26		mangle_test.o \
27		denytest.o \
28		aliases.o \
29		locking.o \
30		secleak.o \
31		rename.o \
32		dir.o \
33		delete.o \
34		unlink.o \
35		disconnect.o \
36		delaywrite.o \
37		attr.o \
38		properties.o)
39
40$(eval $(call proto_header_template,$(torturesrcdir)/basic/proto.h,$(TORTURE_BASIC_OBJ_FILES:.o=.c)))
41
42#################################
43# Start SUBSYSTEM TORTURE_RAW
44[MODULE::TORTURE_RAW]
45OUTPUT_TYPE = MERGED_OBJ
46SUBSYSTEM = smbtorture
47INIT_FUNCTION = torture_raw_init
48PRIVATE_DEPENDENCIES = \
49		LIBCLI_SMB LIBCLI_LSA LIBCLI_SMB_COMPOSITE \
50		POPT_CREDENTIALS TORTURE_UTIL
51# End SUBSYSTEM TORTURE_RAW
52#################################
53
54TORTURE_RAW_OBJ_FILES = $(addprefix $(torturesrcdir)/raw/, \
55		qfsinfo.o \
56		qfileinfo.o \
57		setfileinfo.o \
58		search.o \
59		close.o \
60		open.o \
61		mkdir.o \
62		oplock.o \
63		notify.o \
64		mux.o \
65		ioctl.o \
66		chkpath.o \
67		unlink.o \
68		read.o \
69		context.o \
70		write.o \
71		lock.o \
72		pingpong.o \
73		lockbench.o \
74		lookuprate.o \
75		tconrate.o \
76		openbench.o \
77		rename.o \
78		eas.o \
79		streams.o \
80		acls.o \
81		seek.o \
82		samba3hide.o \
83		samba3misc.o \
84		composite.o \
85		raw.o \
86		offline.o)
87
88$(eval $(call proto_header_template,$(torturesrcdir)/raw/proto.h,$(TORTURE_RAW_OBJ_FILES:.o=.c)))
89
90mkinclude smb2/config.mk
91mkinclude winbind/config.mk
92mkinclude libnetapi/config.mk
93
94[SUBSYSTEM::TORTURE_NDR]
95PRIVATE_DEPENDENCIES = torture SERVICE_SMB
96
97TORTURE_NDR_OBJ_FILES = $(addprefix $(torturesrcdir)/ndr/, ndr.o winreg.o atsvc.o lsa.o epmap.o dfs.o netlogon.o drsuapi.o spoolss.o samr.o)
98
99$(eval $(call proto_header_template,$(torturesrcdir)/ndr/proto.h,$(TORTURE_NDR_OBJ_FILES:.o=.c)))
100
101[MODULE::torture_rpc]
102OUTPUT_TYPE = MERGED_OBJ
103# TORTURE_NET and TORTURE_NBT use functions from torture_rpc...
104#OUTPUT_TYPE = MERGED_OBJ
105SUBSYSTEM = smbtorture
106INIT_FUNCTION = torture_rpc_init
107PRIVATE_DEPENDENCIES = \
108		NDR_TABLE RPC_NDR_UNIXINFO dcerpc_samr RPC_NDR_WINREG RPC_NDR_INITSHUTDOWN \
109		RPC_NDR_OXIDRESOLVER RPC_NDR_EVENTLOG RPC_NDR_ECHO RPC_NDR_SVCCTL \
110		RPC_NDR_NETLOGON dcerpc_atsvc dcerpc_mgmt RPC_NDR_DRSUAPI \
111		RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_FRSAPI RPC_NDR_SPOOLSS \
112		RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP \
113		RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER LIBSAMBA-NET \
114		LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP \
115		dcerpc_server service process_model ntvfs SERVICE_SMB RPC_NDR_BROWSER LIBCLI_DRSUAPI TORTURE_LDB_MODULE
116
117torture_rpc_OBJ_FILES = $(addprefix $(torturesrcdir)/rpc/, \
118		join.o lsa.o lsa_lookup.o session_key.o echo.o dfs.o drsuapi.o \
119		drsuapi_cracknames.o dssync.o spoolss.o spoolss_notify.o spoolss_win.o \
120		unixinfo.o samr.o samr_accessmask.o wkssvc.o srvsvc.o svcctl.o atsvc.o \
121		eventlog.o epmapper.o winreg.o initshutdown.o oxidresolve.o remact.o mgmt.o \
122		scanner.o autoidl.o countcalls.o testjoin.o schannel.o netlogon.o remote_pac.o samlogon.o \
123		samsync.o bind.o dssetup.o alter_context.o bench.o samba3rpc.o rpc.o async_bind.o \
124		handles.o frsapi.o object_uuid.o ntsvcs.o browser.o)
125
126$(eval $(call proto_header_template,$(torturesrcdir)/rpc/proto.h,$(torture_rpc_OBJ_FILES:.o=.c)))
127
128#################################
129# Start SUBSYSTEM TORTURE_RAP
130[MODULE::TORTURE_RAP]
131OUTPUT_TYPE = MERGED_OBJ
132SUBSYSTEM = smbtorture
133INIT_FUNCTION = torture_rap_init
134PRIVATE_DEPENDENCIES = TORTURE_UTIL LIBCLI_SMB
135# End SUBSYSTEM TORTURE_RAP
136#################################
137
138TORTURE_RAP_OBJ_FILES = $(torturesrcdir)/rap/rap.o
139
140$(eval $(call proto_header_template,$(torturesrcdir)/rap/proto.h,$(TORTURE_RAP_OBJ_FILES:.o=.c)))
141
142#################################
143# Start SUBSYSTEM TORTURE_AUTH
144[MODULE::TORTURE_AUTH]
145OUTPUT_TYPE = MERGED_OBJ
146SUBSYSTEM = smbtorture
147PRIVATE_DEPENDENCIES = \
148		LIBCLI_SMB gensec auth KERBEROS \
149		POPT_CREDENTIALS SMBPASSWD torture
150# End SUBSYSTEM TORTURE_AUTH
151#################################
152
153TORTURE_AUTH_OBJ_FILES = $(addprefix $(torturesrcdir)/auth/, ntlmssp.o pac.o)
154
155$(eval $(call proto_header_template,$(torturesrcdir)/auth/proto.h,$(TORTURE_AUTH_OBJ_FILES:.o=.c)))
156
157mkinclude local/config.mk
158
159#################################
160# Start MODULE TORTURE_NBENCH
161[MODULE::TORTURE_NBENCH]
162OUTPUT_TYPE = MERGED_OBJ
163SUBSYSTEM = smbtorture
164INIT_FUNCTION = torture_nbench_init
165PRIVATE_DEPENDENCIES = TORTURE_UTIL 
166# End MODULE TORTURE_NBENCH
167#################################
168
169TORTURE_NBENCH_OBJ_FILES = $(addprefix $(torturesrcdir)/nbench/, nbio.o nbench.o)
170
171$(eval $(call proto_header_template,$(torturesrcdir)/nbench/proto.h,$(TORTURE_NBENCH_OBJ_FILES:.o=.c)))
172
173#################################
174# Start MODULE TORTURE_UNIX
175[MODULE::TORTURE_UNIX]
176SUBSYSTEM = smbtorture
177OUTPUT_TYPE = MERGED_OBJ
178INIT_FUNCTION = torture_unix_init
179PRIVATE_DEPENDENCIES = TORTURE_UTIL 
180# End MODULE TORTURE_UNIX
181#################################
182
183TORTURE_UNIX_OBJ_FILES = $(addprefix $(torturesrcdir)/unix/, unix.o whoami.o unix_info2.o)
184
185$(eval $(call proto_header_template,$(torturesrcdir)/unix/proto.h,$(TORTURE_UNIX_OBJ_FILES:.o=.c)))
186
187#################################
188# Start SUBSYSTEM TORTURE_LDAP
189[MODULE::TORTURE_LDAP]
190SUBSYSTEM = smbtorture
191OUTPUT_TYPE = MERGED_OBJ
192INIT_FUNCTION = torture_ldap_init
193PRIVATE_DEPENDENCIES = \
194		LIBCLI_LDAP LIBCLI_CLDAP SAMDB POPT_CREDENTIALS torture LDB_WRAP
195# End SUBSYSTEM TORTURE_LDAP
196#################################
197
198TORTURE_LDAP_OBJ_FILES = $(addprefix $(torturesrcdir)/ldap/, common.o basic.o schema.o uptodatevector.o cldap.o cldapbench.o ldap_sort.o)
199
200$(eval $(call proto_header_template,$(torturesrcdir)/ldap/proto.h,$(TORTURE_LDAP_OBJ_FILES:.o=.c)))
201
202#################################
203# Start SUBSYSTEM TORTURE_NBT
204[MODULE::TORTURE_NBT]
205SUBSYSTEM = smbtorture
206OUTPUT_TYPE = MERGED_OBJ
207INIT_FUNCTION = torture_nbt_init
208PRIVATE_DEPENDENCIES = \
209		LIBCLI_SMB LIBCLI_NBT LIBCLI_DGRAM LIBCLI_WREPL torture_rpc
210# End SUBSYSTEM TORTURE_NBT
211#################################
212
213TORTURE_NBT_OBJ_FILES = $(addprefix $(torturesrcdir)/nbt/, query.o register.o \
214	wins.o winsbench.o winsreplication.o dgram.o nbt.o)
215
216$(eval $(call proto_header_template,$(torturesrcdir)/nbt/proto.h,$(TORTURE_NBT_OBJ_FILES:.o=.c)))
217
218#################################
219# Start SUBSYSTEM TORTURE_NET
220[MODULE::TORTURE_NET]
221SUBSYSTEM = smbtorture
222OUTPUT_TYPE = MERGED_OBJ
223INIT_FUNCTION = torture_net_init
224PRIVATE_DEPENDENCIES = \
225		LIBSAMBA-NET \
226		POPT_CREDENTIALS \
227		torture_rpc \
228		PROVISION
229# End SUBSYSTEM TORTURE_NET
230#################################
231
232TORTURE_NET_OBJ_FILES = $(addprefix $(torturesrcdir)/libnet/, libnet.o \
233					   utils.o userinfo.o userman.o groupinfo.o groupman.o \
234					   domain.o libnet_lookup.o libnet_user.o libnet_group.o \
235					   libnet_share.o libnet_rpc.o libnet_domain.o libnet_BecomeDC.o)
236
237$(eval $(call proto_header_template,$(torturesrcdir)/libnet/proto.h,$(TORTURE_NET_OBJ_FILES:.o=.c)))
238
239#################################
240# Start SUBSYSTEM TORTURE_NTP
241[MODULE::TORTURE_NTP]
242SUBSYSTEM = smbtorture
243OUTPUT_TYPE = MERGED_OBJ
244INIT_FUNCTION = torture_ntp_init
245PRIVATE_DEPENDENCIES = \
246		POPT_CREDENTIALS \
247		torture_rpc 
248# End SUBSYSTEM TORTURE_NTP
249#################################
250
251TORTURE_NTP_OBJ_FILES = $(addprefix $(torturesrcdir)/ntp/, ntp_signd.o)
252
253$(eval $(call proto_header_template,$(torturesrcdir)/ntp/proto.h,$(TORTURE_NET_OBJ_FILES:.o=.c)))
254
255#################################
256# Start BINARY smbtorture
257[BINARY::smbtorture]
258INSTALLDIR = BINDIR
259PRIVATE_DEPENDENCIES = \
260		torture \
261		LIBPOPT \
262		POPT_SAMBA \
263		POPT_CREDENTIALS \
264		dcerpc \
265		LIBCLI_SMB \
266		SMBREADLINE
267# End BINARY smbtorture
268#################################
269
270smbtorture_OBJ_FILES = $(torturesrcdir)/smbtorture.o $(torturesrcdir)/torture.o 
271
272PUBLIC_HEADERS += $(torturesrcdir)/smbtorture.h
273MANPAGES += $(torturesrcdir)/man/smbtorture.1
274
275#################################
276# Start BINARY gentest
277[BINARY::gentest]
278INSTALLDIR = BINDIR
279PRIVATE_DEPENDENCIES = \
280		LIBSAMBA-HOSTCONFIG \
281		LIBSAMBA-UTIL \
282		LIBPOPT \
283		POPT_SAMBA \
284		POPT_CREDENTIALS \
285		LIBCLI_SMB \
286		LIBCLI_RAW
287# End BINARY gentest
288#################################
289
290gentest_OBJ_FILES = $(torturesrcdir)/gentest.o
291
292MANPAGES += $(torturesrcdir)/man/gentest.1
293
294#################################
295# Start BINARY masktest
296[BINARY::masktest]
297INSTALLDIR = BINDIR
298PRIVATE_DEPENDENCIES = \
299		LIBSAMBA-HOSTCONFIG \
300		LIBSAMBA-UTIL \
301		LIBPOPT \
302		POPT_SAMBA \
303		POPT_CREDENTIALS \
304		LIBCLI_SMB
305# End BINARY masktest
306#################################
307
308masktest_OBJ_FILES = $(torturesrcdir)/masktest.o
309
310MANPAGES += $(torturesrcdir)/man/masktest.1
311
312#################################
313# Start BINARY locktest
314[BINARY::locktest]
315INSTALLDIR = BINDIR
316PRIVATE_DEPENDENCIES = \
317		LIBPOPT \
318		POPT_SAMBA \
319		POPT_CREDENTIALS \
320		LIBSAMBA-UTIL \
321		LIBCLI_SMB \
322		LIBSAMBA-HOSTCONFIG
323# End BINARY locktest
324#################################
325
326locktest_OBJ_FILES = $(torturesrcdir)/locktest.o
327
328MANPAGES += $(torturesrcdir)/man/locktest.1
329
330GCOV=0
331
332ifeq ($(MAKECMDGOALS),gcov)
333GCOV=1
334endif
335
336ifeq ($(MAKECMDGOALS),lcov)
337GCOV=1
338endif
339
340ifeq ($(MAKECMDGOALS),testcov-html)
341GCOV=1
342endif
343
344ifeq ($(GCOV),1)
345CFLAGS += --coverage
346LDFLAGS += --coverage
347endif
348
349COV_TARGET = test
350
351gcov: test
352	for I in $(sort $(dir $(ALL_OBJS))); \
353		do $(GCOV) -p -o $$I $$I/*.c; \
354	done
355
356samba4.info: test
357	-rm heimdal/lib/*/{lex,parse,sel-lex}.{gcda,gcno}
358	cd .. && lcov --base-directory `pwd`/source4 --directory source4 --directory nsswitch --directory libcli --directory librpc --directory lib --capture --output-file source4/samba4.info
359
360lcov: samba4.info
361	genhtml -o coverage $<
362
363testcov-html:: lcov
364
365clean::
366	@rm -f samba.info
367