diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-11-28 23:45:42 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-11-28 23:45:42 +0000 |
commit | b1f1e46ce2725324aacbfc79c5dad3fe4b89e9a3 (patch) | |
tree | dbd5b79df2ebe020d3ca7d78523f2a48cbaf8fc5 /lib | |
parent | 194882cc40ea7e97e0cd990099c87852134bd249 (diff) | |
download | ruby-b1f1e46ce2725324aacbfc79c5dad3fe4b89e9a3.tar.gz |
* lib/mkmf.rb: Wrap comments to 78 columns and clean up formatting.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mkmf.rb | 389 |
1 files changed, 206 insertions, 183 deletions
diff --git a/lib/mkmf.rb b/lib/mkmf.rb index ee2437a651..7e917c01ad 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -35,6 +35,10 @@ class Array end # :startdoc: +## +# mkmf.rb is used by ruby C extensions to generate a Makefile which will +# correctly compile and link the C extension to ruby and a third-party +# library. module MakeMakefile CONFIG = RbConfig::MAKEFILE_CONFIG @@ -219,8 +223,8 @@ module MakeMakefile FileUtils.rm_rf(Dir[*files.flatten], *opt) end - # Returns time stamp of the +target+ file if it exists and is newer - # than or equal to all of +times+. + # Returns time stamp of the +target+ file if it exists and is newer than or + # equal to all of +times+. def modified?(target, times) (t = File.mtime(target)) rescue return nil Array === times or times = [times] @@ -243,12 +247,12 @@ module MakeMakefile end end -# This is a custom logging module. It generates an mkmf.log file when you -# run your extconf.rb script. This can be useful for debugging unexpected -# failures. -# -# This module and its associated methods are meant for internal use only. -# + # This is a custom logging module. It generates an mkmf.log file when you + # run your extconf.rb script. This can be useful for debugging unexpected + # failures. + # + # This module and its associated methods are meant for internal use only. + # module Logging @log = nil @logfile = 'mkmf.log' @@ -462,8 +466,7 @@ MSG end end - # :nodoc: - def try_link0(src, opt="", *opts, &b) + def try_link0(src, opt="", *opts, &b) # :nodoc: cmd = link_command("", opt) if $universal require 'tmpdir' @@ -480,10 +483,10 @@ MSG end end - # Returns whether or not the +src+ can be compiled as a C source and - # linked with its depending libraries successfully. - # +opt+ is passed to the linker as options. Note that +$CFLAGS+ and +$LDFLAGS+ - # are also passed to the linker. + # Returns whether or not the +src+ can be compiled as a C source and linked + # with its depending libraries successfully. +opt+ is passed to the linker + # as options. Note that +$CFLAGS+ and +$LDFLAGS+ are also passed to the + # linker. # # If a block given, it is called with the source before compilation. You can # modify the source in the block. @@ -496,9 +499,9 @@ MSG rm_f "conftest*", "c0x32*" end - # Returns whether or not the +src+ can be compiled as a C source. - # +opt+ is passed to the C compiler as options. Note that +$CFLAGS+ is - # also passed to the compiler. + # Returns whether or not the +src+ can be compiled as a C source. +opt+ is + # passed to the C compiler as options. Note that +$CFLAGS+ is also passed to + # the compiler. # # If a block given, it is called with the source before compilation. You can # modify the source in the block. @@ -511,12 +514,12 @@ MSG rm_f "conftest*" end - # Returns whether or not the +src+ can be preprocessed with the C preprocessor. - # +opt+ is passed to the preprocessor as options. Note that +$CFLAGS+ is - # also passed to the preprocessor. + # Returns whether or not the +src+ can be preprocessed with the C + # preprocessor. +opt+ is passed to the preprocessor as options. Note that + # +$CFLAGS+ is also passed to the preprocessor. # - # If a block given, it is called with the source before preprocessing. You can - # modify the source in the block. + # If a block given, it is called with the source before preprocessing. You + # can modify the source in the block. # # [+src+] a String which contains a C source # [+opt+] a String which contains preprocessor options @@ -617,12 +620,12 @@ int main() {printf("%d\\n", conftest_const); return 0;} nil end -# You should use +have_func+ rather than +try_func+. -# -# [+func+] a String which contains a symbol name -# [+libs+] a String which contains library names. -# [+headers+] a String or an Array of strings which contains -# names of header files. + # You should use +have_func+ rather than +try_func+. + # + # [+func+] a String which contains a symbol name + # [+libs+] a String which contains library names. + # [+headers+] a String or an Array of strings which contains names of header + # files. def try_func(func, libs, headers = nil, opt = "", &b) headers = cpp_include(headers) case func @@ -660,7 +663,7 @@ int t(void) { #{func}(); return 0; } SRC end -# You should use +have_var+ rather than +try_var+. + # You should use +have_var+ rather than +try_var+. def try_var(var, headers = nil, opt = "", &b) headers = cpp_include(headers) try_compile(<<"SRC", opt, &b) @@ -672,8 +675,8 @@ int t(void) { const volatile void *volatile p; p = &(&#{var})[0]; return 0; } SRC end - # Returns whether or not the +src+ can be preprocessed with the C preprocessor and - # matches with +pat+. + # Returns whether or not the +src+ can be preprocessed with the C + # preprocessor and matches with +pat+. # # If a block given, it is called with the source before compilation. You can # modify the source in the block. @@ -682,9 +685,8 @@ SRC # [+src+] a String which contains a C source # [+opt+] a String which contains preprocessor options # - # Note: - # When pat is a Regexp the matching will be checked in process, - # otherwise egrep(1) will be invoked to check it. + # NOTE: When pat is a Regexp the matching will be checked in process, + # otherwise egrep(1) will be invoked to check it. def egrep_cpp(pat, src, opt = "", &b) src = create_tmpsrc(src, &b) xpopen(cpp_command('', opt)) do |f| @@ -723,13 +725,15 @@ SRC SRC end - # Returns whether or not + # Returns whether or not: # * the +src+ can be compiled as a C source, - # * the result object can be linked with its depending libraries successfully, + # * the result object can be linked with its depending libraries + # successfully, # * the linked file can be invoked as an executable # * and the executable exits successfully - # +opt+ is passed to the linker as options. Note that +$CFLAGS+ and +$LDFLAGS+ - # are also passed to the linker. + # + # +opt+ is passed to the linker as options. Note that +$CFLAGS+ and + # +$LDFLAGS+ are also passed to the linker. # # If a block given, it is called with the source before compilation. You can # modify the source in the block. @@ -737,8 +741,8 @@ SRC # [+src+] a String which contains a C source # [+opt+] a String which contains linker options # - # @return true when the executable exits successfully, false when it fails, or - # nil when preprocessing, compilation or link fails. + # Returns true when the executable exits successfully, false when it fails, + # or nil when preprocessing, compilation or link fails. def try_run(src, opt = "", &b) if try_link0(src, opt, &b) xsystem("./conftest") @@ -855,15 +859,15 @@ SRC end # Returns whether or not the given entry point +func+ can be found within - # +lib+. If +func+ is nil, the 'main()' entry point is used by default. - # If found, it adds the library to list of libraries to be used when linking - # your extension. + # +lib+. If +func+ is nil, the <code>main()</code> entry point is used by + # default. If found, it adds the library to list of libraries to be used + # when linking your extension. # # If +headers+ are provided, it will include those header files as the # header files it looks in when searching for +func+. # # The real name of the library to be linked can be altered by - # '--with-FOOlib' configuration option. + # <code>--with-FOOlib</code> configuration option. # def have_library(lib, func = nil, headers = nil, opt = "", &b) func = "main" if !func or func.empty? @@ -883,9 +887,10 @@ SRC end end - # Returns whether or not the entry point +func+ can be found within the library - # +lib+ in one of the +paths+ specified, where +paths+ is an array of strings. - # If +func+ is nil , then the main() function is used as the entry point. + # Returns whether or not the entry point +func+ can be found within the + # library +lib+ in one of the +paths+ specified, where +paths+ is an array + # of strings. If +func+ is nil , then the <code>main()</code> function is + # used as the entry point. # # If +lib+ is found, then the path it was found on is added to the list of # library paths searched and linked against. @@ -913,12 +918,12 @@ SRC end # Returns whether or not the function +func+ can be found in the common - # header files, or within any +headers+ that you provide. If found, a - # macro is passed as a preprocessor constant to the compiler using the - # function name, in uppercase, prepended with 'HAVE_'. + # header files, or within any +headers+ that you provide. If found, a macro + # is passed as a preprocessor constant to the compiler using the function + # name, in uppercase, prepended with +HAVE_+. # - # For example, if have_func('foo') returned true, then the HAVE_FOO - # preprocessor macro would be passed to the compiler. + # For example, if <code>have_func('foo')</code> returned true, then the + # +HAVE_FOO+ preprocessor macro would be passed to the compiler. # def have_func(func, headers = nil, opt = "", &b) checking_for checking_message(func.funcall_style, headers, opt) do @@ -932,12 +937,12 @@ SRC end # Returns whether or not the variable +var+ can be found in the common - # header files, or within any +headers+ that you provide. If found, a - # macro is passed as a preprocessor constant to the compiler using the - # variable name, in uppercase, prepended with 'HAVE_'. + # header files, or within any +headers+ that you provide. If found, a macro + # is passed as a preprocessor constant to the compiler using the variable + # name, in uppercase, prepended with +HAVE_+. # - # For example, if have_var('foo') returned true, then the HAVE_FOO - # preprocessor macro would be passed to the compiler. + # For example, if <code>have_var('foo')</code> returned true, then the + # +HAVE_FOO+ preprocessor macro would be passed to the compiler. # def have_var(var, headers = nil, opt = "", &b) checking_for checking_message(var, headers, opt) do @@ -951,11 +956,11 @@ SRC end # Returns whether or not the given +header+ file can be found on your system. - # If found, a macro is passed as a preprocessor constant to the compiler using - # the header file name, in uppercase, prepended with 'HAVE_'. + # If found, a macro is passed as a preprocessor constant to the compiler + # using the header file name, in uppercase, prepended with +HAVE_+. # - # For example, if have_header('foo.h') returned true, then the HAVE_FOO_H - # preprocessor macro would be passed to the compiler. + # For example, if <code>have_header('foo.h')</code> returned true, then the + # +HAVE_FOO_H+ preprocessor macro would be passed to the compiler. # def have_header(header, preheaders = nil, opt = "", &b) checking_for header do @@ -969,11 +974,12 @@ SRC end # Returns whether or not the given +framework+ can be found on your system. - # If found, a macro is passed as a preprocessor constant to the compiler using - # the framework name, in uppercase, prepended with 'HAVE_FRAMEWORK_'. + # If found, a macro is passed as a preprocessor constant to the compiler + # using the framework name, in uppercase, prepended with +HAVE_FRAMEWORK_+. # - # For example, if have_framework('Ruby') returned true, then the HAVE_FRAMEWORK_RUBY - # preprocessor macro would be passed to the compiler. + # For example, if <code>have_framework('Ruby')</code> returned true, then + # the +HAVE_FRAMEWORK_RUBY+ preprocessor macro would be passed to the + # compiler. # def have_framework(fw, &b) checking_for fw do @@ -992,7 +998,8 @@ SRC # provided, and returns whether or not it was found in those paths. # # If the header is found then the path it was found on is added to the list - # of included directories that are sent to the compiler (via the -I switch). + # of included directories that are sent to the compiler (via the + # <code>-I</code> switch). # def find_header(header, *paths) message = checking_message(header, paths) @@ -1016,17 +1023,19 @@ SRC end # Returns whether or not the struct of type +type+ contains +member+. If - # it does not, or the struct type can't be found, then false is returned. You - # may optionally specify additional +headers+ in which to look for the struct - # (in addition to the common header files). + # it does not, or the struct type can't be found, then false is returned. + # You may optionally specify additional +headers+ in which to look for the + # struct (in addition to the common header files). # - # If found, a macro is passed as a preprocessor constant to the compiler using - # the type name and the member name, in uppercase, prepended with 'HAVE_'. + # If found, a macro is passed as a preprocessor constant to the compiler + # using the type name and the member name, in uppercase, prepended with + # +HAVE_+. # - # For example, if have_struct_member('struct foo', 'bar') returned true, then the - # HAVE_STRUCT_FOO_BAR preprocessor macro would be passed to the compiler. + # For example, if <code>have_struct_member('struct foo', 'bar')</code> + # returned true, then the +HAVE_STRUCT_FOO_BAR+ preprocessor macro would be + # passed to the compiler. # - # HAVE_ST_BAR is also defined for backward compatibility. + # +HAVE_ST_BAR+ is also defined for backward compatibility. # def have_struct_member(type, member, headers = nil, opt = "", &b) checking_for checking_message("#{type}.#{member}", headers) do @@ -1070,11 +1079,11 @@ SRC # You may also pass additional flags to +opt+ which are then passed along to # the compiler. # - # If found, a macro is passed as a preprocessor constant to the compiler using - # the type name, in uppercase, prepended with 'HAVE_TYPE_'. + # If found, a macro is passed as a preprocessor constant to the compiler + # using the type name, in uppercase, prepended with +HAVE_TYPE_+. # - # For example, if have_type('foo') returned true, then the HAVE_TYPE_FOO - # preprocessor macro would be passed to the compiler. + # For example, if <code>have_type('foo')</code> returned true, then the + # +HAVE_TYPE_FOO+ preprocessor macro would be passed to the compiler. # def have_type(type, headers = nil, opt = "", &b) checking_for checking_message(type, headers, opt) do @@ -1102,7 +1111,7 @@ SRC end end - # Returns whether or not the Constant +const+ is defined. + # Returns whether or not the constant +const+ is defined. # # See also +have_const+ # @@ -1123,19 +1132,19 @@ SRC # Returns whether or not the constant +const+ is defined. You may # optionally pass the +type+ of +const+ as <code>[const, type]</code>, - # like as: + # such as: # # have_const(%w[PTHREAD_MUTEX_INITIALIZER pthread_mutex_t], "pthread.h") # - # You may also pass additional +headers+ to check against in addition - # to the common header files, and additional flags to +opt+ which are - # then passed along to the compiler. + # You may also pass additional +headers+ to check against in addition to the + # common header files, and additional flags to +opt+ which are then passed + # along to the compiler. # - # If found, a macro is passed as a preprocessor constant to the compiler using - # the type name, in uppercase, prepended with 'HAVE_CONST_'. + # If found, a macro is passed as a preprocessor constant to the compiler + # using the type name, in uppercase, prepended with +HAVE_CONST_+. # - # For example, if have_const('foo') returned true, then the HAVE_CONST_FOO - # preprocessor macro would be passed to the compiler. + # For example, if <code>have_const('foo')</code> returned true, then the + # +HAVE_CONST_FOO+ preprocessor macro would be passed to the compiler. # def have_const(const, headers = nil, opt = "", &b) checking_for checking_message([*const].compact.join(' '), headers, opt) do @@ -1143,8 +1152,8 @@ SRC end end - STRING_OR_FAILED_FORMAT = "%s" # :stopdoc: + STRING_OR_FAILED_FORMAT = "%s" def STRING_OR_FAILED_FORMAT.%(x) x ? super : "failed" end @@ -1167,15 +1176,16 @@ SRC # :startdoc: - # Returns the size of the given +type+. You may optionally specify additional - # +headers+ to search in for the +type+. + # Returns the size of the given +type+. You may optionally specify + # additional +headers+ to search in for the +type+. # - # If found, a macro is passed as a preprocessor constant to the compiler using - # the type name, in uppercase, prepended with 'SIZEOF_', followed by the type - # name, followed by '=X' where 'X' is the actual size. + # If found, a macro is passed as a preprocessor constant to the compiler + # using the type name, in uppercase, prepended with +SIZEOF_+, followed by + # the type name, followed by <code>=X</code> where "X" is the actual size. # - # For example, if check_sizeof('mystruct') returned 12, then the - # SIZEOF_MYSTRUCT=12 preprocessor macro would be passed to the compiler. + # For example, if <code>check_sizeof('mystruct')</code> returned 12, then + # the <code>SIZEOF_MYSTRUCT=12</code> preprocessor macro would be passed to + # the compiler. # def check_sizeof(type, headers = nil, opts = "", &b) typedef, member, prelude = typedef_expr(type, headers) @@ -1191,20 +1201,20 @@ SRC end end - # Returns the signedness of the given +type+. You may optionally - # specify additional +headers+ to search in for the +type+. + # Returns the signedness of the given +type+. You may optionally specify + # additional +headers+ to search in for the +type+. # # If the +type+ is found and is a numeric type, a macro is passed as a - # preprocessor constant to the compiler using the +type+ name, in - # uppercase, prepended with 'SIGNEDNESS_OF_', followed by the +type+ - # name, followed by '=X' where 'X' is positive integer if the +type+ is - # unsigned, or negative integer if the +type+ is signed. + # preprocessor constant to the compiler using the +type+ name, in uppercase, + # prepended with +SIGNEDNESS_OF_+, followed by the +type+ name, followed by + # <code>=X</code> where "X" is positive integer if the +type+ is unsigned + # and a negative integer if the +type+ is signed. # - # For example, if size_t is defined as unsigned, then - # check_signedness('size_t') would returned +1 and the - # SIGNEDNESS_OF_SIZE_T=+1 preprocessor macro would be passed to the - # compiler, and SIGNEDNESS_OF_INT=-1 if check_signedness('int') is - # done. + # For example, if +size_t+ is defined as unsigned, then + # <code>check_signedness('size_t')</code> would return +1 and the + # <code>SIGNEDNESS_OF_SIZE_T=+1</code> preprocessor macro would be passed to + # the compiler. The <code>SIGNEDNESS_OF_INT=-1</code> macro would be set + # for <code>check_signedness('int')</code> # def check_signedness(type, headers = nil, opts = nil, &b) typedef, member, prelude = typedef_expr(type, headers) @@ -1219,25 +1229,28 @@ SRC # Returns the convertible integer type of the given +type+. You may # optionally specify additional +headers+ to search in for the +type+. - # _Convertible_ means actually same type, or typedefed from same type. + # _convertible_ means actually the same type, or typedef'd from the same + # type. # - # If the +type+ is a integer type and _convertible_ type is found, - # following macros are passed as preprocessor constants to the - # compiler using the +type+ name, in uppercase. + # If the +type+ is a integer type and the _convertible_ type is found, + # the following macros are passed as preprocessor constants to the compiler + # using the +type+ name, in uppercase. # - # * 'TYPEOF_', followed by the +type+ name, followed by '=X' where 'X' - # is the found _convertible_ type name. * 'TYP2NUM' and 'NUM2TYP, - # where 'TYP' is the +type+ name in uppercase with replacing '_t' - # suffix with 'T', followed by '=X' where 'X' is the macro name to - # convert +type+ to +Integer+ object, and vice versa. + # * +TYPEOF_+, followed by the +type+ name, followed by <code>=X</code> + # where "X" is the found _convertible_ type name. + # * +TYP2NUM+ and +NUM2TYP+, + # where +TYP+ is the +type+ name in uppercase with replacing an +_t+ + # suffix with "T", followed by <code>=X</code> where "X" is the macro name + # to convert +type+ to an Integer object, and vice versa. # - # For example, if foobar_t is defined as unsigned long, then - # convertible_int("foobar_t") would return "unsigned long", and define - # macros: + # For example, if +foobar_t+ is defined as unsigned long, then + # <code>convertible_int("foobar_t")</code> would return "unsigned long", and + # define these macros: # # #define TYPEOF_FOOBAR_T unsigned long # #define FOOBART2NUM ULONG2NUM # #define NUM2FOOBART NUM2ULONG + # def convertible_int(type, headers = nil, opts = nil, &b) type, macname = *type checking_for("convertible type of #{type}", STRING_OR_FAILED_FORMAT) do @@ -1302,7 +1315,7 @@ int t(void) {return (int)(1-(conftestval#{member ? ".#{member}" : ""}));} SRC end -# Used internally by the what_type? method to check if _typeof_ GCC + # Used internally by the what_type? method to check if the _typeof_ GCC # extension is available. def have_typeof? return $typeof if defined?($typeof) @@ -1412,12 +1425,12 @@ SRC # :startdoc: - # Searches for the executable +bin+ on +path+. The default path is your - # PATH environment variable. If that isn't defined, it will resort to + # Searches for the executable +bin+ on +path+. The default path is your + # +PATH+ environment variable. If that isn't defined, it will resort to # searching /usr/local/bin, /usr/ucb, /usr/bin and /bin. # - # If found, it will return the full path, including the executable name, - # of where it was found. + # If found, it will return the full path, including the executable name, of + # where it was found. # # Note that this method does not actually affect the generated Makefile. # @@ -1442,11 +1455,13 @@ SRC # :startdoc: - # Tests for the presence of a --with-<tt>config</tt> or --without-<tt>config</tt> - # option. Returns true if the with option is given, false if the without - # option is given, and the default value otherwise. + # Tests for the presence of a <tt>--with-</tt>_config_ or + # <tt>--without-</tt>_config_ option. Returns true if the with option is + # given, false if the without option is given, and the default value + # otherwise. # - # This can be useful for adding custom definitions, such as debug information. + # This can be useful for adding custom definitions, such as debug + # information. # # Example: # @@ -1475,11 +1490,13 @@ SRC end end - # Tests for the presence of an --enable-<tt>config</tt> or - # --disable-<tt>config</tt> option. Returns true if the enable option is given, - # false if the disable option is given, and the default value otherwise. + # Tests for the presence of an <tt>--enable-</tt>_config_ or + # <tt>--disable-</tt>_config_ option. Returns true if the enable option is + # given, false if the disable option is given, and the default value + # otherwise. # - # This can be useful for adding custom definitions, such as debug information. + # This can be useful for adding custom definitions, such as debug + # information. # # Example: # @@ -1499,27 +1516,27 @@ SRC end end - # Generates a header file consisting of the various macro definitions generated - # by other methods such as have_func and have_header. These are then wrapped in - # a custom #ifndef based on the +header+ file name, which defaults to - # 'extconf.h'. + # Generates a header file consisting of the various macro definitions + # generated by other methods such as have_func and have_header. These are + # then wrapped in a custom <code>#ifndef</code> based on the +header+ file + # name, which defaults to "extconf.h". # # For example: # - # # extconf.rb - # require 'mkmf' - # have_func('realpath') - # have_header('sys/utime.h') - # create_header - # create_makefile('foo') + # # extconf.rb + # require 'mkmf' + # have_func('realpath') + # have_header('sys/utime.h') + # create_header + # create_makefile('foo') # # The above script would generate the following extconf.h file: # - # #ifndef EXTCONF_H - # #define EXTCONF_H - # #define HAVE_REALPATH 1 - # #define HAVE_SYS_UTIME_H 1 - # #endif + # #ifndef EXTCONF_H + # #define EXTCONF_H + # #define HAVE_REALPATH 1 + # #define HAVE_SYS_UTIME_H 1 + # #endif # # Given that the create_header method generates a file based on definitions # set earlier in your extconf.rb file, you will probably want to make this @@ -1547,16 +1564,17 @@ SRC $extconf_h = header end - # Sets a +target+ name that the user can then use to configure various 'with' - # options with on the command line by using that name. For example, if the - # target is set to "foo", then the user could use the --with-foo-dir command - # line option. + # Sets a +target+ name that the user can then use to configure various + # "with" options with on the command line by using that name. For example, + # if the target is set to "foo", then the user could use the + # <code>--with-foo-dir</code> command line option. # - # You may pass along additional 'include' or 'lib' defaults via the +idefault+ - # and +ldefault+ parameters, respectively. + # You may pass along additional "include" or "lib" defaults via the + # +idefault+ and +ldefault+ parameters, respectively. # - # Note that dir_config only adds to the list of places to search for libraries - # and include files. It does not link the libraries into your application. + # Note that dir_config only adds to the list of places to search for + # libraries and include files. It does not link the libraries into your + # application. # def dir_config(target, idefault=nil, ldefault=nil) if dir = with_config(target + "-dir", (idefault unless ldefault)) @@ -1798,8 +1816,8 @@ all install static install-so install-rb: Makefile RULES end - # Processes the data contents of the "depend" file. - # Each line of this file is expected to be a file name. + # Processes the data contents of the "depend" file. Each line of this file + # is expected to be a file name. # # Returns the output of findings, in Makefile format. # @@ -1863,53 +1881,54 @@ RULES # preprocessor constants that you may have generated through other methods. # # The +target+ name should correspond the name of the global function name - # defined within your C extension, minus the 'Init_'. For example, if your - # C extension is defined as 'Init_foo', then your target would simply be 'foo'. + # defined within your C extension, minus the +Init_+. For example, if your + # C extension is defined as +Init_foo+, then your target would simply be + # "foo". # - # If any '/' characters are present in the target name, only the last name + # If any "/" characters are present in the target name, only the last name # is interpreted as the target name, and the rest are considered toplevel # directory names, and the generated Makefile will be altered accordingly to # follow that directory structure. # - # For example, if you pass 'test/foo' as a target name, your extension will - # be installed under the 'test' directory. This means that in order to + # For example, if you pass "test/foo" as a target name, your extension will + # be installed under the "test" directory. This means that in order to # load the file within a Ruby program later, that directory structure will - # have to be followed, e.g. "require 'test/foo'". + # have to be followed, e.g. <code>require 'test/foo'</code>. # # The +srcprefix+ should be used when your source files are not in the same # directory as your build script. This will not only eliminate the need for - # you to manually copy the source files into the same directory as your build - # script, but it also sets the proper +target_prefix+ in the generated + # you to manually copy the source files into the same directory as your + # build script, but it also sets the proper +target_prefix+ in the generated # Makefile. # # Setting the +target_prefix+ will, in turn, install the generated binary in - # a directory under your RbConfig::CONFIG['sitearchdir'] that mimics your local - # filesystem when you run 'make install'. + # a directory under your <code>RbConfig::CONFIG['sitearchdir']</code> that + # mimics your local filesystem when you run <code>make install</code>. # # For example, given the following file tree: # - # ext/ - # extconf.rb - # test/ - # foo.c + # ext/ + # extconf.rb + # test/ + # foo.c # # And given the following code: # - # create_makefile('test/foo', 'test') + # create_makefile('test/foo', 'test') # - # That will set the +target_prefix+ in the generated Makefile to 'test'. That, - # in turn, will create the following file tree when installed via the - # 'make install' command: + # That will set the +target_prefix+ in the generated Makefile to "test". + # That, in turn, will create the following file tree when installed via the + # <code>make install</code> command: # - # /path/to/ruby/sitearchdir/test/foo.so + # /path/to/ruby/sitearchdir/test/foo.so # # It is recommended that you use this approach to generate your makefiles, # instead of copying files around manually, because some third party # libraries may depend on the +target_prefix+ being set properly. # # The +srcprefix+ argument can be used to override the default source - # directory, i.e. the current directory . It is included as part of the VPATH - # and added to the list of INCFLAGS. + # directory, i.e. the current directory. It is included as part of the + # +VPATH+ and added to the list of +INCFLAGS+. # def create_makefile(target, srcprefix = nil) $target = target @@ -2233,9 +2252,9 @@ site-install-rb: install-rb end FailedMessage = <<MESSAGE -Could not create Makefile due to some reason, probably lack of -necessary libraries and/or headers. Check the mkmf.log file for more -details. You may need configuration options. +Could not create Makefile due to some reason, probably lack of necessary +libraries and/or headers. Check the mkmf.log file for more details. You may +need configuration options. Provided configuration options: MESSAGE @@ -2252,8 +2271,10 @@ MESSAGE end end - # :startdoc: - + # Initializes mkmf for creating a makefile. + # + # Internal use only. + # def make_makefile init_mkmf @@ -2282,8 +2303,10 @@ MESSAGE end $configure_args["--topdir"] ||= $curdir $ruby = arg_config("--ruby", File.join(RbConfig::CONFIG["bindir"], CONFIG["ruby_install_name"])) - end + + # :startdoc: + split = Shellwords.method(:shellwords).to_proc EXPORT_PREFIX = config_string('EXPORT_PREFIX') {|s| s.strip} |