1 # Rules file for Samba 4
2 # This relies on GNU make.
5 DEPENDS
= $(CC
) -M
-MG
-MP
-MT
$(<:.c
=.o
) -MT
$@
-MT
: \
6 $(CFLAGS
) $(CPPFLAGS
) $< -o
$@
7 # Dependencies for host objects
8 HDEPENDS
= $(CC
) -M
-MG
-MP
-MT
$(<:.c
=.ho
) -MT
$@
-MT
: \
9 $(HOSTCC_FLAGS
) $(CPPFLAGS
) $< -o
$@
10 # Dependencies for precompiled headers
11 PCHDEPENDS
= $(CC
) -M
-MG
-MT
include/includes.h.gch
-MT
$@ \
12 $(CFLAGS
) $(CPPFLAGS
) $< -o
$@
14 # Run a static analysis checker
15 CHECK
= $(CC_CHECKER
) $(CFLAGS
) $(PICFLAG
) $(CPPLAGS
) -c
$< -o
$@
17 # Run the configured compiler
18 COMPILE
= $(CC
) $(CFLAGS
) $(PICFLAG
) \
22 # Run the compiler for the build host
23 HCOMPILE
= $(HOSTCC
) $(HOSTCC_FLAGS
) $(CPPFLAGS
) -c
$< -o
$@
26 PCHCOMPILE
= @
$(CC
) -Ilib
/replace \
27 $(CFLAGS
) $(PICFLAG
) $(CPPFLAGS
) -c
$< -o
$@
30 PARTLINK
= @
$(PROG_LD
) -r
32 make_utility_dir
= $(srcdir)/build
/make
/
35 @echo
"include/config.h not present"
36 @echo
"You need to rerun ./autogen.sh and ./configure"
42 @echo Removing objects
43 @
-find .
-name
'*.o' -exec
rm -f
'{}' \
;
44 @echo Removing hostcc objects
45 @
-find .
-name
'*.ho' -exec
rm -f
'{}' \
;
46 @echo Removing libraries
47 @
-rm -f
$(STATIC_LIBS
) $(SHARED_LIBS
)
48 @
-rm -f bin
/static
/*.a
$(shliboutputdir
)/*.
$(SHLIBEXT
) bin
/mergedobj
/*.o
49 @echo Removing modules
50 @
-rm -f bin
/modules
/*/*.
$(SHLIBEXT
)
51 @
-rm -f bin
/*_init_module.c
52 @echo Removing dummy targets
54 @echo Removing generated files
55 @
-rm -f bin
/*_init_module.c
59 -rm -f
include/config.h
include/config_tmp.h
include/build.h
62 -rm -f config.log config.cache
63 -rm -f config.pm config.mk
67 -rm -f
*.bak
*~
*/*.bak
*/*~
*/*/*.bak
*/*/*~
*/*/*/*.bak
*/*/*/*~
69 realdistclean
:: distclean removebackup
70 -rm -f
include/config_tmp.h.in
78 $(srcdir)/script
/find_unused_macros.pl
`find . -name "*.[ch]"` |
sort
80 # Create a static library
85 @
$(STLD
) $(STLD_FLAGS
) $@
$^
87 include $(make_utility_dir
)/templates.mk
89 ###############################################################################
91 ###############################################################################
93 .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
96 @echo
"Generating dependencies for $<"
100 @echo
"Generating host-compiler dependencies for $<"
103 include/includes.d
: include/includes.h
104 @echo
"Generating dependencies for $<"
108 @if
test -n
"$(CC_CHECKER)"; then \
109 echo
"Checking $< with '$(CC_CHECKER)'"; \
113 @
-mkdir
-p
`dirname $@`
114 @
$(COMPILE
) && exit
0 ; \
115 echo
"The following command failed:" 1>&2;\
116 echo
"$(subst ",\",$(COMPILE
))" 1>&2 && exit 1
120 @echo "Compiling
$< with host compiler
"
121 @-mkdir -p `dirname $@`
122 @$(HCOMPILE) && exit 0;\
123 echo "The following command failed
:" 1>&2;\
124 echo "$(subst ",\",$(HCOMPILE))" 1>&2;\
125 $(HCOMPILE
) >/dev
/null
2>&1
128 @echo
"Precompiling $<"
132 @echo
"Building $< with $(YACC)"
133 @
-$(make_utility_dir
)/yacc_compile.sh
"$(YACC)" "$<" "$@"
136 @echo
"Building $< with $(LEX)"
137 @
-$(make_utility_dir
)/lex_compile.sh
"$(LEX)" "$<" "$@"
143 @
$(STLD
) $(STLD_FLAGS
) $@
$^
146 DOCBOOK_MANPAGE_URL
= http
://docbook.sourceforge.net
/release
/xsl
/current
/manpages
/docbook.xsl
149 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
152 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
155 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
158 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
161 $(XSLTPROC
) -o
$@
$(DOCBOOK_MANPAGE_URL
) $<
163 dist:: idl_full manpages configure
distclean
169 @echo
'Samba will be compiled with flags:'
170 @echo
' CPP = $(CPP)'
171 @echo
' CPPFLAGS = $(CPPFLAGS)'
173 @echo
' CFLAGS = $(CFLAGS)'
174 @echo
' PICFLAG = $(PICFLAG)'
175 @echo
' BNLD = $(BNLD)'
176 @echo
' BNLD_FLAGS = $(BNLD_FLAGS)'
177 @echo
' STLD = $(STLD)'
178 @echo
' STLD_FLAGS = $(STLD_FLAGS)'
179 @echo
' SHLD = $(SHLD)'
180 @echo
' SHLD_FLAGS = $(SHLD_FLAGS)'
181 @echo
' MDLD = $(MDLD)'
182 @echo
' MDLD_FLAGS = $(MDLD_FLAGS)'
183 @echo
' SHLIBEXT = $(SHLIBEXT)'
186 etags
$(ETAGS_OPTIONS
) `find $(base_srcdirs) -name "*.[ch]"`
189 ctags
$(CTAGS_OPTIONS
) `find $(base_srcdirs) -name "*.[ch]" | grep -v "_proto\.h"`