1 all: showflags
$(ALL_PREDEP
) bin
/asn1_compile bin
/compile_et binaries modules
2 everything
: all libraries
5 include heimdal_build
/config.mk
10 include cluster
/config.mk
11 include smbd
/process_model.mk
12 include libnet
/config.mk
13 include auth
/config.mk
14 include nsswitch
/config.mk
16 include param
/config.mk
17 include smb_server
/config.mk
18 include rpc_server
/config.mk
19 include ldap_server
/config.mk
20 include web_server
/config.mk
21 include winbind
/config.mk
22 include nbt_server
/config.mk
23 include wrepl_server
/config.mk
24 include cldap_server
/config.mk
25 include utils
/net
/config.mk
26 include utils
/config.mk
27 include ntvfs
/config.mk
28 include ntptr
/config.mk
29 include torture
/config.mk
30 include librpc
/config.mk
31 include client
/config.mk
32 include libcli
/config.mk
33 include scripting
/ejs
/config.mk
34 include scripting
/swig
/config.mk
37 DEFAULT_HEADERS
= $(srcdir)/include/core.h \
38 $(srcdir)/lib
/util
/dlinklist.h \
42 libraries
: $(STATIC_LIBS
) $(SHARED_LIBS
)
43 modules
: $(SHARED_MODULES
)
44 headers
: $(PUBLIC_HEADERS
) $(DEFAULT_HEADERS
)
49 @echo
'Samba will be installed into:'
50 @echo
' basedir: $(BASEDIR)'
51 @echo
' bindir: $(BINDIR)'
52 @echo
' sbindir: $(SBINDIR)'
53 @echo
' libdir: $(LIBDIR)'
54 @echo
' modulesdir: $(MODULESDIR)'
55 @echo
' includedir: $(INCLUDEDIR)'
56 @echo
' vardir: $(VARDIR)'
57 @echo
' privatedir: $(PRIVATEDIR)'
58 @echo
' piddir: $(PIDDIR)'
59 @echo
' lockdir: $(LOCKDIR)'
60 @echo
' logfilebase: $(LOGFILEBASE)'
61 @echo
' setupdir: $(SETUPDIR)'
62 @echo
' jsdir: $(JSDIR)'
63 @echo
' webappsdir: $(WEBAPPSDIR)'
64 @echo
' servicesdir: $(SERVICESDIR)'
65 @echo
' mandir: $(MANDIR)'
66 @echo
' torturedir: $(TORTUREDIR)'
67 @echo
' datadir: $(DATADIR)'
68 @echo
' winbindd_socket_dir: $(WINBINDD_SOCKET_DIR)'
71 @echo
'Samba will be compiled with flags:'
73 @echo
' CPPFLAGS = $(CPPFLAGS)'
75 @echo
' CFLAGS = $(CFLAGS)'
76 @echo
' PICFLAG = $(PICFLAG)'
78 @echo
' LDFLAGS = $(LDFLAGS)'
79 @echo
' STLD = $(STLD)'
80 @echo
' STLD_FLAGS = $(STLD_FLAGS)'
81 @echo
' SHLD = $(SHLD)'
82 @echo
' SHLD_FLAGS = $(SHLD_FLAGS)'
83 @echo
' SHLIBEXT = $(SHLIBEXT)'
84 @echo
' srcdir = $(srcdir)'
85 @echo
' builddir = $(builddir)'
86 @echo
' pwd = '`/bin/pwd`
88 # The permissions to give the executables
91 install: showlayout installbin installdat installwebapps installmisc installlib \
92 installheader installpc installplugins
94 # DESTDIR is used here to prevent packagers wasting their time
95 # duplicating the Makefile. Remove it and you will have the privilege
96 # of packaging each samba release for multiple versions of multiple
97 # distributions and operating systems, or at least supplying patches
98 # to all the packaging files required for this, prior to committing
99 # the removal of DESTDIR. Do not remove it even though you think it
103 @
$(SHELL
) $(srcdir)/script
/installdirs.sh \
104 $(DESTDIR
)$(BASEDIR
) \
105 $(DESTDIR
)$(BINDIR
) \
106 $(DESTDIR
)$(SBINDIR
) \
107 $(DESTDIR
)$(TORTUREDIR
) \
108 $(DESTDIR
)$(LIBDIR
) \
109 $(DESTDIR
)$(MODULESDIR
) \
110 $(DESTDIR
)$(MANDIR
) \
111 $(DESTDIR
)$(VARDIR
) \
112 $(DESTDIR
)$(PRIVATEDIR
) \
113 $(DESTDIR
)$(DATADIR
) \
114 $(DESTDIR
)$(PIDDIR
) \
115 $(DESTDIR
)$(LOCKDIR
) \
116 $(DESTDIR
)$(LOGFILEBASE
) \
117 $(DESTDIR
)$(PRIVATEDIR
)/tls \
118 $(DESTDIR
)$(INCLUDEDIR
) \
119 $(DESTDIR
)$(PKGCONFIGDIR
) \
120 $(DESTDIR
)$(CONFIGDIR
) \
122 installbin
: $(SBIN_PROGS
) $(BIN_PROGS
) $(TORTURE_PROGS
) installdirs
123 @
$(SHELL
) $(srcdir)/script
/installbin.sh \
125 $(DESTDIR
)$(BASEDIR
) \
126 $(DESTDIR
)$(SBINDIR
) \
127 $(DESTDIR
)$(LIBDIR
) \
128 $(DESTDIR
)$(VARDIR
) \
130 @
$(SHELL
) $(srcdir)/script
/installbin.sh \
132 $(DESTDIR
)$(BASEDIR
) \
133 $(DESTDIR
)$(BINDIR
) \
134 $(DESTDIR
)$(LIBDIR
) \
135 $(DESTDIR
)$(VARDIR
) \
137 @
$(SHELL
) $(srcdir)/script
/installtorture.sh \
139 $(DESTDIR
)$(TORTUREDIR
) \
142 installlib
: $(INSTALLABLE_SHARED_LIBS
) $(STATIC_LIBS
) installdirs
143 @
$(SHELL
) $(srcdir)/script
/installlib.sh
$(DESTDIR
)$(LIBDIR
) "$(SHLIBEXT)" $(INSTALLABLE_SHARED_LIBS
)
144 @
$(SHELL
) $(srcdir)/script
/installlib.sh
$(DESTDIR
)$(LIBDIR
) "$(STLIBEXT)" $(STATIC_LIBS
)
146 installheader
: headers
installdirs
147 @
srcdir=$(srcdir) builddir
=$(builddir
) $(PERL
) $(srcdir)/script
/installheader.pl
$(DESTDIR
)$(INCLUDEDIR
) $(PUBLIC_HEADERS
) $(DEFAULT_HEADERS
)
149 installdat
: installdirs
150 @
$(SHELL
) $(srcdir)/script
/installdat.sh
$(DESTDIR
)$(DATADIR
) $(srcdir)
152 installwebapps
: installdirs
153 @
$(SHELL
) $(srcdir)/script
/installwebapps.sh
$(DESTDIR
)$(WEBAPPSDIR
) $(srcdir)
154 @
$(SHELL
) $(srcdir)/script
/installjsonrpc.sh
$(DESTDIR
)$(SERVICESDIR
) $(srcdir)
156 installman
: manpages
installdirs
157 @
$(SHELL
) $(srcdir)/script
/installman.sh
$(DESTDIR
)$(MANDIR
) $(MANPAGES
)
159 installmisc
: installdirs
160 @
$(SHELL
) $(srcdir)/script
/installmisc.sh
$(srcdir) $(DESTDIR
)$(JSDIR
) $(DESTDIR
)$(SETUPDIR
) $(DESTDIR
)$(BINDIR
)
162 installpc
: installdirs
163 @
$(SHELL
) $(srcdir)/script
/installpc.sh
$(builddir
) $(DESTDIR
)$(PKGCONFIGDIR
) $(PC_FILES
)
165 uninstall: uninstallbin uninstallman uninstallmisc uninstalllib uninstallheader \
172 @
$(SHELL
) $(srcdir)/script
/uninstallbin.sh
$(INSTALLPERMS
) $(DESTDIR
)$(BASEDIR
) $(DESTDIR
)$(SBINDIR
) $(DESTDIR
)$(LIBDIR
) $(DESTDIR
)$(VARDIR
) $(DESTDIR
)$(SBIN_PROGS
)
173 @
$(SHELL
) $(srcdir)/script
/uninstallbin.sh
$(INSTALLPERMS
) $(DESTDIR
)$(BASEDIR
) $(DESTDIR
)$(BINDIR
) $(DESTDIR
)$(LIBDIR
) $(DESTDIR
)$(VARDIR
) $(DESTDIR
)$(BIN_PROGS
)
174 @
$(SHELL
) $(srcdir)/script
/uninstalltorture.sh
$(DESTDIR
)$(TORTUREDIR
) $(TORTURE_PROGS
)
177 @
$(SHELL
) $(srcdir)/script
/uninstalllib.sh
$(DESTDIR
)$(LIBDIR
) $(SHARED_LIBS
)
178 @
$(SHELL
) $(srcdir)/script
/uninstalllib.sh
$(DESTDIR
)$(LIBDIR
) $(STATIC_LIBS
)
181 @
$(SHELL
) $(srcdir)/script
/uninstallheader.sh
$(DESTDIR
)$(INCLUDEDIR
) $(PUBLIC_HEADERS
)
184 @
$(SHELL
) $(srcdir)/script
/uninstallman.sh
$(DESTDIR
)$(MANDIR
) $(MANPAGES
)
186 Makefile
: config.status
$(MK_FILES
)
190 etags
`find $(srcdir) -name "*.[ch]"`
193 ctags
`find $(srcdir) -name "*.[ch]"`
195 pidl
/Makefile
: pidl
/Makefile.PL
196 cd pidl
&& $(PERL
) Makefile.PL
198 installpidl
: pidl
/Makefile
199 $(MAKE
) -C pidl
install
201 uninstallpidl
: pidl
/Makefile
202 $(MAKE
) -C pidl
uninstall
204 $(IDL_HEADER_FILES
) \
205 $(IDL_NDR_PARSE_H_FILES
) $(IDL_NDR_PARSE_C_FILES
) \
206 $(IDL_NDR_CLIENT_C_FILES
) $(IDL_NDR_CLIENT_H_FILES
) \
207 $(IDL_NDR_SERVER_C_FILES
) $(IDL_SWIG_FILES
) \
208 $(IDL_NDR_EJS_C_FILES
) $(IDL_NDR_EJS_H_FILES
): idl
210 idl_full
: pidl
/lib
/Parse
/Pidl
/IDL.pm pidl
/lib
/Parse
/Pidl
/Expr.pm
211 @CPP
="$(CPP)" PERL
="$(PERL)" srcdir=$(srcdir) $(srcdir)/script
/build_idl.sh FULL
213 idl
: pidl
/lib
/Parse
/Pidl
/IDL.pm pidl
/lib
/Parse
/Pidl
/Expr.pm
214 @CPP
="$(CPP)" PERL
="$(PERL)" srcdir=$(srcdir) $(srcdir)/script
/build_idl.sh PARTIAL
216 pidl
/lib
/Parse
/Pidl
/IDL.pm
: pidl
/idl.yp
217 -$(YAPP
) -m
'Parse::Pidl::IDL' -o pidl
/lib
/Parse
/Pidl
/IDL.pm pidl
/idl.yp ||\
218 touch pidl
/lib
/Parse
/Pidl
/IDL.pm
220 pidl
/lib
/Parse
/Pidl
/Expr.pm
: pidl
/idl.yp
221 -$(YAPP
) -m
'Parse::Pidl::Expr' -o pidl
/lib
/Parse
/Pidl
/Expr.pm pidl
/expr.yp ||\
222 touch pidl
/lib
/Parse
/Pidl
/Expr.pm
224 smb_interfaces
: pidl
/smb_interfaces.pm
225 $(PERL
) -Ipidl
$(srcdir)/script
/build_smb_interfaces.pl \
226 include/smb_interfaces.h
228 pidl
/smb_interfaces.pm
: pidl
/smb_interfaces.yp
229 -$(YAPP
) -s
-m
'smb_interfaces' -o pidl
/smb_interfaces.pm pidl
/smb_interfaces.yp ||\
230 touch pidl
/smb_interfaces.pm
233 @echo
"include/config.h not present"
234 @echo
"You need to rerun ./autogen.sh and ./configure"
237 $(srcdir)/version.h
: $(srcdir)/VERSION
238 @
$(SHELL
) script
/mkversion.sh VERSION
$(srcdir)/version.h
$(srcdir)/
241 @
$(SHELL
) script
/mkversion.sh VERSION
$(srcdir)/version.h
$(srcdir)/
244 @echo
"Removing precompiled headers"
245 @
-rm -f
include/includes.h.gch
247 pch
: clean_pch
include/includes.h.gch
250 @echo Removing objects
251 @
-find .
-name
'*.o' -exec
rm -f
'{}' \
;
252 @echo Removing hostcc objects
253 @
-find .
-name
'*.ho' -exec
rm -f
'{}' \
;
254 @echo Removing binaries
255 @
-rm -f
$(BIN_PROGS
) $(SBIN_PROGS
) $(BINARIES
) $(TORTURE_PROGS
)
256 @echo Removing libraries
257 @
-rm -f
$(STATIC_LIBRARIES
) $(SHARED_LIBRARIES
)
258 @
-rm -f bin
/static
/*.a bin
/shared
/*.
$(SHLIBEXT
)
259 @echo Removing modules
260 @
-rm -f bin
/modules
/*/*.
$(SHLIBEXT
)
261 @
-rm -f bin
/*_init_module.c
262 @echo Removing dummy targets
264 @echo Removing generated files
265 @
-rm -f bin
/*_init_module.c
266 @
-rm -rf librpc
/gen_
*
267 @echo Removing proto headers
268 @
-rm -f
$(PROTO_HEADERS
)
271 -rm -f
include/config.h
include/config_tmp.h
include/build.h
274 -rm -f config.log config.cache
275 -rm -f config.pm config.mk
276 -rm -rf webapps
/qooxdoo-
*-sdk
/frontend
/framework
/.cache
280 -rm -f
*.bak
*~
*/*.bak
*/*~
*/*/*.bak
*/*/*~
*/*/*/*.bak
*/*/*/*~
282 realdistclean
: distclean removebackup
283 -rm -f
include/config_tmp.h.in
289 test: $(DEFAULT_TEST_TARGET
)
291 SELFTEST
= builddir
=$(builddir
) srcdir=$(srcdir) \
292 $(srcdir)/script
/tests
/selftest.sh
${selftest_prefix}
294 test-swrap
: all libraries
295 $(SELFTEST
) all SOCKET_WRAPPER
297 test-noswrap
: all libraries
301 $(SELFTEST
) quick SOCKET_WRAPPER
303 testenv
: all libraries
304 $(SELFTEST
) xterm SOCKET_WRAPPER
306 valgrindtest
: valgrindtest-quick
308 valgrindtest-quick
: all
309 SMBD_VALGRIND
="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \
310 VALGRIND
="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
311 $(SELFTEST
) quick SOCKET_WRAPPER
313 valgrindtest-all
: all libraries
314 SMBD_VALGRIND
="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \
315 VALGRIND
="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
316 $(SELFTEST
) all SOCKET_WRAPPER
318 valgrindtest-env
: all libraries
319 SMBD_VALGRIND
="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \
320 VALGRIND
="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
321 $(SELFTEST
) xterm SOCKET_WRAPPER
323 gdbtest
: gdbtest-quick
326 SMBD_VALGRIND
="xterm -n smbd -e gdb --args " \
327 $(SELFTEST
) quick SOCKET_WRAPPER
329 gdbtest-all
: all libraries
330 SMBD_VALGRIND
="xterm -n smbd -e gdb --args " \
331 $(SELFTEST
) all SOCKET_WRAPPER
337 $(srcdir)/script
/find_unused_macros.pl
`find . -name "*.[ch]"` |
sort
339 ###############################################################################
341 ###############################################################################
343 .SUFFIXES
: .x .c .et .y .l .d .o .h .h.gch .a .
$(SHLIBEXT
) .1 .1.xml
.3 .3.xml
.5 .5.xml
.7 .7.xml
.8 .8.xml .ho .idl .hd
345 # Dependencies command
346 DEPENDS
= $(CC
) -M
-MG
-MP
-MT
$(<:.c
=.o
) -MT
$@ \
347 `$(PERL) $(srcdir)/script/cflags.pl $@` $(CFLAGS
) $< -o
$@
348 # Dependencies for host objects
349 HDEPENDS
= $(CC
) -M
-MG
-MP
-MT
$(<:.c
=.ho
) -MT
$@ \
350 `$(PERL) $(srcdir)/script/cflags.pl $@` $(HOSTCC_CFLAGS
) $< -o
$@
351 # Dependencies for precompiled headers
352 PCHDEPENDS
= $(CC
) -M
-MG
-MT
include/includes.h.gch
-MT
$@ \
356 @echo
"Generating dependencies for $<"
360 @echo
"Generating host-compiler dependencies for $<"
363 include/includes.d
: include/includes.h
364 @echo
"Generating dependencies for $<"
368 # $< is broken in older BSD versions:
369 # when $@ is foo/bar.o, $< could be torture/foo/bar.c
370 # if it also exists. So better use $* which is foo/bar
371 # and append .c manually to get foo/bar.c
374 # Run a static analysis checker
375 CHECK
= $(CC_CHECKER
) `$(PERL) $(srcdir)/script/cflags.pl $@` \
376 $(CFLAGS
) $(PICFLAG
) -c
$*.c
-o
$@
378 # Run the configured compiler
379 COMPILE
= $(CC
) `$(PERL) $(srcdir)/script/cflags.pl $@` \
380 $(CFLAGS
) $(PICFLAG
) -c
$*.c
-o
$@
382 # Run the compiler for the build host
383 HCOMPILE
= $(HOSTCC
) `$(PERL) $(srcdir)/script/cflags.pl $@` \
384 $(HOSTCC_CFLAGS
) -c
$*.c
-o
$@
387 PCHCOMPILE
= @
$(CC
) -Ilib
/replace \
388 `$(PERL) $(srcdir)/script/cflags.pl $@` \
389 $(CFLAGS
) $(PICFLAG
) -c
$*.c
-o
$@
392 @if
test -n
"$(CC_CHECKER)"; then \
393 echo
"Checking $< with '$(CC_CHECKER)'"; \
397 @
-mkdir
-p
`dirname $@`
398 @
$(COMPILE
) && exit
0 ; \
399 echo
"The following command failed:" 1>&2;\
400 echo
"$(COMPILE)" 1>&2;\
401 $(COMPILE
) >/dev
/null
2>&1
404 @echo
"Compiling $< with host compiler"
405 @
-mkdir
-p
`dirname $@`
406 @
$(HCOMPILE
) && exit
0;\
407 echo
"The following command failed:" 1>&2;\
408 echo
"$(HCOMPILE)" 1>&2;\
409 $(HCOMPILE
) >/dev
/null
2>&1
412 @echo
"Precompiling $<"
416 @echo
"Building $< with $(YACC)"
417 @
-$(srcdir)/script
/yacc_compile.sh
"$(YACC)" "$<" "$@"
420 @echo
"Building $< with $(LEX)"
421 @
-$(srcdir)/script
/lex_compile.sh
"$(LEX)" "$<" "$@"
423 DOCBOOK_MANPAGE_URL
= http
://docbook.sourceforge.net
/release
/xsl
/current
/manpages
/docbook.xsl
426 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
429 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
432 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
435 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
438 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
440 DEP_FILES
= $(patsubst %.ho
,%.hd
,$(patsubst %.o
,%.d
,$(ALL_OBJS
))) \
443 dist:: distclean idl_full manpages configure
449 @echo Removing dependency files
450 @find .
-name \
*.d
-o
-name \
*.hd | xargs
rm -f