1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-25 06:04:04 +03:00

r8832: Automatically rebuilding C files if headers change (in developer mode)

(This used to be commit bb02e1dccb058e31cf33aaac954708276090a9ec)
This commit is contained in:
Jelmer Vernooij 2005-07-28 14:37:54 +00:00 committed by Gerald (Jerry) Carter
parent 7c948bb2a3
commit 726681d158
3 changed files with 34 additions and 2 deletions

View File

@ -146,6 +146,7 @@ AC_ARG_WITH(selftest-prefix,
esac])
developer=no
AC_SUBST(developer)
AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
[if test x$enable_developer = xyes; then
debug=yes

View File

@ -7,6 +7,7 @@
###########################################################
package makefile;
use config qw(%config);
use strict;
sub _prepare_command_interpreters($)
@ -118,7 +119,7 @@ sub _prepare_SUFFIXES($)
$output = << '__EOD__';
.SUFFIXES:
.SUFFIXES: .c .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml
.SUFFIXES: .c .d .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml
__EOD__
@ -212,6 +213,16 @@ dynconfig.o: dynconfig.c Makefile
__EOD__
}
sub _prepare_depend_CC_rule()
{
return << '__EOD__';
.c.d:
@echo "Generating dependencies for $<"
@$(CC) -MM -MG -MT $(<:.c=.o) -MF $@ $(CFLAGS) $<
__EOD__
}
###########################################################
# This function creates a standard make rule which is using $(CC)
#
@ -561,6 +572,13 @@ distclean: clean
-rm -f config.log config.cache
-rm -f samba4-deps.dot
-rm -f lib/registry/winregistry.pc
__EOD__
if ($config{developer} eq "yes") {
$output .= "\t@-rm -f \$(_ALL_OBJS_OBJS:.o=.d)\n";
}
$output .= << '__EOD__';
removebackup:
-rm -f *.bak *~ */*.bak */*~ */*/*.bak */*/*~ */*/*/*.bak */*/*/*~
@ -821,6 +839,8 @@ sub _prepare_makefile_in($)
$output .= _prepare_std_CC_rule("c","o",'@PICFLAG@',"Compiling","Rule for std objectfiles");
$output .= _prepare_std_CC_rule("h","h.gch",'@PICFLAG@',"Precompiling","Rule for precompiled headerfiles");
$output .= _prepare_depend_CC_rule();
$output .= _prepare_man_rule("1");
$output .= _prepare_man_rule("3");
$output .= _prepare_man_rule("5");
@ -837,6 +857,16 @@ sub _prepare_makefile_in($)
$output .= _prepare_make_target({ TARGET => "all", DEPEND_LIST => \@all });
if ($config{developer} eq "yes") {
$output .= <<__EOD__
-include \$(_ALL_OBJS_OBJS:.o=.d)
IDL_FILES = \$(wildcard librpc/idl/*.idl)
\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.c,\$(IDL_FILES)) \\
\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_\%_c.c,\$(IDL_FILES)) \\
\$(patsubst librpc/idl/%.idl,librpc/gen_ndr/ndr_%.h,\$(IDL_FILES)): idl
__EOD__
}
return $output;
}
@ -862,3 +892,4 @@ sub create_makefile_in($$)
}
1;

View File

@ -192,7 +192,7 @@ AC_CHECK_TYPES(u_int8_t)
# of the samba source tree
if test -d heimdal; then
AC_DEFINE(HAVE_KRB5,1,[Whether kerberos is available])
CFLAGS="${CFLAGS} -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/gssapi -Iheimdal/lib/asn1 -Iheimdal/lib/com_err -Iheimdal/lib/hdb -Iheimdal/kdc"
CFLAGS="${CFLAGS} -Iheimdal_build -Iheimdal/lib/krb5 -Iheimdal/lib/gssapi -Iheimdal/lib/asn1 -Iheimdal/lib/com_err -Iheimdal/lib/hdb -Iheimdal/kdc -Iheimdal/lib/roken -Iheimdal/lib/des"
HAVE_KRB5=YES
SMB_SUBSYSTEM_ENABLE(KERBEROS_LIB, YES)
SMB_BINARY_ENABLE(asn1_compile, YES)