diff options
Diffstat (limited to 'source4/build/smb_build/public.m4')
-rw-r--r-- | source4/build/smb_build/public.m4 | 441 |
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]])]) +]) |