summaryrefslogtreecommitdiff
path: root/source4/build
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-11-13 18:20:33 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:05:47 -0500
commit270a1a3eb31adbc6b785112e03b41decac6c3aad (patch)
tree9cc8e2807528abaab96299af8590e3247f07b6b1 /source4/build
parent3b217ffcf2788af8405594c618507cd65ef281c7 (diff)
downloadsamba-270a1a3eb31adbc6b785112e03b41decac6c3aad.tar.gz
samba-270a1a3eb31adbc6b785112e03b41decac6c3aad.tar.bz2
samba-270a1a3eb31adbc6b785112e03b41decac6c3aad.zip
r3726: More simplifications/fixes in the build system
(This used to be commit e32f87fdea3070ea715ef547f2a406aa63ab775f)
Diffstat (limited to 'source4/build')
-rw-r--r--source4/build/m4/rewrite.m48
-rw-r--r--source4/build/smb_build/config_mk.pm10
-rw-r--r--source4/build/smb_build/core.m44
-rw-r--r--source4/build/smb_build/depend.pm3
-rw-r--r--source4/build/smb_build/main.pm17
-rw-r--r--source4/build/smb_build/output.pm3
-rw-r--r--source4/build/smb_build/public.m4174
7 files changed, 113 insertions, 106 deletions
diff --git a/source4/build/m4/rewrite.m4 b/source4/build/m4/rewrite.m4
index 752199e41d..b0c694b1a0 100644
--- a/source4/build/m4/rewrite.m4
+++ b/source4/build/m4/rewrite.m4
@@ -662,14 +662,6 @@ if test $ac_cv_shlib_works = no; then
fi
fi
-SMB_INFO_BUILD_ENV="$SMB_INFO_BUILD_ENV
-#############################################
-# Start Tell the Linker to export all symbols
-@{\$SMB_BUILD_CTX->{BUILD_ENV}{LD}{DYNEXP}} = input::str2array(\"$DYNEXP\");
-# End Tell the Linker to export all symbols
-#############################################
-"
-
#
# Check if the compiler supports the LL prefix on long long integers.
# AIX needs this.
diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm
index f852e345ac..7b8fbd93c3 100644
--- a/source4/build/smb_build/config_mk.pm
+++ b/source4/build/smb_build/config_mk.pm
@@ -220,8 +220,8 @@ sub _fetch_array_from_config_mk($$$)
my $filename = shift;
my $section = shift;
my $key = shift;
- my @val = ();
my $result;
+ my $val = "";
$result = _get_parse_results($filename);
@@ -230,12 +230,12 @@ sub _fetch_array_from_config_mk($$$)
}
if (defined($result->{$section}{$key})) {
- @val = input::str2array($result->{$section}{$key}{VAL});
+ $val = $result->{$section}{$key}{VAL};
} elsif (defined($result->{DEFAULT}{$key})) {
- @val = input::str2array($result->{DEFAULT}{$key}{VAL});
- }
+ $val = $result->{DEFAULT}{$key}{VAL};
+ }
- return @val;
+ return input::str2array($val);
}
###########################################################
diff --git a/source4/build/smb_build/core.m4 b/source4/build/smb_build/core.m4
index 556c9feb16..a317a0eea3 100644
--- a/source4/build/smb_build/core.m4
+++ b/source4/build/smb_build/core.m4
@@ -22,7 +22,7 @@ AC_DEFUN([_SMB_BUILD_CORE],
$PERL -I$srcdir/build/smb_build <<\_SMB_ACEOF
use strict;
-my \$SMB_BUILD_CTX;
+my %INPUT;
use main;
@@ -58,7 +58,7 @@ $SMB_INFO_BINARIES
## End Binaries
#########################################
-smb_build_main(\$SMB_BUILD_CTX);
+smb_build_main(\%INPUT);
_SMB_ACEOF
diff --git a/source4/build/smb_build/depend.pm b/source4/build/smb_build/depend.pm
index 53ee5136de..2be9c4bdf2 100644
--- a/source4/build/smb_build/depend.pm
+++ b/source4/build/smb_build/depend.pm
@@ -411,8 +411,7 @@ sub _do_depend_binaries($)
foreach my $subkey (@SUBSYSTEMS_LIST)
{
- push (@INIT_FUNCTIONS, $CTX->{INPUT}{SUBSYSTEMS}{$subkey}{INIT_FUNCTION}) if $CTX->{INPUT}{SUBSYSTEMS}{$subkey}{INIT_FUNCTION} ne "";
-
+ push (@INIT_FUNCTIONS, $CTX->{INPUT}{SUBSYSTEMS}{$subkey}{INIT_FUNCTION}) if defined ($CTX->{INPUT}{SUBSYSTEMS}{$subkey}{INIT_FUNCTION}) and $CTX->{INPUT}{SUBSYSTEMS}{$subkey}{INIT_FUNCTION} ne "";
}
#
diff --git a/source4/build/smb_build/main.pm b/source4/build/smb_build/main.pm
index 98b61539c1..a9e755dd6f 100644
--- a/source4/build/smb_build/main.pm
+++ b/source4/build/smb_build/main.pm
@@ -18,19 +18,22 @@ use strict;
sub smb_build_main($)
{
- our $SMB_BUILD_CTX = shift;
+ my $INPUT = shift;
+ my %SMB_BUILD_CTX = (
+ INPUT => $INPUT
+ );
- input::check($SMB_BUILD_CTX);
+ input::check(\%SMB_BUILD_CTX);
- depend::create_depend($SMB_BUILD_CTX);
+ depend::create_depend(\%SMB_BUILD_CTX);
- output::create_output($SMB_BUILD_CTX);
+ output::create_output(\%SMB_BUILD_CTX);
- makefile::create_makefile_in($SMB_BUILD_CTX);
+ makefile::create_makefile_in(\%SMB_BUILD_CTX);
- smb_build_h::create_smb_build_h($SMB_BUILD_CTX);
+ smb_build_h::create_smb_build_h(\%SMB_BUILD_CTX);
- dump::dump_ctx($SMB_BUILD_CTX);
+ dump::dump_ctx(\%SMB_BUILD_CTX);
return 0;
diff --git a/source4/build/smb_build/output.pm b/source4/build/smb_build/output.pm
index 0b82a2746b..85e060ddce 100644
--- a/source4/build/smb_build/output.pm
+++ b/source4/build/smb_build/output.pm
@@ -216,9 +216,6 @@ sub _generate_binaries($)
push(@LINK_FLAGS,@{$CTX->{DEPEND}{EXT_LIBS}{$elem}{LDFLAGS}});
}
- # Export all symbols...
- push(@LINK_FLAGS,@{$CTX->{BUILD_ENV}{LD}{DYNEXP}});
-
#
# set the lists
#
diff --git a/source4/build/smb_build/public.m4 b/source4/build/smb_build/public.m4
index 9994876dc8..5ac560f019 100644
--- a/source4/build/smb_build/public.m4
+++ b/source4/build/smb_build/public.m4
@@ -1,6 +1,8 @@
dnl SMB Build System
dnl ----------------
-dnl ----------------
+dnl Copyright (C) 2004 Stefan Metzmacher
+dnl Copyright (C) 2004 Jelmer Vernooij
+dnl Published under the GPL
dnl
dnl SMB_MODULE_DEFAULT(
dnl 1:name,
@@ -174,6 +176,9 @@ dnl #######################################################
dnl ### And now the implementation ###
dnl #######################################################
+AC_DEFUN([STR2ARRAY], [@<:@ input::str2array(\"$1\") @:>@])
+
+
dnl SMB_MODULE_DEFAULT(
dnl 1:name,
dnl 2:default_build
@@ -210,16 +215,20 @@ AC_DEFUN([SMB_MODULE],
SMB_INFO_MODULES="$SMB_INFO_MODULES
###################################
# Start MODULE $1
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{NAME} = \"$1\";
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{SUBSYSTEM} = \"$2\";
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{DEFAULT_BUILD} = \"$[SMB_MODULE_DEFAULT_][$1]\";
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{INIT_OBJ_FILES}} = input::str2array(\"$4\");
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{ADD_OBJ_FILES}} = input::str2array(\"$5\");
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_LIBRARIES}} = input::str2array(\"$6\");
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_SUBSYSTEMS}} = input::str2array(\"$7\");
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{INIT_FUNCTION} = \"\";
+
+\$INPUT{MODULES}{$1} = {
+ TYPE => "MODULE",
+ NAME => \"$1\",
+ SUBSYSTEM => \"$2\",
+ DEFAULT_BUILD => \"$[SMB_MODULE_DEFAULT_][$1]\",
+ INIT_OBJ_FILES => ][STR2ARRAY([$4])][,
+ ADD_OBJ_FILES => ][STR2ARRAY([$5])][,
+ REQUIRED_LIBRARIES => ][STR2ARRAY([$6])][,
+ REQUIRED_SUBSYSTEMS => ][STR2ARRAY([$7])][,
+ CHOSEN_BUILD => \"$[SMB_MODULE_][$1]\"
+};
+
#
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{CHOSEN_BUILD} = \"$[SMB_MODULE_][$1]\";
# End MODULE $1
###################################
"
@@ -249,16 +258,17 @@ AC_DEFUN([SMB_MODULE_MK],
SMB_INFO_MODULES="$SMB_INFO_MODULES
###################################
# Start MODULE $1
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{NAME} = \"$1\";
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{SUBSYSTEM} = \"$2\";
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{DEFAULT_BUILD} = \"$[SMB_MODULE_DEFAULT_][$1]\";
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{INIT_OBJ_FILES}} = config_mk::module_get_array(\"$4\", \"$1\", \"INIT_OBJ_FILES\");
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{ADD_OBJ_FILES}} = config_mk::module_get_array(\"$4\", \"$1\", \"ADD_OBJ_FILES\");
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_LIBRARIES}} = config_mk::module_get_array(\"$4\", \"$1\", \"REQUIRED_LIBRARIES\");
-@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_SUBSYSTEMS}} = config_mk::module_get_array(\"$4\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{INIT_FUNCTION} = config_mk::module_get_var(\"$4\", \"$1\", \"INIT_FUNCTION\");
-#
-\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{CHOSEN_BUILD} = \"$[SMB_MODULE_][$1]\";
+\$INPUT{MODULES}{$1} = {
+ NAME => \"$1\",
+ SUBSYSTEM => \"$2\",
+ DEFAULT_BUILD => \"$[SMB_MODULE_DEFAULT_][$1]\",
+ INIT_OBJ_FILES => @<:@ config_mk::module_get_array(\"$4\", \"$1\", \"INIT_OBJ_FILES\") @:>@,
+ ADD_OBJ_FILES => @<:@ config_mk::module_get_array(\"$4\", \"$1\", \"ADD_OBJ_FILES\") @:>@,
+ REQUIRED_LIBRARIES => @<:@ config_mk::module_get_array(\"$4\", \"$1\", \"REQUIRED_LIBRARIES\") @:>@,
+ REQUIRED_SUBSYSTEMS => @<:@ config_mk::module_get_array(\"$4\", \"$1\", \"REQUIRED_SUBSYSTEMS\") @:>@,
+ INIT_FUNCTION => config_mk::module_get_var(\"$4\", \"$1\", \"INIT_FUNCTION\"),
+ CHOSEN_BUILD => \"$[SMB_MODULE_][$1]\"
+};
# End MODULE $1
###################################
"
@@ -302,15 +312,15 @@ AC_DEFUN([SMB_SUBSYSTEM],
SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
###################################
# Start Subsystem $1
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{NAME} = \"$1\";
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{INIT_OBJ_FILES}} = input::str2array(\"$2\");
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ADD_OBJ_FILES}} = input::str2array(\"$3\");
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{INIT_FUNCTION} = \"\";
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_LIBRARIES}} = input::str2array(\"$4\");
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_SUBSYSTEMS}} = input::str2array(\"$5\");
-#
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ENABLE} = \"$[SMB_SUBSYSTEM_ENABLE_][$1]\";
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{NOPROTO} = \"$[SMB_SUBSYSTEM_NOPROTO_][$1]\";
+\$INPUT{SUBSYSTEMS}{$1} = {
+ NAME => \"$1\",
+ INIT_OBJ_FILES => ][STR2ARRAY([$2])][,
+ ADD_OBJ_FILES => ][STR2ARRAY([$3])][,
+ REQUIRED_LIBRARIES => ][STR2ARRAY([$4])][,
+ REQUIRED_SUBSYSTEMS => ][STR2ARRAY([$5])][,
+ ENABLE => \"$[SMB_SUBSYSTEM_ENABLE_][$1]\",
+ NOPROTO => \"$[SMB_SUBSYSTEM_NOPROTO_][$1]\"
+};
# End Subsystem $1
###################################
"
@@ -334,15 +344,16 @@ AC_DEFUN([SMB_SUBSYSTEM_MK],
SMB_INFO_SUBSYSTEMS="$SMB_INFO_SUBSYSTEMS
###################################
# Start Subsystem $1
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{NAME} = \"$1\";
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{INIT_OBJ_FILES}} = config_mk::subsystem_get_array(\"$2\", \"$1\", \"INIT_OBJ_FILES\");
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ADD_OBJ_FILES}} = config_mk::subsystem_get_array(\"$2\", \"$1\", \"ADD_OBJ_FILES\");
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_LIBRARIES}} = config_mk::subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_LIBRARIES\");
-@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_SUBSYSTEMS}} = config_mk::subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{INIT_FUNCTION} = config_mk::subsystem_get_var(\"$2\", \"$1\", \"INIT_FUNCTION\");
-#
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ENABLE} = \"$[SMB_SUBSYSTEM_ENABLE_][$1]\";
-\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{NOPROTO} = \"$[SMB_SUBSYSTEM_NOPROTO_][$1]\";
+\$INPUT{SUBSYSTEMS}{$1} = {
+ NAME => \"$1\",
+ INIT_OBJ_FILES => @<:@ config_mk::subsystem_get_array(\"$2\", \"$1\", \"INIT_OBJ_FILES\") @:>@,
+ ADD_OBJ_FILES => @<:@ config_mk::subsystem_get_array(\"$2\", \"$1\", \"ADD_OBJ_FILES\") @:>@,
+ REQUIRED_LIBRARIES => @<:@ config_mk::subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_LIBRARIES\") @:>@,
+ REQUIRED_SUBSYSTEMS => @<:@ config_mk::subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\") @:>@,
+ INIT_FUNCTION => config_mk::subsystem_get_var(\"$2\", \"$1\", \"INIT_FUNCTION\"),
+ ENABLE => \"$[SMB_SUBSYSTEM_ENABLE_][$1]\",
+ NOPROTO => \"$[SMB_SUBSYSTEM_NOPROTO_][$1]\"
+};
# End Subsystem $1
###################################
"
@@ -422,13 +433,14 @@ AC_DEFUN([SMB_EXT_LIB],
SMB_INFO_EXT_LIBS="$SMB_INFO_EXT_LIBS
###################################
# Start Ext Lib $1
-\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{NAME} = \"$1\";
-@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{LIBS}} = input::str2array(\"$2\");
-@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{CFLAGS}} = input::str2array(\"$3\");
-@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{CPPFLAGS}} = input::str2array(\"$4\");
-@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{LDFLAGS}} = input::str2array(\"$5\");
-#
-\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{ENABLE} = \"$[SMB_EXT_LIB_ENABLE_][$1]\";
+\$INPUT{EXT_LIBS}{$1} = {
+ NAME => \"$1\",
+ LIBS => ][STR2ARRAY([$2])][,
+ CFLAGS => ][STR2ARRAY([$3])][,
+ CPPFLAGS => ][STR2ARRAY([$4])][,
+ LDFLAGS => ][STR2ARRAY([$5])][,
+ ENABLE => \"$[SMB_EXT_LIB_ENABLE_][$1]\"
+};
# End Ext Lib $1
###################################
"
@@ -463,15 +475,16 @@ AC_DEFUN([SMB_LIBRARY],
SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES
###################################
# Start Library $1
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{NAME} = \"$1\";
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{MAJOR_VERSION} = \"$2\";
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{MINOR_VERSION} = \"$3\";
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{RELEASE_VERSION} = \"$4\";
-@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{OBJ_FILES}} = input::str2array(\"$5\");
-@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_LIBRARIES}} = input::str2array(\"$6\");
-@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_SUBSYSTEMS}} = input::str2array(\"$7\");
-#
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{ENABLE} = \"$[SMB_LIBRARY_ENABLE_][$1]\";
+\$INPUT{LIBRARIES}{$1} = {
+ NAME => \"$1\",
+ MAJOR_VERSION => \"$2\",
+ MINOR_VERSION => \"$3\",
+ RELEASE_VERSION => \"$4\",
+ OBJ_FILES => ][STR2ARRAY([$5])][,
+ REQUIRED_LIBRARIES => ][STR2ARRAY([$6])][,
+ REQUIRED_SUBSYSTEMS => ][STR2ARRAY([$7])][,
+ ENABLE => \"$[SMB_LIBRARY_ENABLE_][$1]\"
+};
# End Library $1
###################################
"
@@ -491,15 +504,16 @@ AC_DEFUN([SMB_LIBRARY_MK],
SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES
###################################
# Start Library $1
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{NAME} = \"$1\";
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{MAJOR_VERSION} = config_mk::library_get_var(\"$2\", \"$1\", \"MAJOR_VERSION\");
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{MINOR_VERSION} = config_mk::library_get_var(\"$2\", \"$1\", \"MINOR_VERSION\");
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{RELEASE_VERSION} = config_mk::library_get_var(\"$2\", \"$1\", \"RELEASE_VERSION\");
-@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{OBJ_FILES}} = config_mk::library_get_array(\"$2\", \"$1\", \"OBJ_FILES\");
-@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_LIBRARIES}} = config_mk::library_get_array(\"$2\", \"$1\", \"REQUIRED_LIBRARIES\");
-@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_SUBSYSTEMS}} = config_mk::library_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
-#
-\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{ENABLE} = \"$[SMB_LIBRARY_ENABLE_][$1]\";
+\$INPUT{LIBRARIES}{$1} = {
+ NAME => \"$1\",
+ MAJOR_VERSION => config_mk::library_get_var(\"$2\", \"$1\", \"MAJOR_VERSION\"),
+ MINOR_VERSION => config_mk::library_get_var(\"$2\", \"$1\", \"MINOR_VERSION\"),
+ RELEASE_VERSION => config_mk::library_get_var(\"$2\", \"$1\", \"RELEASE_VERSION\"),
+ OBJ_FILES => @<:@ config_mk::library_get_array(\"$2\", \"$1\", \"OBJ_FILES\") @:>@,
+ REQUIRED_LIBRARIES => @<:@ config_mk::library_get_array(\"$2\", \"$1\", \"REQUIRED_LIBRARIES\") @:>@,
+ REQUIRED_SUBSYSTEMS => @<:@ config_mk::library_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\") @:>@,
+ ENABLE => \"$[SMB_LIBRARY_ENABLE_][$1]\"
+};
# End Library $1
###################################
"
@@ -532,14 +546,15 @@ AC_DEFUN([SMB_BINARY],
SMB_INFO_BINARIES="$SMB_INFO_BINARIES
###################################
# Start Binary $1
-\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{NAME} = \"$1\";
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{BUILD_TARGETS}} = input::str2array(\"$2\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{INSTALL_PATH}} = input::str2array(\"$3\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{OBJ_FILES}} = input::str2array(\"$4\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_LIBRARIES}} = input::str2array(\"$5\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_SUBSYSTEMS}} = input::str2array(\"$6\");
-#
-\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{ENABLE} = \"$[SMB_BINARY_ENABLE_][$1]\";
+\$INPUT{BINARIES}{$1} = {
+ NAME => \"$1\",
+ BUILD_TARGETS => ][STR2ARRAY([$2])][,
+ INSTALL_PATH => ][STR2ARRAY([$3])][,
+ OBJ_FILES => ][STR2ARRAY([$4])][,
+ REQUIRED_LIBRARIES => ][STR2ARRAY([$5])][,
+ REQUIRED_SUBSYSTEMS => ][STR2ARRAY([$6])][,
+ ENABLE => \"$[SMB_BINARY_ENABLE_][$1]\"
+};
# End Binary $1
###################################
"
@@ -559,14 +574,15 @@ AC_DEFUN([SMB_BINARY_MK],
SMB_INFO_BINARIES="$SMB_INFO_BINARIES
###################################
# Start Binary $1
-\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{NAME} = \"$1\";
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{BUILD_TARGETS}} = config_mk::binary_get_array(\"$2\", \"$1\", \"BUILD_TARGETS\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{INSTALL_PATH}} = config_mk::binary_get_array(\"$2\", \"$1\", \"INSTALL_PATH\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{OBJ_FILES}} = config_mk::binary_get_array(\"$2\", \"$1\", \"OBJ_FILES\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_LIBRARIES}} = config_mk::binary_get_array(\"$2\", \"$1\",\"REQUIRED_LIBRARIES\");
-@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_SUBSYSTEMS}} = config_mk::binary_get_array(\"$2\", \"$1\",\"REQUIRED_SUBSYSTEMS\");
-#
-\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{ENABLE} = \"$[SMB_BINARY_ENABLE_][$1]\";
+\$INPUT{BINARIES}{$1} = {
+ NAME => \"$1\",
+ BUILD_TARGETS => @<:@ config_mk::binary_get_array(\"$2\", \"$1\", \"BUILD_TARGETS\") @:>@,
+ INSTALL_PATH => @<:@ config_mk::binary_get_array(\"$2\", \"$1\", \"INSTALL_PATH\") @:>@,
+ OBJ_FILES => @<:@ config_mk::binary_get_array(\"$2\", \"$1\", \"OBJ_FILES\") @:>@,
+ REQUIRED_LIBRARIES => @<:@ config_mk::binary_get_array(\"$2\", \"$1\",\"REQUIRED_LIBRARIES\") @:>@,
+ REQUIRED_SUBSYSTEMS => @<:@ config_mk::binary_get_array(\"$2\", \"$1\",\"REQUIRED_SUBSYSTEMS\") @:>@,
+ ENABLE => \"$[SMB_BINARY_ENABLE_][$1]\"
+};
# End Binary $1
###################################
"