summaryrefslogtreecommitdiff
path: root/source4/build/smb_build/public.m4
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/smb_build/public.m4')
-rw-r--r--source4/build/smb_build/public.m4441
1 files changed, 441 insertions, 0 deletions
diff --git a/source4/build/smb_build/public.m4 b/source4/build/smb_build/public.m4
new file mode 100644
index 0000000000..9bfcd549b8
--- /dev/null
+++ b/source4/build/smb_build/public.m4
@@ -0,0 +1,441 @@
+dnl SMB Build System
+dnl ----------------
+dnl ----------------
+dnl
+dnl SMB_MODULE_DEFAULT(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+dnl
+dnl SMB_MODULE (
+dnl 1:name,
+dnl 2:subsystem,
+dnl 3:default_build,
+dnl 4:init_obj_files,
+dnl 5:add_obj_files,
+dnl 6:required_libs,
+dnl 7:required_subsystems
+dnl )
+dnl
+dnl SMB_MODULE_MK(
+dnl 1:name,
+dnl 2:subsystem,
+dnl 3:default_build,
+dnl 4:config_mk_file
+dnl )
+dnl
+dnl SMB_SUBSYSTEM_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+dnl
+dnl SMB_SUBSYSTEM(
+dnl 1:name,
+dnl 2:init_obj_files,
+dnl 3:add_obj_files,
+dnl 4:required_libs,
+dnl 5:required_subsystems
+dnl )
+dnl
+dnl SMB_SUBSYSTEM_MK(
+dnl 1:name,
+dnl 2:config_mk_file
+dnl )
+dnl
+dnl SMB_EXT_LIB_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+dnl
+dnl SMB_EXT_LIB(
+dnl 1:name,
+dnl 2:libs,
+dnl 3:cflags,
+dnl 4:cppflags,
+dnl 5:ldflags
+dnl )
+dnl
+dnl SMB_LIBRARY_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+dnl
+dnl SMB_LIBRARY(
+dnl 1:name,
+dnl 2:obj_files,
+dnl 3:required_libs,
+dnl 4:required_subsystems
+dnl )
+dnl
+dnl SMB_LIBRARY_MK(
+dnl 1:name,
+dnl 2:config_mk_file
+dnl )
+dnl
+dnl SMB_BINARY_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+dnl
+dnl SMB_BINARY(
+dnl 1:name,
+dnl 2:build_targets,
+dnl 3:install_path
+dnl 4:obj_files,
+dnl 5:required_libs,
+dnl 6:required_subsystems
+dnl )
+dnl
+dnl SMB_BINARY_MK(
+dnl 1:name,
+dnl 2:config_mk_file
+dnl )
+dnl
+dnl SMB_MAKE_TARGET(
+dnl 1:name
+dnl 2:calledname
+dnl )
+dnl
+dnl SMB_AC_OUTPUT(
+dnl 1: outputfile
+dnl )
+
+dnl #######################################################
+dnl ### And now the implementation ###
+dnl #######################################################
+
+dnl SMB_MODULE_DEFAULT(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+AC_DEFUN([SMB_MODULE_DEFAULT],
+[
+ [SMB_MODULE_DEFAULT_][$1]="$2"
+])
+
+dnl SMB_MODULE (
+dnl 1:name,
+dnl 2:subsystem,
+dnl 3:default_build,
+dnl 4:init_obj_files,
+dnl 5:add_obj_files,
+dnl 6:required_libs,
+dnl 7:required_subsystems
+dnl )
+AC_DEFUN([SMB_MODULE],
+[
+
+ if test -z "$[SMB_MODULE_DEFAULT_][$1]"; then
+ [SMB_MODULE_DEFAULT_][$1]=$3
+ fi
+
+ if test "$[SMB_MODULE_][$1]"; then
+ [SMB_MODULE_][$1]=$[SMB_MODULE_][$1]
+ elif test "$[SMB_MODULE_]translit([$2], [A-Z], [a-z])" -a x"$[SMB_MODULE_DEFAULT_][$1]" != xNOT; then
+ [SMB_MODULE_][$1]=$[SMB_MODULE_]translit([$2], [A-Z], [a-z])
+ else
+ [SMB_MODULE_][$1]="DEFAULT";
+ fi
+
+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}} = str2array(\"$4\");
+@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{ADD_OBJ_FILES}} = str2array(\"$5\");
+@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_LIBRARIES}} = str2array(\"$6\");
+@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_SUBSYSTEMS}} = str2array(\"$7\");
+#
+\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{CHOSEN_BUILD} = \"$[SMB_MODULE_][$1]\";
+# End MODULE $1
+###################################
+"
+])
+
+dnl SMB_MODULE_MK(
+dnl 1:name,
+dnl 2:subsystem,
+dnl 3:default_build,
+dnl 4:config_mk_file
+dnl )
+AC_DEFUN([SMB_MODULE_MK],
+[
+
+ if test -z "$[SMB_MODULE_DEFAULT_][$1]"; then
+ [SMB_MODULE_DEFAULT_][$1]=$3
+ fi
+
+ if test "$[SMB_MODULE_][$1]"; then
+ [SMB_MODULE_][$1]=$[SMB_MODULE_][$1]
+ elif test "$[SMB_MODULE_]translit([$2], [A-Z], [a-z])" -a x"$[SMB_MODULE_DEFAULT_][$1]" != xNOT; then
+ [SMB_MODULE_][$1]=$[SMB_MODULE_]translit([$2], [A-Z], [a-z])
+ else
+ [SMB_MODULE_][$1]="DEFAULT";
+ fi
+
+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}} = module_get_array(\"$4\", \"$1\", \"INIT_OBJ_FILES\");
+@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{ADD_OBJ_FILES}} = module_get_array(\"$4\", \"$1\", \"ADD_OBJ_FILES\");
+@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_LIBRARIES}} = module_get_array(\"$4\", \"$1\", \"REQUIRED_LIBRARIES\");
+@{\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{REQUIRED_SUBSYSTEMS}} = module_get_array(\"$4\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
+#
+\$SMB_BUILD_CTX->{INPUT}{MODULES}{$1}{CHOSEN_BUILD} = \"$[SMB_MODULE_][$1]\";
+# End MODULE $1
+###################################
+"
+])
+
+dnl SMB_SUBSYSTEM_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+AC_DEFUN([SMB_SUBSYSTEM_ENABLE],
+[
+ [SMB_SUBSYSTEM_ENABLE_][$1]="$2"
+])
+
+dnl SMB_SUBSYSTEM(
+dnl 1:name,
+dnl 2:init_obj_files,
+dnl 3:add_obj_files,
+dnl 4:required_libs,
+dnl 5:required_subsystems
+dnl )
+AC_DEFUN([SMB_SUBSYSTEM],
+[
+
+ if test -z "$[SMB_SUBSYSTEM_ENABLE_][$1]"; then
+ [SMB_SUBSYSTEM_ENABLE_][$1]="YES";
+ fi
+
+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}} = str2array(\"$2\");
+@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ADD_OBJ_FILES}} = str2array(\"$3\");
+@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_LIBRARIES}} = str2array(\"$4\");
+@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_SUBSYSTEMS}} = str2array(\"$5\");
+#
+\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ENABLE} = \"$[SMB_SUBSYSTEM_ENABLE_][$1]\";
+# End Subsystem $1
+###################################
+"
+])
+
+dnl SMB_SUBSYSTEM_MK(
+dnl 1:name,
+dnl 2:config_mk_file
+dnl )
+AC_DEFUN([SMB_SUBSYSTEM_MK],
+[
+
+ if test -z "$[SMB_SUBSYSTEM_ENABLE_][$1]"; then
+ [SMB_SUBSYSTEM_ENABLE_][$1]="YES";
+ fi
+
+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}} = subsystem_get_array(\"$2\", \"$1\", \"INIT_OBJ_FILES\");
+@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ADD_OBJ_FILES}} = subsystem_get_array(\"$2\", \"$1\", \"ADD_OBJ_FILES\");
+@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_LIBRARIES}} = subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_LIBRARIES\");
+@{\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{REQUIRED_SUBSYSTEMS}} = subsystem_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
+#
+\$SMB_BUILD_CTX->{INPUT}{SUBSYSTEMS}{$1}{ENABLE} = \"$[SMB_SUBSYSTEM_ENABLE_][$1]\";
+# End Subsystem $1
+###################################
+"
+])
+
+dnl SMB_EXT_LIB_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+AC_DEFUN([SMB_EXT_LIB_ENABLE],
+[
+ [SMB_EXT_LIB_ENABLE_][$1]="$2"
+])
+
+dnl SMB_EXT_LIB(
+dnl 1:name,
+dnl 2:libs,
+dnl 3:cflags,
+dnl 4:cppflags,
+dnl 5:ldflags
+dnl )
+AC_DEFUN([SMB_EXT_LIB],
+[
+
+ if test -z "$[SMB_EXT_LIB_ENABLE_][$1]"; then
+ [SMB_EXT_LIB_ENABLE_][$1]="NO";
+ fi
+
+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}} = str2array(\"$2\");
+@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{CFLAGS}} = str2array(\"$3\");
+@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{CPPFLAGS}} = str2array(\"$4\");
+@{\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{LDFLAGS}} = str2array(\"$5\");
+#
+\$SMB_BUILD_CTX->{INPUT}{EXT_LIBS}{$1}{ENABLE} = \"$[SMB_EXT_LIB_ENABLE_][$1]\";
+# End Ext Lib $1
+###################################
+"
+])
+
+
+dnl SMB_LIBRARY_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+AC_DEFUN([SMB_LIBRARY_ENABLE],
+[
+ [SMB_LIBRARY_ENABLE_][$1]="$2"
+])
+
+dnl SMB_LIBRARY(
+dnl 1:name,
+dnl 2:obj_files,
+dnl 3:required_libs,
+dnl 4:required_subsystems
+dnl )
+AC_DEFUN([SMB_LIBRARY],
+[
+
+ if test -z "$[SMB_LIBRARY_ENABLE_][$1]"; then
+ [SMB_LIBRARY_ENABLE_][$1]="YES";
+ fi
+
+SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES
+###################################
+# Start Library $1
+\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{NAME} = \"$1\";
+@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{OBJ_FILES}} = str2array(\"$2\");
+@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_LIBRARIES}} = str2array(\"$3\");
+@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_SUBSYSTEMS}} = str2array(\"$4\");
+#
+\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{ENABLE} = \"$[SMB_LIBRARY_ENABLE_][$1]\";
+# End Library $1
+###################################
+"
+])
+
+dnl SMB_LIBRARY_MK(
+dnl 1:name,
+dnl 2:config_mk_file
+dnl )
+AC_DEFUN([SMB_LIBRARY_MK],
+[
+
+ if test -z "$[SMB_LIBRARY_ENABLE_][$1]"; then
+ [SMB_LIBRARY_ENABLE_][$1]="YES";
+ fi
+
+SMB_INFO_LIBRARIES="$SMB_INFO_LIBRARIES
+###################################
+# Start Library $1
+\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{NAME} = \"$1\";
+@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{OBJ_FILES}} = library_get_array(\"$2\", \"$1\", \"OBJ_FILES\");
+@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_LIBRARIES}} = library_get_array(\"$2\", \"$1\", \"REQUIRED_LIBRARIES\");
+@{\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{REQUIRED_SUBSYSTEMS}} = library_get_array(\"$2\", \"$1\", \"REQUIRED_SUBSYSTEMS\");
+#
+\$SMB_BUILD_CTX->{INPUT}{LIBRARIES}{$1}{ENABLE} = \"$[SMB_LIBRARY_ENABLE_][$1]\";
+# End Library $1
+###################################
+"
+])
+
+dnl SMB_BINARY_ENABLE(
+dnl 1:name,
+dnl 2:default_build
+dnl )
+AC_DEFUN([SMB_BINARY_ENABLE],
+[
+ [SMB_BINARY_ENABLE_][$1]="$2";
+])
+
+dnl SMB_BINARY(
+dnl 1:name,
+dnl 2:build_targets,
+dnl 3:install_path
+dnl 4:objfiles,
+dnl 5:required_libs,
+dnl 6:required_subsystems
+dnl )
+AC_DEFUN([SMB_BINARY],
+[
+
+ if test -z "$[SMB_BINARY_ENABLE_][$1]"; then
+ [SMB_BINARY_ENABLE_][$1]="YES";
+ fi
+
+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}} = str2array(\"$2\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{INSTALL_PATH}} = str2array(\"$3\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{OBJ_FILES}} = str2array(\"$4\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_LIBRARIES}} = str2array(\"$5\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_SUBSYSTEMS}} = str2array(\"$6\");
+#
+\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{ENABLE} = \"$[SMB_BINARY_ENABLE_][$1]\";
+# End Binary $1
+###################################
+"
+])
+
+dnl SMB_BINARY_MK(
+dnl 1:name,
+dnl 2:config_mk_file
+dnl )
+AC_DEFUN([SMB_BINARY_MK],
+[
+
+ if test -z "$[SMB_BINARY_ENABLE_][$1]"; then
+ [SMB_BINARY_ENABLE_][$1]="YES";
+ fi
+
+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}} = binary_get_array(\"$2\", \"$1\", \"BUILD_TARGETS\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{INSTALL_PATH}} = binary_get_array(\"$2\", \"$1\", \"INSTALL_PATH\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{OBJ_FILES}} = binary_get_array(\"$2\", \"$1\", \"OBJ_FILES\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_LIBRARIES}} = binary_get_array(\"$2\", \"$1\",\"REQUIRED_LIBRARIES\");
+@{\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{REQUIRED_SUBSYSTEMS}} = binary_get_array(\"$2\", \"$1\",\"REQUIRED_SUBSYSTEMS\");
+#
+\$SMB_BUILD_CTX->{INPUT}{BINARIES}{$1}{ENABLE} = \"$[SMB_BINARY_ENABLE_][$1]\";
+# End Binary $1
+###################################
+"
+])
+
+dnl SMB_MAKE_TARGET(
+dnl 1:name
+dnl 2:calledname
+dnl )
+AC_DEFUN([SMB_MAKE_TARGET],
+[
+ echo "#SMB_MAKE_TARGET TOTO"
+])
+
+dnl SMB_AC_OUTPUT(
+dnl 1: outputfile
+dnl )
+AC_DEFUN([SMB_AC_OUTPUT],
+[
+ AC_OUTPUT([$1],[],[_SMB_BUILD_CORE([[$1][.in]])])
+])