| 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)
|
|---|