summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/build/m4/check_cc.m49
-rw-r--r--source4/build/smb_build/makefile.pm60
-rw-r--r--source4/main.mk14
-rw-r--r--source4/param/config.mk4
4 files changed, 18 insertions, 69 deletions
diff --git a/source4/build/m4/check_cc.m4 b/source4/build/m4/check_cc.m4
index a6a19bc42b..bdee2b99c3 100644
--- a/source4/build/m4/check_cc.m4
+++ b/source4/build/m4/check_cc.m4
@@ -26,15 +26,6 @@ fi
dnl needed before AC_TRY_COMPILE
AC_ISC_POSIX
-dnl Check if C compiler understands -c and -o at the same time
-AC_PROG_CC_C_O
-if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
- BROKEN_CC=yes
-else
- BROKEN_CC=no
-fi
-AC_SUBST(BROKEN_CC)
-
AC_CACHE_CHECK([that the C compiler can precompile header files],samba_cv_precompiled_headers, [
dnl Check whether the compiler can generate precompiled headers
touch conftest.h
diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm
index 44e55b17f8..f17deb53f9 100644
--- a/source4/build/smb_build/makefile.pm
+++ b/source4/build/smb_build/makefile.pm
@@ -44,10 +44,6 @@ sub new($$$)
$self->_prepare_path_vars();
$self->_prepare_compiler_linker();
- $self->output(".SUFFIXES: .x .c .et .y .l .d .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml .8 .8.xml .ho\n");
- $self->_prepare_hostcc_rule();
- $self->_prepare_std_CC_rule("c","o",'$(PICFLAG)',"Compiling","Rule for std objectfiles");
- $self->_prepare_std_CC_rule("h","h.gch",'$(PICFLAG)',"Precompiling","Rule for precompiled headerfiles");
return $self;
}
@@ -167,60 +163,6 @@ sub _prepare_mk_files($)
$self->output("MK_FILES = " . array2oneperline(\@tmp) . "\n");
}
-sub _prepare_dummy_MAKEDIR($)
-{
- my ($self) = @_;
-
- $self->output(<< '__EOD__'
-dynconfig.o: dynconfig.c Makefile
- @echo Compiling $*.c
- @$(CC) $(CFLAGS) $(PICFLAG) $(PATH_FLAGS) -c $< -o $@
-__EOD__
-);
- if ($self->{config}->{BROKEN_CC} eq "yes") {
- $self->output(' -mv `echo $@ | sed \'s%^.*/%%g\'` $@
-');
- }
- $self->output("\n");
-}
-
-sub _prepare_std_CC_rule($$$$$$)
-{
- my ($self,$src,$dst,$flags,$message,$comment) = @_;
-
- $self->output(<< "__EOD__"
-# $comment
-.$src.$dst:
- \@echo $message \$\*.$src
- \@\$(CC) `script/cflags.pl \$\@` \$(CFLAGS) $flags -c \$\*.$src -o \$\@
-__EOD__
-);
- if ($self->{config}->{BROKEN_CC} eq "yes") {
- $self->output(' -mv `echo $@ | sed \'s%^.*/%%g\'` $@
-');
- }
-
- $self->output("\n");
-}
-
-sub _prepare_hostcc_rule($)
-{
- my ($self) = @_;
-
- $self->output(<< "__EOD__"
-.c.ho:
- \@echo Compiling \$\*.c with host compiler
- \@\$(HOSTCC) `script/cflags.pl \$\@` \$(CFLAGS) -c \$\*.c -o \$\@
-__EOD__
-);
- if ($self->{config}->{BROKEN_CC} eq "yes") {
- $self->output(' -mv `echo $@ | sed \'s%^.*/%%g\' -e \'s%\.ho$$%.o%\'` $@
-');
- }
-
- $self->output("\n");
-}
-
sub array2oneperline($)
{
my $array = shift;
@@ -604,8 +546,6 @@ __EOD__
);
}
- $self->_prepare_dummy_MAKEDIR();
-
$self->output($self->{mkfile});
open(MAKEFILE,">$file") || die ("Can't open $file\n");
diff --git a/source4/main.mk b/source4/main.mk
index 5ffdc58e47..87537a5e5e 100644
--- a/source4/main.mk
+++ b/source4/main.mk
@@ -333,10 +333,24 @@ unused_macros:
# File types
###############################################################################
+.SUFFIXES: .x .c .et .y .l .d .o .h .h.gch .a .so .1 .1.xml .3 .3.xml .5 .5.xml .7 .7.xml .8 .8.xml .ho
+
+.c.ho:
+ @echo Compiling $*.c with host compiler
+ @$(HOSTCC) `script/cflags.pl $@` $(CFLAGS) -c $*.c -o $@
+
.c.d:
@echo "Generating dependencies for $<"
@$(CC) -MM -MG -MT $(<:.c=.o) -MF $@ $(CFLAGS) $<
+.c.o:
+ @echo Compiling $<
+ @$(CC) `script/cflags.pl $@` $(CFLAGS) $(PICFLAG) -c $< -o $@
+
+.h.h.gch:
+ @echo Precompiling $<
+ @$(CC) `script/cflags.pl $@` $(CFLAGS) $(PICFLAG) -c $< -o $@
+
.y.c:
@echo "Building $< with $(YACC)"
@-$(srcdir)/script/yacc_compile.sh "$(YACC)" "$<" "$@"
diff --git a/source4/param/config.mk b/source4/param/config.mk
index 7b97331310..3b06bd99ff 100644
--- a/source4/param/config.mk
+++ b/source4/param/config.mk
@@ -5,3 +5,7 @@ OBJ_FILES = ../dynconfig.o \
generic.o
REQUIRED_SUBSYSTEMS = LIBBASIC
PRIVATE_PROTO_HEADER = param.h
+
+dynconfig.o: dynconfig.c Makefile
+ @echo Compiling $<
+ @$(CC) $(CFLAGS) $(PICFLAG) $(PATH_FLAGS) -c $< -o $@