1
0
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:
James Peach 2007-04-02 21:21:56 +00:00 committed by Gerald (Jerry) Carter
parent 5a96812929
commit bb473bf856

View File

@ -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) = @_;