mirror of
https://github.com/samba-team/samba.git
synced 2025-01-13 13:18:06 +03:00
r22047: Move suffix rules into smb_build. Enable $< if we are building with
GNU Make. This lets GNU Make users bild with $srcdir != $builddir.
This commit is contained in:
parent
5a96812929
commit
bb473bf856
@ -46,6 +46,7 @@ sub new($$$)
|
||||
$self->output("default: all\n\n");
|
||||
|
||||
$self->_prepare_path_vars();
|
||||
$self->_prepare_suffix_rules();
|
||||
$self->_prepare_compiler_linker();
|
||||
|
||||
if (!$self->{automatic_deps}) {
|
||||
@ -104,6 +105,57 @@ __EOD__
|
||||
);
|
||||
}
|
||||
|
||||
sub _prepare_suffix_rules($)
|
||||
{
|
||||
my ($self) = @_;
|
||||
my $first_prereq = '$*.c';
|
||||
|
||||
if ($self->{config}->{GNU_MAKE} eq 'yes') {
|
||||
$first_prereq = '$<';
|
||||
}
|
||||
|
||||
$self->output(<< "__EOD__"
|
||||
# Dependencies command
|
||||
DEPENDS = \$(CC) -M -MG -MP -MT \$(<:.c=.o) -MT \$@ \\
|
||||
`\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
|
||||
\$(CFLAGS) $first_prereq-o \$@
|
||||
# Dependencies for host objects
|
||||
HDEPENDS = \$(CC) -M -MG -MP -MT \$(<:.c=.ho) -MT \$@ \\
|
||||
`\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
|
||||
\$(HOSTCC_CFLAGS) $first_prereq -o \$@
|
||||
# Dependencies for precompiled headers
|
||||
PCHDEPENDS = \$(CC) -M -MG -MT include/includes.h.gch -MT \$@ \\
|
||||
\$(CFLAGS) $first_prereq -o \$@
|
||||
|
||||
# \$< is broken in older BSD versions:
|
||||
# when \$@ is foo/bar.o, \$< could be torture/foo/bar.c
|
||||
# if it also exists. So better use \$* which is foo/bar
|
||||
# and append .c manually to get foo/bar.c
|
||||
#
|
||||
# If we have GNU Make, it is safe to use \$<, which also lets
|
||||
# building with \$srcdir != \$builddir work.
|
||||
|
||||
# Run a static analysis checker
|
||||
CHECK = \$(CC_CHECKER) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
|
||||
\$(CFLAGS) \$(PICFLAG) -c $first_prereq -o \$@
|
||||
|
||||
# Run the configured compiler
|
||||
COMPILE = \$(CC) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
|
||||
\$(CFLAGS) \$(PICFLAG) -c $first_prereq -o \$@
|
||||
|
||||
# Run the compiler for the build host
|
||||
HCOMPILE = \$(HOSTCC) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
|
||||
\$(HOSTCC_CFLAGS) -c $first_prereq -o \$@
|
||||
|
||||
# Precompile headers
|
||||
PCHCOMPILE = @\$(CC) -Ilib/replace \\
|
||||
`\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
|
||||
\$(CFLAGS) \$(PICFLAG) -c $first_prereq -o \$@
|
||||
|
||||
__EOD__
|
||||
);
|
||||
}
|
||||
|
||||
sub _prepare_compiler_linker($)
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
Loading…
Reference in New Issue
Block a user