1 | # samba 4 bits
|
---|
2 |
|
---|
3 | PROG_LD = $(LD)
|
---|
4 | BNLD = $(CC)
|
---|
5 | HOSTLD = $(CC)
|
---|
6 | PARTLINK = $(PROG_LD) -r
|
---|
7 | MDLD = $(SHLD)
|
---|
8 | MDLD_FLAGS = $(LDSHFLAGS)
|
---|
9 | shliboutputdir = bin/shared
|
---|
10 |
|
---|
11 | samba4srcdir = $(srcdir)/../source4
|
---|
12 |
|
---|
13 | # Flags used for the samba 4 files
|
---|
14 | # $(srcdir)/include is required for config.h
|
---|
15 | SAMBA4_CFLAGS = -I.. -I$(samba4srcdir) -I$(samba4srcdir)/include \
|
---|
16 | -I$(samba4srcdir)/../lib/replace -I$(samba4srcdir)/lib \
|
---|
17 | -I$(heimdalsrcdir)/lib/hcrypto -I$(tallocdir) \
|
---|
18 | -I$(srcdir)/include -D_SAMBA_BUILD_=4 -DHAVE_CONFIG_H
|
---|
19 |
|
---|
20 | .SUFFIXES: .ho
|
---|
21 |
|
---|
22 | # No cross compilation for now, thanks
|
---|
23 | .c.ho:
|
---|
24 | @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
|
---|
25 | dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
|
---|
26 | @if test -n "$(CC_CHECKER)"; then \
|
---|
27 | echo "Checking $*.c with '$(CC_CHECKER)'";\
|
---|
28 | $(CHECK_CC); \
|
---|
29 | fi
|
---|
30 | @echo Compiling $*.c
|
---|
31 | @$(COMPILE) && exit 0;\
|
---|
32 | echo "The following command failed:" 1>&2;\
|
---|
33 | echo "$(subst ",\",$(COMPILE_CC))" 1>&2;\
|
---|
34 | $(COMPILE_CC) >/dev/null 2>&1
|
---|
35 |
|
---|
36 | # The order really does matter here! GNU Make 3.80 will break if the more specific
|
---|
37 | # overrides are not specified first.
|
---|
38 | ifeq ($(MAKE_VERSION),3.81)
|
---|
39 | %.o: CFLAGS+=$(FLAGS)
|
---|
40 | ../librpc/gen_ndr/%_c.o: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
41 | ../librpc/gen_ndr/py_%.o: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
42 | $(samba4srcdir)/%.o: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
43 | $(samba4srcdir)/%.ho: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
44 | $(heimdalsrcdir)/%.o: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir)
|
---|
45 | $(heimdalsrcdir)/%.ho: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir)
|
---|
46 | else
|
---|
47 | $(heimdalsrcdir)/%.o: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir)
|
---|
48 | $(heimdalsrcdir)/%.ho: CFLAGS=-I$(heimdalbuildsrcdir) $(SAMBA4_CFLAGS) -I$(srcdir)
|
---|
49 | $(samba4srcdir)/%.o: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
50 | $(samba4srcdir)/%.ho: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
51 | ../librpc/gen_ndr/%_c.o: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
52 | ../librpc/gen_ndr/py_%.o: CFLAGS=$(SAMBA4_CFLAGS)
|
---|
53 | %.o: CFLAGS+=$(FLAGS)
|
---|
54 | endif
|
---|
55 |
|
---|
56 | # Create a static library
|
---|
57 | %.a:
|
---|
58 | @echo Linking $@
|
---|
59 | @rm -f $@
|
---|
60 | @mkdir -p $(@D)
|
---|
61 | @$(AR) -rc $@ $^
|
---|
62 |
|
---|
63 | pidldir = $(samba4srcdir)/../pidl
|
---|
64 | include $(pidldir)/config.mk
|
---|
65 | include samba4-config.mk
|
---|
66 | include samba4-templates.mk
|
---|
67 |
|
---|
68 | zlibsrcdir := $(samba4srcdir)/../lib/zlib
|
---|
69 | dynconfigsrcdir := $(samba4srcdir)/dynconfig
|
---|
70 | heimdalsrcdir := $(samba4srcdir)/heimdal
|
---|
71 | dsdbsrcdir := $(samba4srcdir)/dsdb
|
---|
72 | smbdsrcdir := $(samba4srcdir)/smbd
|
---|
73 | clustersrcdir := $(samba4srcdir)/cluster
|
---|
74 | libnetsrcdir := $(samba4srcdir)/libnet
|
---|
75 | authsrcdir := $(samba4srcdir)/auth
|
---|
76 | nsswitchsrcdir := $(samba4srcdir)/../nsswitch
|
---|
77 | libwbclientsrcdir := $(nsswitchsrcdir)/libwbclient
|
---|
78 | libsrcdir := $(samba4srcdir)/lib
|
---|
79 | libsocketsrcdir := $(samba4srcdir)/lib/socket
|
---|
80 | libcharsetsrcdir := $(samba4srcdir)/../lib/util/charset
|
---|
81 | ldb_sambasrcdir := $(samba4srcdir)/lib/ldb-samba
|
---|
82 | libtlssrcdir := $(samba4srcdir)/lib/tls
|
---|
83 | libregistrysrcdir := $(samba4srcdir)/lib/registry
|
---|
84 | libmessagingsrcdir := $(samba4srcdir)/lib/messaging
|
---|
85 | libteventsrcdir := $(samba4srcdir)/../lib/tevent
|
---|
86 | libeventssrcdir := $(samba4srcdir)/lib/events
|
---|
87 | libcmdlinesrcdir := $(samba4srcdir)/lib/cmdline
|
---|
88 | poptsrcdir := $(samba4srcdir)/../lib/popt
|
---|
89 | socketwrappersrcdir := $(samba4srcdir)/../lib/socket_wrapper
|
---|
90 | nsswrappersrcdir := $(samba4srcdir)/../lib/nss_wrapper
|
---|
91 | uidwrappersrcdir := $(samba4srcdir)/../lib/uid_wrapper
|
---|
92 | libstreamsrcdir := $(samba4srcdir)/lib/stream
|
---|
93 | libutilsrcdir := $(samba4srcdir)/../lib/util
|
---|
94 | libtdrsrcdir := ../lib/tdr
|
---|
95 | libcryptosrcdir := $(samba4srcdir)/../lib/crypto
|
---|
96 | libtorturesrcdir := ../lib/torture
|
---|
97 | libcompressionsrcdir := $(samba4srcdir)/../lib/compression
|
---|
98 | libgencachesrcdir := $(samba4srcdir)/lib
|
---|
99 | paramsrcdir := $(samba4srcdir)/param
|
---|
100 | smb_serversrcdir := $(samba4srcdir)/smb_server
|
---|
101 | rpc_serversrcdir := $(samba4srcdir)/rpc_server
|
---|
102 | ldap_serversrcdir := $(samba4srcdir)/ldap_server
|
---|
103 | web_serversrcdir := $(samba4srcdir)/web_server
|
---|
104 | winbindsrcdir := $(samba4srcdir)/winbind
|
---|
105 | nbt_serversrcdir := $(samba4srcdir)/nbt_server
|
---|
106 | wrepl_serversrcdir := $(samba4srcdir)/wrepl_server
|
---|
107 | cldap_serversrcdir := $(samba4srcdir)/cldap_server
|
---|
108 | librpcsrcdir := $(samba4srcdir)/librpc
|
---|
109 | torturesrcdir := $(samba4srcdir)/torture
|
---|
110 | utilssrcdir := $(samba4srcdir)/utils
|
---|
111 | ntvfssrcdir := $(samba4srcdir)/ntvfs
|
---|
112 | ntptrsrcdir := $(samba4srcdir)/ntptr
|
---|
113 | clientsrcdir := $(samba4srcdir)/client
|
---|
114 | libclisrcdir := $(samba4srcdir)/libcli
|
---|
115 | libclinbtsrcdir := $(samba4srcdir)/../libcli/nbt
|
---|
116 | libclicommonsrcdir := $(samba4srcdir)/../libcli
|
---|
117 | pyscriptsrcdir := $(samba4srcdir)/scripting/python
|
---|
118 | kdcsrcdir := $(samba4srcdir)/kdc
|
---|
119 | smbreadlinesrcdir := $(samba4srcdir)/lib/smbreadline
|
---|
120 | ntp_signdsrcdir := $(samba4srcdir)/ntp_signd
|
---|
121 | tdbsrcdir := $(samba4srcdir)/../lib/tdb
|
---|
122 | ldbsrcdir := $(samba4srcdir)/lib/ldb
|
---|
123 | tallocsrcdir := $(samba4srcdir)/../lib/talloc
|
---|
124 | comsrcdir := $(samba4srcdir)/lib/com
|
---|
125 | override ASN1C = bin/asn1_compile4
|
---|
126 | override ET_COMPILER = bin/compile_et4
|
---|
127 | #include $(samba4srcdir)/build/make/python.mk
|
---|
128 | include samba4-data.mk
|
---|
129 | include $(samba4srcdir)/static_deps.mk
|
---|
130 |
|
---|
131 | INSTALLPERMS = 0755
|
---|
132 | $(foreach SCRIPT,$(wildcard scripting/bin/*),$(eval $(call binary_install_template,$(SCRIPT))))
|
---|
133 |
|
---|
134 | $(DESTDIR)$(bindir)/%4: bin/%4 installdirs
|
---|
135 | @mkdir -p $(@D)
|
---|
136 | @echo Installing $(@F) as $@
|
---|
137 | @if test -f $@; then rm -f $@.old; mv $@ $@.old; fi
|
---|
138 | @cp $< $@
|
---|
139 | @chmod $(INSTALLPERMS) $@
|
---|
140 |
|
---|
141 | $(DESTDIR)$(sbindir)/%4: bin/%4 installdirs
|
---|
142 | @mkdir -p $(@D)
|
---|
143 | @echo Installing $(@F) as $@
|
---|
144 | @if test -f $@; then rm -f $@.old; mv $@ $@.old; fi
|
---|
145 | @cp $< $@
|
---|
146 | @chmod $(INSTALLPERMS) $@
|
---|
147 |
|
---|
148 | clean::
|
---|
149 | @echo Removing samba 4 objects
|
---|
150 | @-find $(samba4srcdir) -name '*.o' -exec rm -f '{}' \;
|
---|
151 | @echo Removing samba 4 hostcc objects
|
---|
152 | @-find $(samba4srcdir) -name '*.ho' -exec rm -f '{}' \;
|
---|
153 | @echo Removing samba 4 libraries
|
---|
154 | @-rm -f $(STATIC_LIBS) $(SHARED_LIBS)
|
---|
155 | @-rm -f bin/static/*.a $(shliboutputdir)/*.$(SHLIBEXT) bin/mergedobj/*.o
|
---|
156 | @echo Removing samba 4 modules
|
---|
157 | @-rm -f bin/modules/*/*.$(SHLIBEXT)
|
---|
158 | @-rm -f bin/*_init_module.c
|
---|
159 | @echo Removing samba 4 dummy targets
|
---|
160 | @-rm -f bin/.*_*
|
---|
161 | @echo Removing samba 4 generated files
|
---|
162 | @-rm -f bin/*_init_module.c
|
---|
163 | @-rm -rf $(samba4srcdir)/librpc/gen_*
|
---|
164 |
|
---|
165 | proto:: $(PROTO_HEADERS)
|
---|
166 | modules:: $(PLUGINS)
|
---|
167 |
|
---|
168 | #pythonmods:: $(PYTHON_PYS) $(PYTHON_SO)
|
---|
169 |
|
---|
170 | all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4 setup plugins
|
---|
171 | torture:: bin/smbtorture4
|
---|
172 |
|
---|
173 | #
|
---|
174 | ## This is a fake rule to stop any python being invoked as currently the
|
---|
175 | ## build system is broken in source3 with python. JRA.
|
---|
176 | #
|
---|
177 | installpython:: bin/smbtorture4
|
---|
178 |
|
---|
179 | everything:: $(patsubst %,%4,$(BINARIES))
|
---|
180 | setup:
|
---|
181 | @ln -sf ../source4/setup setup
|
---|
182 |
|
---|
183 | S4_LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)="$(builddir)/bin/shared:$$$(LIB_PATH_VAR)"
|
---|
184 |
|
---|
185 | SELFTEST4 = $(S4_LD_LIBPATH_OVERRIDE) EXEEXT="4" PYTHON="$(PYTHON)" PERL="$(PERL)" \
|
---|
186 | $(PERL) $(selftestdir)/selftest.pl --prefix=st4 \
|
---|
187 | --builddir=$(builddir) --srcdir=$(samba4srcdir) \
|
---|
188 | --exeext=4 \
|
---|
189 | --expected-failures=$(samba4srcdir)/selftest/knownfail \
|
---|
190 | --format=$(SELFTEST_FORMAT) \
|
---|
191 | --exclude=$(samba4srcdir)/selftest/skip --testlist="$(samba4srcdir)/selftest/tests.sh|" \
|
---|
192 | $(TEST4_OPTIONS)
|
---|
193 |
|
---|
194 | SELFTEST4_NOSLOW_OPTS = --exclude=$(samba4srcdir)/selftest/slow
|
---|
195 | SELFTEST4_QUICK_OPTS = $(SELFTEST4_NOSLOW_OPTS) --quick --include=$(samba4srcdir)/selftest/quick
|
---|
196 |
|
---|
197 | slowtest4:: everything
|
---|
198 | $(SELFTEST4) $(DEFAULT_TEST_OPTIONS) --immediate $(TESTS)
|
---|
199 |
|
---|
200 | test4:: everything
|
---|
201 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) $(DEFAULT_TEST_OPTIONS) --immediate \
|
---|
202 | $(TESTS)
|
---|
203 |
|
---|
204 | testone4:: everything
|
---|
205 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) $(DEFAULT_TEST_OPTIONS) --one $(TESTS)
|
---|
206 |
|
---|
207 | test4-swrap:: everything
|
---|
208 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper --immediate $(TESTS)
|
---|
209 |
|
---|
210 | test4-swrap-pcap:: everything
|
---|
211 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper-pcap --immediate $(TESTS)
|
---|
212 |
|
---|
213 | test4-swrap-keep-pcap:: everything
|
---|
214 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper-keep-pcap --immediate $(TESTS)
|
---|
215 |
|
---|
216 | test4-noswrap:: everything
|
---|
217 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --immediate $(TESTS)
|
---|
218 |
|
---|
219 | quicktest4:: all
|
---|
220 | $(SELFTEST4) $(SELFTEST4_QUICK_OPTS) --socket-wrapper --immediate $(TESTS)
|
---|
221 |
|
---|
222 | quicktestone4:: all
|
---|
223 | $(SELFTEST4) $(SELFTEST4_QUICK_OPTS) --socket-wrapper --one $(TESTS)
|
---|
224 |
|
---|
225 | testenv4:: everything
|
---|
226 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper --testenv
|
---|
227 |
|
---|
228 | testenv4-%:: everything
|
---|
229 | SELFTEST_TESTENV=$* $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper --testenv
|
---|
230 |
|
---|
231 | test4-%::
|
---|
232 | $(MAKE) test TESTS=$*
|
---|
233 |
|
---|
234 | valgrindtest4:: valgrindtest-all
|
---|
235 |
|
---|
236 | valgrindtest4-quick:: all
|
---|
237 | SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/valgrind_run $(LD_LIBPATH_OVERRIDE)" \
|
---|
238 | VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
|
---|
239 | $(SELFTEST4) $(SELFTEST4_QUICK_OPTS) --immediate --socket-wrapper $(TESTS)
|
---|
240 |
|
---|
241 | valgrindtest4-all:: everything
|
---|
242 | SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/valgrind_run $(LD_LIBPATH_OVERRIDE)" \
|
---|
243 | VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
|
---|
244 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --immediate --socket-wrapper $(TESTS)
|
---|
245 |
|
---|
246 | valgrindtest4-env:: everything
|
---|
247 | SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/valgrind_run $(LD_LIBPATH_OVERRIDE)" \
|
---|
248 | VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
|
---|
249 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper --testenv
|
---|
250 |
|
---|
251 | gdbtest4:: gdbtest4-all
|
---|
252 |
|
---|
253 | gdbtest4-quick:: all
|
---|
254 | SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \
|
---|
255 | $(SELFTEST4) $(SELFTEST4_QUICK_OPTS) --immediate --socket-wrapper $(TESTS)
|
---|
256 |
|
---|
257 | gdbtest4-all:: everything
|
---|
258 | SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \
|
---|
259 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --immediate --socket-wrapper $(TESTS)
|
---|
260 |
|
---|
261 | gdbtest4-env:: everything
|
---|
262 | SAMBA_VALGRIND="xterm -n server -e $(selftestdir)/gdb_run $(LD_LIBPATH_OVERRIDE)" \
|
---|
263 | $(SELFTEST4) $(SELFTEST4_NOSLOW_OPTS) --socket-wrapper --testenv
|
---|
264 |
|
---|
265 | plugins: $(PLUGINS)
|
---|