ÿØÿà JFIF    ÿÛ „ ( %!1!%*+...983,7(-.- PKJ]"+have_macro-i.rinu[U:RDoc::AnyMethod[iI"have_macro:EFI"MakeMakefile#have_macro;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"KReturns whether or not +macro+ is defined either in the common header ;TI"/files or within any +headers+ you provide.;To:RDoc::Markup::BlankLineo; ; [I"DAny options you pass to +opt+ are passed along to the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I")(macro, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]Q^^with_config-i.rinu[U:RDoc::AnyMethod[iI"with_config:EFI"MakeMakefile#with_config;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"=Tests for the presence of a --with-_config_ or ;TI"O--without-_config_ option. Returns +true+ if the with option is ;TI"Jgiven, +false+ if the without option is given, and the default value ;TI"otherwise.;To:RDoc::Markup::BlankLineo; ; [I"EThis can be useful for adding custom definitions, such as debug ;TI"information.;T@o; ; [I" Example:;T@o:RDoc::Markup::Verbatim; [I"if with_config("debug") ;TI"H $defs.push("-DOSSL_DEBUG") unless $defs.include? "-DOSSL_DEBUG" ;TI"end;T: @format0: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below00I"config, default;T[I"(config, default=nil);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]uWWappend_cflags-i.rinu[U:RDoc::AnyMethod[iI"append_cflags:ETI"MakeMakefile#append_cflags;TF: privateo:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"JCheck whether each given C compiler flag is acceptable and append it ;TI"to $CFLAGS if so.;To:RDoc::Markup::BlankLineo:RDoc::Markup::List: @type: LABEL: @items[o:RDoc::Markup::ListItem: @label[I" +flags+;T; [o; ; [I":a C compiler flag as a +String+ or an +Array+ of them;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(flags, *opts);T@FI"MakeMakefile;TcRDoc::NormalModule00PKJ]cTconftest_source-i.rinu[U:RDoc::AnyMethod[iI"conftest_source:ETI"!MakeMakefile#conftest_source;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"MakeMakefile;TcRDoc::NormalModule00PKJ]%5b%5d%3d-c.rinu[U:RDoc::AnyMethod[iI"[]=:ETI"MakeMakefile::[]=;TT: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(name, mod);T@ FI"MakeMakefile;TcRDoc::NormalModule00PKJ]MCcdesc-MakeMakefile.rinu[U:RDoc::NormalModule[iI"MakeMakefile:EF@0o:RDoc::Markup::Document: @parts[o;;[o:RDoc::Markup::Paragraph;[I"Lmkmf.rb is used by Ruby C extensions to generate a Makefile which will ;TI"Jcorrectly compile and link the C extension to Ruby and a third-party ;TI" library.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below0; 0; 0[[U:RDoc::Constant[iI" CONFIG;FI"MakeMakefile::CONFIG;T00o;;[o; ;[I"LThe makefile configuration using the defaults from when Ruby was built.;T; @; 0@@cRDoc::NormalModule0U; [iI"ORIG_LIBPATH;FI"MakeMakefile::ORIG_LIBPATH;T00o;;[; @; 0@@@0U; [iI" C_EXT;FI"MakeMakefile::C_EXT;T00o;;[o; ;[I"4Extensions for files compiled with a C compiler;T; @; 0@@@0U; [iI" CXX_EXT;FI"MakeMakefile::CXX_EXT;T00o;;[o; ;[I"6Extensions for files complied with a C++ compiler;T; @; 0@@@0U; [iI" SRC_EXT;FI"MakeMakefile::SRC_EXT;T00o;;[o; ;[I" Extensions for source files;T; @; 0@@@0U; [iI" HDR_EXT;FI"MakeMakefile::HDR_EXT;T00o;;[o; ;[I" Extensions for header files;T; @; 0@@@0U; [iI"EXPORT_PREFIX;FI" MakeMakefile::EXPORT_PREFIX;T00o;;[; @; 0@@@0U; [iI"COMMON_HEADERS;FI"!MakeMakefile::COMMON_HEADERS;T00o;;[o; ;[I")Common headers for Ruby C extensions;T; @; 0@@@0U; [iI"COMMON_LIBS;FI"MakeMakefile::COMMON_LIBS;T00o;;[o; ;[I"+Common libraries for Ruby C extensions;T; @; 0@@@0U; [iI"COMPILE_RULES;FI" MakeMakefile::COMPILE_RULES;T00o;;[o; ;[I"make compile rules;T; @; 0@@@0U; [iI"RULE_SUBST;FI"MakeMakefile::RULE_SUBST;T00o;;[; @; 0@@@0U; [iI"COMPILE_C;FI"MakeMakefile::COMPILE_C;T00o;;[o; ;[I"ACommand which will compile C files in the generated Makefile;T; @; 0@@@0U; [iI"COMPILE_CXX;FI"MakeMakefile::COMPILE_CXX;T00o;;[o; ;[I"CCommand which will compile C++ files in the generated Makefile;T; @; 0@@@0U; [iI" TRY_LINK;FI"MakeMakefile::TRY_LINK;T00o;;[o; ;[I"LCommand which will compile a program in order to test linking a library;T; @; 0@@@0U; [iI" LINK_SO;FI"MakeMakefile::LINK_SO;T00o;;[o; ;[I"-Command which will link a shared library;T; @; 0@@@0U; [iI"LIBPATHFLAG;FI"MakeMakefile::LIBPATHFLAG;T00o;;[o; ;[I"9Argument which will add a library path to the linker;T; @; 0@@@0U; [iI"RPATHFLAG;FI"MakeMakefile::RPATHFLAG;T00o;;[; @; 0@@@0U; [iI" LIBARG;FI"MakeMakefile::LIBARG;T00o;;[o; ;[I"4Argument which will add a library to the linker;T; @; 0@@@0U; [iI"MAIN_DOES_NOTHING;FI"$MakeMakefile::MAIN_DOES_NOTHING;T00o;;[o; ;[I")A C main function which does no work;T; @; 0@@@0U; [iI"UNIVERSAL_INTS;FI"!MakeMakefile::UNIVERSAL_INTS;T00o;;[; @; 0@@@0U; [iI"CLEANINGS;FI"MakeMakefile::CLEANINGS;T00o;;[o; ;[I"AMakefile rules that will clean the extension build directory;T; @; 0@@@0[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[I"check_signedness;FI"lib/mkmf.rb;T[I"check_sizeof;F@[I"convertible_int;F@[I"create_header;F@[I"create_makefile;F@[I"depend_rules;F@[I"dir_config;F@[I"dummy_makefile;F@[I"enable_config;F@[I"find_executable;F@[I"find_header;F@[I"find_library;F@[I"find_type;F@[I"have_const;F@[I"have_framework;F@[I"have_func;F@[I"have_header;F@[I"have_library;F@[I"have_macro;F@[I"have_struct_member;F@[I"have_type;F@[I" have_var;F@[I"pkg_config;F@[I"try_const;F@[I" try_type;F@[I"with_config;F@[;[[;[[[U:RDoc::Context::Section[i0o;;[; 0; 0[@@cRDoc::TopLevelPKJ]?(depend_rules-i.rinu[U:RDoc::AnyMethod[iI"depend_rules:EFI"MakeMakefile#depend_rules;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"OProcesses the data contents of the "depend" file. Each line of this file ;TI"#is expected to be a file name.;To:RDoc::Markup::BlankLineo; ; [I"8Returns the output of findings, in Makefile format.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I" (depend);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]< . %5b%5d-c.rinu[U:RDoc::AnyMethod[iI"[]:ETI"MakeMakefile::[];TT: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I" (name);T@ FI"MakeMakefile;TcRDoc::NormalModule00PKJ]Mhave_header-i.rinu[U:RDoc::AnyMethod[iI"have_header:EFI"MakeMakefile#have_header;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"QReturns whether or not the given +header+ file can be found on your system. ;TI"LIf found, a macro is passed as a preprocessor constant to the compiler ;TI"Fusing the header file name, in uppercase, prepended with +HAVE_+.;To:RDoc::Markup::BlankLineo; ; [I"OFor example, if have_header('foo.h') returned true, then the ;TI"E+HAVE_FOO_H+ preprocessor macro would be passed to the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"-(header, preheaders = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]Ɓhave_devel%3f-i.rinu[U:RDoc::AnyMethod[iI"have_devel?:ETI"MakeMakefile#have_devel?;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"();T@ FI"MakeMakefile;TcRDoc::NormalModule00PKJ]YGVfind_library-i.rinu[U:RDoc::AnyMethod[iI"find_library:EFI"MakeMakefile#find_library;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"KReturns whether or not the entry point +func+ can be found within the ;TI"Nlibrary +lib+ in one of the +paths+ specified, where +paths+ is an array ;TI"Pof strings. If +func+ is +nil+ , then the main() function is ;TI"used as the entry point.;To:RDoc::Markup::BlankLineo; ; [I"NIf +lib+ is found, then the path it was found on is added to the list of ;TI"/library paths searched and linked against.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(lib, func, *paths, &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ] \| | create_makefile-i.rinu[U:RDoc::AnyMethod[iI"create_makefile:EFI"!MakeMakefile#create_makefile;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"NGenerates the Makefile for your extension, passing along any options and ;TI"Npreprocessor constants that you may have generated through other methods.;To:RDoc::Markup::BlankLineo; ; [ I"NThe +target+ name should correspond the name of the global function name ;TI"Odefined within your C extension, minus the +Init_+. For example, if your ;TI"LC extension is defined as +Init_foo+, then your target would simply be ;TI" "foo".;T@o; ; [ I"NIf any "/" characters are present in the target name, only the last name ;TI"Mis interpreted as the target name, and the rest are considered toplevel ;TI"Pdirectory names, and the generated Makefile will be altered accordingly to ;TI"%follow that directory structure.;T@o; ; [ I"OFor example, if you pass "test/foo" as a target name, your extension will ;TI"Kbe installed under the "test" directory. This means that in order to ;TI"Nload the file within a Ruby program later, that directory structure will ;TI"?have to be followed, e.g. require 'test/foo'.;T@o; ; [ I"OThe +srcprefix+ should be used when your source files are not in the same ;TI"Odirectory as your build script. This will not only eliminate the need for ;TI"Kyou to manually copy the source files into the same directory as your ;TI"Pbuild script, but it also sets the proper +target_prefix+ in the generated ;TI"Makefile.;T@o; ; [I"PSetting the +target_prefix+ will, in turn, install the generated binary in ;TI"Na directory under your RbConfig::CONFIG['sitearchdir'] that ;TI"Imimics your local filesystem when you run make install.;T@o; ; [I"0For example, given the following file tree:;T@o:RDoc::Markup::Verbatim; [ I" ext/ ;TI" extconf.rb ;TI" test/ ;TI" foo.c ;T: @format0o; ; [I""And given the following code:;T@o; ; [I")create_makefile('test/foo', 'test') ;T; 0o; ; [I"LThat will set the +target_prefix+ in the generated Makefile to "test". ;TI"OThat, in turn, will create the following file tree when installed via the ;TI"'make install command:;T@o; ; [I"+/path/to/ruby/sitearchdir/test/foo.so ;T; 0o; ; [I"NIt is recommended that you use this approach to generate your makefiles, ;TI"Hinstead of copying files around manually, because some third party ;TI"Dlibraries may depend on the +target_prefix+ being set properly.;T@o; ; [I"IThe +srcprefix+ argument can be used to override the default source ;TI"Kdirectory, i.e. the current directory. It is included as part of the ;TI"1+VPATH+ and added to the list of +INCFLAGS+.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below00I" conf;T[I"(target, srcprefix = nil);T@OFI"MakeMakefile;FcRDoc::NormalModule00PKJ]em{check_signedness-i.rinu[U:RDoc::AnyMethod[iI"check_signedness:EFI""MakeMakefile#check_signedness;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"MReturns the signedness of the given +type+. You may optionally specify ;TI"6additional +headers+ to search in for the +type+.;To:RDoc::Markup::BlankLineo; ; [ I"JIf the +type+ is found and is a numeric type, a macro is passed as a ;TI"Ppreprocessor constant to the compiler using the +type+ name, in uppercase, ;TI"Oprepended with +SIGNEDNESS_OF_+, followed by the +type+ name, followed by ;TI"M=X where "X" is positive integer if the +type+ is unsigned ;TI"4and a negative integer if the +type+ is signed.;T@o; ; [ I";For example, if +size_t+ is defined as unsigned, then ;TI"Echeck_signedness('size_t') would return +1 and the ;TI"PSIGNEDNESS_OF_SIZE_T=+1 preprocessor macro would be passed to ;TI"Mthe compiler. The SIGNEDNESS_OF_INT=-1 macro would be set ;TI"-for check_signedness('int');T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"*(type, headers = nil, opts = nil, &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]Hm-find_header-i.rinu[U:RDoc::AnyMethod[iI"find_header:EFI"MakeMakefile#find_header;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"KInstructs mkmf to search for the given +header+ in any of the +paths+ ;TI"Fprovided, and returns whether or not it was found in those paths.;To:RDoc::Markup::BlankLineo; ; [I"OIf the header is found then the path it was found on is added to the list ;TI"Dof included directories that are sent to the compiler (via the ;TI"-I switch).;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(header, *paths);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]k{|sshave_const-i.rinu[U:RDoc::AnyMethod[iI"have_const:EFI"MakeMakefile#have_const;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"FReturns whether or not the constant +const+ is defined. You may ;TI"Joptionally pass the +type+ of +const+ as [const, type], ;TI" such as:;To:RDoc::Markup::BlankLineo:RDoc::Markup::Verbatim; [I"Lhave_const(%w[PTHREAD_MUTEX_INITIALIZER pthread_mutex_t], "pthread.h") ;T: @format0o; ; [I"PYou may also pass additional +headers+ to check against in addition to the ;TI"Ncommon header files, and additional flags to +opt+ which are then passed ;TI"along to the compiler.;T@o; ; [I"LIf found, a macro is passed as a preprocessor constant to the compiler ;TI"Eusing the type name, in uppercase, prepended with +HAVE_CONST_+.;T@o; ; [I"LFor example, if have_const('foo') returned true, then the ;TI"I+HAVE_CONST_FOO+ preprocessor macro would be passed to the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I")(const, headers = nil, opt = "", &b);T@!FI"MakeMakefile;FcRDoc::NormalModule00PKJ]Bsp try_type-i.rinu[U:RDoc::AnyMethod[iI" try_type:EFI"MakeMakefile#try_type;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I">Returns whether or not the static type +type+ is defined.;To:RDoc::Markup::BlankLineo; ; [I"See also +have_type+;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"((type, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]cc_command-i.rinu[U:RDoc::AnyMethod[iI"cc_command:ETI"MakeMakefile#cc_command;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I" (opt="");T@ FI"MakeMakefile;TcRDoc::NormalModule00PKJ]iBRMpkg_config-i.rinu[U:RDoc::AnyMethod[iI"pkg_config:EFI"MakeMakefile#pkg_config;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"FReturns compile/link information about an installed library in a ;TI"Atuple of [cflags, ldflags, libs], by using the ;TI"3command found first in the following commands:;To:RDoc::Markup::BlankLineo:RDoc::Markup::List: @type: NUMBER: @items[o:RDoc::Markup::ListItem: @label0; [o; ; [I"@If --with-{pkg}-config={command} is given via ;TI"9command line option: {command} {option};T@o;;0; [o; ; [I"'{pkg}-config {option};T@o;;0; [o; ; [I"+pkg-config {option} {pkg};T@o; ; [I"--cflags.;T@o; ; [I"CThe values obtained are appended to +$CFLAGS+, +$LDFLAGS+ and ;TI" +$libs+.;T@o; ; [I"HIf an option argument is given, the config command is ;TI"Finvoked with the option and a stripped output string is returned ;TI"@without modifying any of the global values mentioned above.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(pkg, option=nil);T@/FI"MakeMakefile;FcRDoc::NormalModule00PKJ]v6dir_config-i.rinu[U:RDoc::AnyMethod[iI"dir_config:EFI"MakeMakefile#dir_config;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"JSets a +target+ name that the user can then use to configure various ;TI"O"with" options with on the command line by using that name. For example, ;TI"@if the target is set to "foo", then the user could use the ;TI"5--with-foo-dir command line option.;To:RDoc::Markup::BlankLineo; ; [I"GYou may pass along additional "include" or "lib" defaults via the ;TI"8+idefault+ and +ldefault+ parameters, respectively.;T@o; ; [I"HNote that dir_config only adds to the list of places to search for ;TI"Llibraries and include files. It does not link the libraries into your ;TI"application.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I")(target, idefault=nil, ldefault=nil);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]b^ccconvertible_int-i.rinu[U:RDoc::AnyMethod[iI"convertible_int:EFI"!MakeMakefile#convertible_int;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"HReturns the convertible integer type of the given +type+. You may ;TI"Joptionally specify additional +headers+ to search in for the +type+. ;TI"L_convertible_ means actually the same type, or typedef'd from the same ;TI" type.;To:RDoc::Markup::BlankLineo; ; [I"JIf the +type+ is a integer type and the _convertible_ type is found, ;TI"Othe following macros are passed as preprocessor constants to the compiler ;TI")using the +type+ name, in uppercase.;T@o:RDoc::Markup::List: @type: BULLET: @items[o:RDoc::Markup::ListItem: @label0; [o; ; [I"I+TYPEOF_+, followed by the +type+ name, followed by =X ;TI"4where "X" is the found _convertible_ type name.;To;;0; [o; ; [ I"+TYP2NUM+ and +NUM2TYP+, ;TI"Hwhere +TYP+ is the +type+ name in uppercase with replacing an +_t+ ;TI"Nsuffix with "T", followed by =X where "X" is the macro name ;TI"convertible_int("foobar_t") would return "unsigned long", and ;TI"define these macros:;T@o:RDoc::Markup::Verbatim; [I"+#define TYPEOF_FOOBAR_T unsigned long ;TI"##define FOOBART2NUM ULONG2NUM ;TI""#define NUM2FOOBART NUM2ULONG;T: @format0: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"*(type, headers = nil, opts = nil, &b);T@1FI"MakeMakefile;FcRDoc::NormalModule00PKJ]qhhenable_config-i.rinu[U:RDoc::AnyMethod[iI"enable_config:EFI"MakeMakefile#enable_config;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"@Tests for the presence of an --enable-_config_ or ;TI"P--disable-_config_ option. Returns +true+ if the enable option is ;TI"Jgiven, +false+ if the disable option is given, and the default value ;TI"otherwise.;To:RDoc::Markup::BlankLineo; ; [I"EThis can be useful for adding custom definitions, such as debug ;TI"information.;T@o; ; [I" Example:;T@o:RDoc::Markup::Verbatim; [I"if enable_config("debug") ;TI"H $defs.push("-DOSSL_DEBUG") unless $defs.include? "-DOSSL_DEBUG" ;TI"end;T: @format0: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below00I"config, default;T[I"(config, default=nil);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]u have_type-i.rinu[U:RDoc::AnyMethod[iI"have_type:EFI"MakeMakefile#have_type;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"HReturns whether or not the static type +type+ is defined. You may ;TI"Noptionally pass additional +headers+ to check against in addition to the ;TI"common header files.;To:RDoc::Markup::BlankLineo; ; [I"PYou may also pass additional flags to +opt+ which are then passed along to ;TI"the compiler.;T@o; ; [I"LIf found, a macro is passed as a preprocessor constant to the compiler ;TI"Dusing the type name, in uppercase, prepended with +HAVE_TYPE_+.;T@o; ; [I"KFor example, if have_type('foo') returned true, then the ;TI"H+HAVE_TYPE_FOO+ preprocessor macro would be passed to the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"((type, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]xhave_func-i.rinu[U:RDoc::AnyMethod[iI"have_func:EFI"MakeMakefile#have_func;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"KReturns whether or not the function +func+ can be found in the common ;TI"Pheader files, or within any +headers+ that you provide. If found, a macro ;TI"Mis passed as a preprocessor constant to the compiler using the function ;TI"0name, in uppercase, prepended with +HAVE_+.;To:RDoc::Markup::BlankLineo; ; [I"ITo check functions in an additional library, you need to check that ;TI"Klibrary first using have_library(). The +func+ shall be ;TI"?either mere function name or function name with arguments.;T@o; ; [I"MFor example, if have_func('foo') returned +true+, then the ;TI"C+HAVE_FOO+ preprocessor macro would be passed to the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"((func, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]Nhave_library-i.rinu[U:RDoc::AnyMethod[iI"have_library:EFI"MakeMakefile#have_library;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"MReturns whether or not the given entry point +func+ can be found within ;TI"P+lib+. If +func+ is +nil+, the main() entry point is used by ;TI"Mdefault. If found, it adds the library to list of libraries to be used ;TI"!when linking your extension.;To:RDoc::Markup::BlankLineo; ; [I"JIf +headers+ are provided, it will include those header files as the ;TI"8header files it looks in when searching for +func+.;T@o; ; [I"AThe real name of the library to be linked can be altered by ;TI"5--with-FOOlib configuration option.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"3(lib, func = nil, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ] qqLogging/cdesc-Logging.rinu[U:RDoc::NormalModule[iI" Logging:EFI"MakeMakefile::Logging;T0o:RDoc::Markup::Document: @parts[: @file0:0@omit_headings_from_table_of_contents_below0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[; [[; [[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/mkmf.rb;TI"MakeMakefile;FcRDoc::NormalModulePKJ])l] have_var-i.rinu[U:RDoc::AnyMethod[iI" have_var:EFI"MakeMakefile#have_var;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"JReturns whether or not the variable +var+ can be found in the common ;TI"Pheader files, or within any +headers+ that you provide. If found, a macro ;TI"Mis passed as a preprocessor constant to the compiler using the variable ;TI"0name, in uppercase, prepended with +HAVE_+.;To:RDoc::Markup::BlankLineo; ; [I"ITo check variables in an additional library, you need to check that ;TI"5library first using have_library().;T@o; ; [I"JFor example, if have_var('foo') returned true, then the ;TI"C+HAVE_FOO+ preprocessor macro would be passed to the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"'(var, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]Ucheck_sizeof-i.rinu[U:RDoc::AnyMethod[iI"check_sizeof:EFI"MakeMakefile#check_sizeof;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"GReturns the size of the given +type+. You may optionally specify ;TI"6additional +headers+ to search in for the +type+.;To:RDoc::Markup::BlankLineo; ; [I"LIf found, a macro is passed as a preprocessor constant to the compiler ;TI"Nusing the type name, in uppercase, prepended with +SIZEOF_+, followed by ;TI"Mthe type name, followed by =X where "X" is the actual size.;T@o; ; [I"MFor example, if check_sizeof('mystruct') returned 12, then ;TI"Othe SIZEOF_MYSTRUCT=12 preprocessor macro would be passed to ;TI"the compiler.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I")(type, headers = nil, opts = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]>Fhave_framework-i.rinu[U:RDoc::AnyMethod[iI"have_framework:EFI" MakeMakefile#have_framework;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"OReturns whether or not the given +framework+ can be found on your system. ;TI"LIf found, a macro is passed as a preprocessor constant to the compiler ;TI"Nusing the framework name, in uppercase, prepended with +HAVE_FRAMEWORK_+.;To:RDoc::Markup::BlankLineo; ; [I"MFor example, if have_framework('Ruby') returned true, then ;TI"Ithe +HAVE_FRAMEWORK_RUBY+ preprocessor macro would be passed to the ;TI"compiler.;T@o; ; [I"FIf +fw+ is a pair of the framework name and its header file name ;TI"Fthat header file is checked, instead of the normally used header ;TI"/file which is named same as the framework.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I" (fw, &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]ffind_type-i.rinu[U:RDoc::AnyMethod[iI"find_type:EFI"MakeMakefile#find_type;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"5Returns where the static type +type+ is defined.;To:RDoc::Markup::BlankLineo; ; [I"PYou may also pass additional flags to +opt+ which are then passed along to ;TI"the compiler.;T@o; ; [I"See also +have_type+.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(type, opt, *headers, &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]c"link_command-i.rinu[U:RDoc::AnyMethod[iI"link_command:ETI"MakeMakefile#link_command;TF: privateo:RDoc::Markup::Document: @parts[: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(ldflags, *opts);T@ FI"MakeMakefile;TcRDoc::NormalModule00PKJ]mssRbConfig/cdesc-RbConfig.rinu[U:RDoc::NormalModule[iI" RbConfig:EFI"MakeMakefile::RbConfig;T0o:RDoc::Markup::Document: @parts[: @file0:0@omit_headings_from_table_of_contents_below0[[[[[I" class;T[[: public[[:protected[[: private[[I" instance;T[[; [[; [[; [[[U:RDoc::Context::Section[i0o;;[; 0; 0[I"lib/mkmf.rb;TI"MakeMakefile;FcRDoc::NormalModulePKJ]]>find_executable-i.rinu[U:RDoc::AnyMethod[iI"find_executable:EFI"!MakeMakefile#find_executable;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [I"LSearches for the executable +bin+ on +path+. The default path is your ;TI"K+PATH+ environment variable. If that isn't defined, it will resort to ;TI";searching /usr/local/bin, /usr/ucb, /usr/bin and /bin.;To:RDoc::Markup::BlankLineo; ; [I"OIf found, it will return the full path, including the executable name, of ;TI"where it was found.;T@o; ; [I"KNote that this method does not actually affect the generated Makefile.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(bin, path = nil);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]create_header-i.rinu[U:RDoc::AnyMethod[iI"create_header:EFI"MakeMakefile#create_header;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [ I"IGenerates a header file consisting of the various macro definitions ;TI"Mgenerated by other methods such as have_func and have_header. These are ;TI"Nthen wrapped in a custom #ifndef based on the +header+ file ;TI")name, which defaults to "extconf.h".;To:RDoc::Markup::BlankLineo; ; [I"For example:;T@o:RDoc::Markup::Verbatim; [ I"# extconf.rb ;TI"require 'mkmf' ;TI"have_func('realpath') ;TI" have_header('sys/utime.h') ;TI"create_header ;TI"create_makefile('foo') ;T: @format0o; ; [I"BThe above script would generate the following extconf.h file:;T@o; ; [ I"#ifndef EXTCONF_H ;TI"#define EXTCONF_H ;TI"#define HAVE_REALPATH 1 ;TI" #define HAVE_SYS_UTIME_H 1 ;TI" #endif ;T; 0o; ; [I"OGiven that the create_header method generates a file based on definitions ;TI"Nset earlier in your extconf.rb file, you will probably want to make this ;TI"5one of the last methods you call in your script.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"(header = "extconf.h");T@,FI"MakeMakefile;FcRDoc::NormalModule00PKJ]y?oNNhave_struct_member-i.rinu[U:RDoc::AnyMethod[iI"have_struct_member:EFI"$MakeMakefile#have_struct_member;TF: publico:RDoc::Markup::Document: @parts[ o:RDoc::Markup::Paragraph; [ I"MReturns whether or not the struct of type +type+ contains +member+. If ;TI"Mit does not, or the struct type can't be found, then false is returned. ;TI"NYou may optionally specify additional +headers+ in which to look for the ;TI"5struct (in addition to the common header files).;To:RDoc::Markup::BlankLineo; ; [I"LIf found, a macro is passed as a preprocessor constant to the compiler ;TI"Kusing the type name and the member name, in uppercase, prepended with ;TI" +HAVE_+.;T@o; ; [I"JFor example, if have_struct_member('struct foo', 'bar') ;TI"Oreturned true, then the +HAVE_STRUCT_FOO_BAR+ preprocessor macro would be ;TI"passed to the compiler.;T@o; ; [I">+HAVE_ST_BAR+ is also defined for backward compatibility.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I"0(type, member, headers = nil, opt = "", &b);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]lwAAdummy_makefile-i.rinu[U:RDoc::AnyMethod[iI"dummy_makefile:EFI" MakeMakefile#dummy_makefile;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"creates a stub Makefile.;T: @fileI"lib/mkmf.rb;T:0@omit_headings_from_table_of_contents_below000[I" (srcdir);T@FI"MakeMakefile;FcRDoc::NormalModule00PKJ]5utry_const-i.rinu[U:RDoc::AnyMethod[iI"try_const:EFI"MakeMakefile#try_const;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"F ihave_framework-i.rinu[PKJ]flfind_type-i.rinu[PKJ]c"Eolink_command-i.rinu[PKJ]msspRbConfig/cdesc-RbConfig.rinu[PKJ]]>Krfind_executable-i.rinu[PKJ]yucreate_header-i.rinu[PKJ]y?oNNzhave_struct_member-i.rinu[PKJ]lwAAIdummy_makefile-i.rinu[PKJ]5ùtry_const-i.rinu[PK],98STRING_OR_FAILED_FORMAT/cdesc-STRING_OR_FAILED_FORMAT.rinu[PK%%