method
create_header
ruby latest stable - Class:
Object
Method deprecated or moved
This method is deprecated or moved on the latest stable version. The last existing version (v1_9_3_392) is shown here.
create_header(header = "extconf.h")public
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’.
For example:
# 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
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 one of the last methods you call in your script.
# File lib/mkmf.rb, line 1486
def create_header(header = "extconf.h")
message "creating %s\n", header
sym = header.tr_cpp
hdr = ["#ifndef #{sym}\n#define #{sym}\n"]
for line in $defs
case line
when /^-D([^=]+)(?:=(.*))?/
hdr << "#define #1ドル #{2ドル ? Shellwords.shellwords(2ドル)[0].gsub(/(?=\t+)/, "\\\n") : 1}\n"
when /^-U(.*)/
hdr << "#undef #1ドル\n"
end
end
hdr << "#endif\n"
hdr = hdr.join
log_src(hdr, "#{header} is")
unless (IO.read(header) == hdr rescue false)
open(header, "wb") do |hfile|
hfile.write(hdr)
end
end
$extconf_h = header
end