r3041: a start of a README/HOWTO for the samba4 build system.
authorStefan Metzmacher <metze@samba.org>
Mon, 18 Oct 2004 14:55:35 +0000 (14:55 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:00:01 +0000 (13:00 -0500)
(still incomplete, but should be a good start...)

can someone look for spelling and grammar mistakes...

metze

source/build/smb_build/README.txt [new file with mode: 0644]
source/build/smb_build/public.m4

diff --git a/source/build/smb_build/README.txt b/source/build/smb_build/README.txt
new file mode 100644 (file)
index 0000000..1350f12
--- /dev/null
@@ -0,0 +1,84 @@
+The Samba Build System\r
+----------------------\r
+----------------------\r
+\r
+Object Types\r
+------------\r
+the build system knows about the following object types\r
+\r
+SUBSYSTEM:\r
+       a SUBSYSTEM is basicly a collection of functions, which provide an\r
+       an generic API for a specific problem (e.g. libldb provides an api\r
+       for gneric ldb databases. libldb_plugin provides a generic api\r
+       for calling ldb plugins, so 'libldb' and 'libldb_plugin' are subsystems)\r
+\r
+MODULE:\r
+       a MODULE is a specify implementation of a API provided by a SUBSYSTEM.\r
+       (e.g. 'libldb_tdb' and 'libldb_ldap' are implementations of the subsystem 'libldb' API,\r
+        and 'libldb_plugin_timestamp' is a module of the 'libldb_plugin' subsystem)    \r
+\r
+EXT_LIB:\r
+       an EXT_LIB is an external library which is needed by a SUBSYSTEM, MODULE, BINARY or LIBRARY.\r
+       (e.g. 'gtk' or 'KRB5')\r
+\r
+BINARY:\r
+       a BINARY means a executable binary file.\r
+       (e.g. 'smbtorture' or 'ldbedit')\r
+       a BINARY typicly has only commandline handling and basic \r
+       functionality code in it and depends on the functions of\r
+       EXT_LIB's (required_libraries/REQUIRED_LIBRARIES) and/or\r
+       SUBSYSTEM's (required_subsystems/REQUIRED_SUBSYSTEMS).\r
+\r
+LIBRARY:\r
+       a LIBRARY means a static and/or shared library,\r
+       which depends on the used OS.\r
+       (e.g. for libldb 'libldb.so', 'libldb.so.0' 'libldb.so.0.0.1'\r
+             and libldb.a are created on linux)\r
+       a LIBRARY typicly has only glue code in it and depends on\r
+       the functions of EXT_LIB's (required_libraries/REQUIRED_LIBRARIES) \r
+       and/or SUBSYSTEM's (required_subsystems/REQUIRED_SUBSYSTEMS).\r
+\r
+\r
+Macrodescriptions\r
+----------------\r
+On top of build/smb_build/public.m4 is a list of all public macros of the build system.\r
+\r
+\r
+Layout\r
+-------\r
+\r
+Toplevel file: configure.in\r
+- included by autogen.sh: aclocal.m4\r
+  which includes the SMB_YXZ*() macros\r
+\r
+- default tests of the build system\r
+  are in build/smb_build/check_*.m4\r
+  (mostly compiler and basic C type and function\r
+   checks)\r
+\r
+- subsystem specific stuff should be included by 'SMB_INLUDE_M4()'\r
+\r
+\r
+Generating of 'configure'\r
+-------------------------\r
+you need to rerun ./autogen.sh when 'configure.in' or any\r
+'.m4' file was modified, then you need to rerun configure.\r
+\r
+\r
+Generating of 'config.status'\r
+-----------------------------\r
+you need to run ./config.status (or 'configure') after a '.mk'\r
+file was changed.\r
+\r
+\r
+Examples\r
+--------\r
+for now please take a look at the .m4 and .mk files\r
+you find in the source tree, they should be a good reference to start.\r
+\r
+\r
+README-TODO\r
+------------\r
+SMB_XYZ() vs. SMB_XYZ_MK()\r
+meaning of the macros parameters and the .mk file handling\r
+examples\r
index b03eafe7b456e408818cacfda0dc3fcd3f76ed3a..c9e02109c24861fd639b78b1959fb33c2ece777e 100644 (file)
@@ -13,7 +13,7 @@ dnl           2:subsystem,
 dnl            3:default_build,
 dnl            4:init_obj_files,
 dnl            5:add_obj_files,
-dnl            6:required_libs,
+dnl            6:required_libraries,
 dnl            7:required_subsystems
 dnl            )
 dnl
@@ -45,7 +45,7 @@ dnl SMB_SUBSYSTEM(
 dnl            1:name,
 dnl            2:init_obj_files,
 dnl            3:add_obj_files,
-dnl            4:required_libs,
+dnl            4:required_libraries,
 dnl            5:required_subsystems
 dnl            )
 dnl
@@ -95,7 +95,7 @@ dnl           2:major_version
 dnl            3:minor_version
 dnl            4:release_version
 dnl            5:obj_files,
-dnl            6:required_libs,
+dnl            6:required_libraries,
 dnl            7:required_subsystems
 dnl            )
 dnl
@@ -127,7 +127,7 @@ dnl         1:name,
 dnl            2:build_targets,
 dnl            3:install_path
 dnl            4:obj_files,
-dnl            5:required_libs,
+dnl            5:required_libraries,
 dnl            6:required_subsystems
 dnl            )
 dnl