summaryrefslogtreecommitdiff
path: root/template/verconf.h.tmpl
blob: 5ee8a0e472f90c8b4fb72c17c25bf605f4a93cc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
% require './rbconfig'
% C = RbConfig::MAKEFILE_CONFIG.dup
% def C.[](name) str = super and (str unless str.empty?); end
#define RUBY_BASE_NAME			"${RUBY_BASE_NAME}"
#define RUBY_VERSION_NAME		RUBY_BASE_NAME"-"RUBY_LIB_VERSION
% if C["RUBY_LIB_VERSION_STYLE"]
#define RUBY_LIB_VERSION_STYLE		${RUBY_LIB_VERSION_STYLE}
% elsif !C["RUBY_LIB_VERSION"]
#define RUBY_LIB_VERSION_STYLE		3	/* full */
% else
#define RUBY_LIB_VERSION		"${RUBY_LIB_VERSION}"
% end
#define RUBY_EXEC_PREFIX		"<%='${RUBY_EXEC_PREFIX}' if C['RUBY_EXEC_PREFIX']%>"
#define RUBY_LIB_PREFIX 		"${rubylibprefix}"
% unless (sitearch = C["sitearch"]) == '$(arch)'
#define RUBY_SITEARCH			"<%=sitearch%>"
% end
#define RUBY_ARCH_PREFIX_FOR(arch)	"${rubyarchprefix}"
#define RUBY_SITEARCH_PREFIX_FOR(arch)	"${rubysitearchprefix}"
#define RUBY_LIB			"${rubylibdir}"
#define RUBY_ARCH_LIB_FOR(arch) 	"${rubyarchdir}"
% if C["sitedir"] == "no"
#define NO_RUBY_SITE_LIB		1
% else
#define RUBY_SITE_LIB			"${sitedir}"
#define RUBY_SITE_ARCH_LIB_FOR(arch)	"${sitearchdir}"
% end
% if C["vendordir"] == "no"
#define NO_RUBY_VENDOR_LIB		1
% else
#define RUBY_VENDOR_LIB 		"${vendordir}"
#define RUBY_VENDOR_ARCH_LIB_FOR(arch)	"${vendorarchdir}"
% end
% if C["RUBY_SEARCH_PATH"]
#define RUBY_SEARCH_PATH		"${RUBY_SEARCH_PATH}"
% end
%
% R = {}
% R["ruby_version"] = '"RUBY_LIB_VERSION"'
% R["arch"] = '"arch"'
% R["sitearch"] = '"arch"'
% R["vendorlibdir"] = '"RUBY_VENDOR_LIB2"'
% R["sitelibdir"] = '"RUBY_SITE_LIB2"'
% R["vendordir"] = '"RUBY_VENDOR_LIB"'
% R["sitedir"] = '"RUBY_SITE_LIB"'
% R["rubylibdir"] = '"RUBY_LIB"'
% R["rubylibprefix"] = '"RUBY_LIB_PREFIX"'
% R["rubyarchprefix"] = '"RUBY_ARCH_PREFIX_FOR(arch)"'
% R["rubysitearchprefix"] = '"RUBY_SITEARCH_PREFIX_FOR(arch)"'
% R["exec_prefix"] = '"RUBY_EXEC_PREFIX"'
% R["prefix"] = '"RUBY_EXEC_PREFIX"'
% exec_prefix_pat = /\A"#{Regexp.quote(RbConfig::CONFIG['exec_prefix'])}(?=\/|\z)/
% _erbout.gsub!(/^(#define\s+(\S+)\s+)(.*)/) {
%   pre, name, repl = $1, $2, $3
%   pat = %["#{name}"]
%   c = C.merge(R.reject {|key, value| key == name or value.include?(pat)})
%   RbConfig.expand(repl, c)
%   repl.gsub!(/^""(?!$)|(.)""$/, '\1')
%   repl.sub!(exec_prefix_pat, 'RUBY_EXEC_PREFIX"')
%   pre + repl
% }