diff options
-rw-r--r-- | source4/build/smb_build/config_mk.pm | 3 | ||||
-rw-r--r-- | source4/build/smb_build/makefile.pm | 27 |
2 files changed, 28 insertions, 2 deletions
diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index f6e2e4bdcd..74ba8f2c2e 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -23,7 +23,8 @@ my %attribute_types = ( "MAJOR_VERSION" => "string", "MINOR_VERSION" => "string", "RELEASE_VERSION" => "string", - "ENABLE" => "bool" + "ENABLE" => "bool", + "TARGET_CFLAGS" => "string" ); ########################################################### diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 593fc5d65d..74ca539a09 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -103,6 +103,24 @@ __EOD__ return $output; } + +############################# +# return makefile fragment for +# target specific rules +sub add_target_flags($$) +{ + my $ctx = shift; + my $name = shift; + my $output = ""; + if ($ctx->{TARGET_CFLAGS}) { +$output .= << "__EOD__"; +$name: TARGET_CFLAGS = $ctx->{TARGET_CFLAGS} +__EOD__ +} + return $output; +} + + sub _prepare_default_rule($) { my $ctx = shift; @@ -215,7 +233,7 @@ sub _prepare_std_CC_rule($$$$$) # Start $comment .$src.$dst: \@echo $message \$\*.$src - \@\$(CC) \$(CC_FLAGS) $flags -c \$< -o \$\@ + \@\$(CC) \$(TARGET_CFLAGS) \$(CC_FLAGS) $flags -c \$< -o \$\@ \@BROKEN_CC\@ -mv `echo \$\@ | sed 's%^.*/%%g'` \$\@ #End $comment ################################### @@ -400,11 +418,14 @@ __EOD__ $output .= << "__EOD__"; library_$ctx->{NAME}: basics bin/lib$ctx->{LIBRARY_NAME} + # End Library $ctx->{NAME} ################################### __EOD__ +$output .= add_target_flags($ctx, "library_" . $ctx->{NAME}); + return $output; } @@ -461,6 +482,8 @@ library_$ctx->{NAME}: basics $ctx->{TARGET} __EOD__ +$output .= add_target_flags($ctx, "library_" . $ctx->{NAME}); + return $output; } @@ -514,6 +537,8 @@ binary_$ctx->{BINARY}: basics bin/$ctx->{BINARY} __EOD__ +$output .= add_target_flags($ctx, "binary_" . $ctx->{BINARY}); + return $output; } |