* lib/mkmf.rb (MakeMakefile#libpath_env): set runtime library path for
the case rpath is disabled.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb: remove extra topdir in VPATH, which was in
win32/Makefile.sub for some reason and moved from there.
[ruby-dev:46998] [Bug #7864]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#try_run): bail out explicitly if cross
compiling, because it cannot work of course.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#configuration): set all ruby names.
hdrdir now needs RUBY_VERSION_NAME.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#merge_libs): insert following reversal
ordered elements just after the duplicated element, not overwriting
successive elements. [ruby-core:50314] [Bug #7467]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#try_constant): fix for large unsigned.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb ($extmk): traverse parent directories for the case
srcdir is a symlink.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/vpath.rb (VPath#def_options): hack for msys make, which
converts a command line argument to non-msys command seems like a
path list automagically. [Bug #7710] [ruby-core:51489]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (codesign): check identifier at link time, not
configure time.
* lib/mkmf.rb (LINK_SO): sign extensions too. replace empty line with
default command.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#macro_defined?): use clearly different
strings from conflict markers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#pkg_config): strip all white spaces for
mingw64+MSYS pkg-config which errouneously emits extra newlines.
[ruby-core:47998] [Bug #7163]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#timestamp_file): use .-. instead of !, a
special character of NMAKE and BSD make. [Bug #7265]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#timestamp_file): use ! instead of %, a GNU
make special character.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (String#unspace): unescape with backslashes. normal
makes need to escape spaces with backslashes. nmake is not the
case. [Bug #7036]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#configuration): make prefix paths
internal to deal with in Makefile.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#mkintpath): not a global function now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (have_framework): insert a space between options.
add just one -ObjC option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/extmk.rb (extmake), lib/mkmf.rb (have_framework): fix splitting
options with an argument, not using NUL as special character.
[ruby-core:47447] [Bug #6987]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (create_makefile): fix race conditions at install-ext.
target files need to depend on destination directory timestamp
files, not phony trgets.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
depend files don't exist. now we can remove simple (and often
wrong) depend files in most cases.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (configuration): extact least ruby headers list as
ruby_headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (have_framework): get rid of separating -framework
option and its argument and dealing with the argument as a library
or an object name. if $LDFLAGS were an array...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in (DLDFLAGS): use TARGET_ENTRY to specify an entry point
instead of TARGET which may contain non-identifer characters.
* lib/mkmf.rb (create_makefile): add TARGET_NAME which is the first
part consists of only word characters. [ruby-core:46248][Bug #6709]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
documentation of extconf.rb functions. Patch by Zachary Scott.
[ruby-trunk - Feature #6522]
* README.EXT (Appendix C): Removed in favor of MakeMakefile.
Patch by Zachary Scott.
* lib/mkmf.rb: Merged documentation from README.EXT Appendix C. Patch
by Zachary Scott.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/extmk.rb (extmake): assume non-option words are arguments.
workaround for -framework option.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#configuration): keep space at end of
OUTFLAG and COUTFLAG. [ruby-dev:45650]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#have_framework): combine -framework option
and its argument with an equal sign not to be separated in merge_libs.
* ext/tk/extconf.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Fixes --with-static-linked-ext.
Patch by Google Inc. [ruby-core:45073].
* Makefile.in (ENCOBJS, EXTOBJS): New variables to specify static
linked libraries. Also reintroduces extinit.o, introduces encinit.o
introduces encinit.o
* common.mk: Builds static libraries rather than shared objects if
specified.
* configure.in (LD): new substitution.
Avoids PIE if s
* enc/depend: Supports static linked libraries
(libencs, libenc, libtrans): New target.
* enc/encinit.c.erb: new template to generate the initialization of
statically linked encodings.
* enc/make_encmake.rb (--module): new flag to specify whether static
or dynamic.
* transcode_data.h (TRANS_INIT): New macro to get rid of the name
collision of encoding initializers and transcoder initializers.
* ext/extmk.rb: Fixes the behavior on $extstatic is true.
* lib/mkmf.rb (clean-static): new target to clean up static linked
libraries.
* ruby.c (process_options): New initializes statically linked
encodings here.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#pkg_config): check if libs resulted from
pkg-config works actually.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (MakeMakefile#depend_rules): deal with extconf.h
dependency. just remove it and bail out right now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (TRY_LINK): need EXEEXT for cross-compiling.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb (try_link0, try_compile, try_cpp): check if the target
file get created actually. workaround for the case that the exit
status of a cygwin program seems lost on mingw.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
specific hack from common.mk to Makefile.in (and win32/Makefile.sub).
[Bug #5711]
* lib/mkmf.rb: we can generate Makefile as we like.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
It breaks following tests if RUBYOPT=-w
* test_class_build(TestGemExtExtConfBuilder)
* test_class_build_rbconfig_make_prog(TestGemExtExtConfBuilder)
* test_class_build_env_make(TestGemExtExtConfBuilder)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
if globbed source file list is changed.
* lib/mkmf.rb (create_makefile): store ORIG_SRCS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
--
* lib/mkmf.rb (configuration:ECHO1): Same as the recent fix in
common.mk.
":" in a make variable replacement cause a syntax error with
/usr/ccs/bin/make on Solaris. Uses $(NULLCMD) instead.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
TARGET to generate init function name.
this is followup of r30464.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
warnings into errors only for bundled extensions.
[ruby-core:33815]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/mkmf/base.rb (TestMkmf::MKMFLOG): show mkmf.log at failures.
* test/mkmf/base.rb (TestMkmf#teardown): close log file for each tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
warnings as errors.
* lib/mkmf.rb (Logging.postpone): yield log file object.
* lib/mkmf.rb (xsystem): add options, :werror only right now.
* lib/mkmf.rb (with_werror): check as if warnings are errors.
* lib/mkmf.rb (convertible_int): make declaration conflict
warnings errors not to pass wrong type. [ruby-dev:42684]
* lib/mkmf.rb (COMMON_MACROS): get rid of conflicts.
* win32/Makefile.sub (WARNFLAGS): make declaration conflict
warnings errors if possible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
at each library file. this change makes making ext faster.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* defs/dtrace.d: new file. defined a dtrace provider "ruby".
* include/ruby/ruby.h (LIKELY): moved from vm.c.
(UNLIKELY): ditto.
(OBJSETUP): probe "object-create".
(RUBY_EVENT_RESCUE): new event.
* vm_exec.c (DEBUG_ENTER_INSN): embeded a probe insn-entry into it.
(DEBUG_END_INSN): insn-return.
* vm.c (LIKELY): moved into ruby.h.
(UNLIKELY): ditto.
(Init_BareVM): embeded a probe "raise" into it.
* variable.c (rb_class2name_without_alloc): new utility function.
* tool/rbinstall.rb (install?(:ext, :arch, :'ext-arch')): installs
dtrace.d if necessary.
* thread_pthread.c (add_signal_thread_list): probe "raise".
(rb_thread_create_timer_thread): ditto.
* thread.c (rb_thread_schedule_rec): probes "thread-enter" and
"thread-leave",
(thread_start_func_2): ditto.
(thread_cleanup_func): probe "thread-term"
* lib/mkmf.rb: supports dtrace postprocessor on making an extension.
* iseq.c (rb_vm_insn_name): new utility function.
(rb_vm_insn_len): ditto.
* insns.def (hook): probes "method-etnry", "method-return", "line",
and "rescue".
* compile.c (iseq_compile_each): adds a trace op for "rescue" probe.
* gc.c (garbage_collect): probes "gc-begin" and "gc-end".
(obj_free): probe "object-free"
(garbage_collect_with_gvl): probe "raise"
(negative_size_allocation_error): ditto.
(rb_memerror): ditto.
* eval.c (rb_rescue2): probe "rescue"
(rb_longjmp): probe "raise"
* ext/probe/probe.c: new extension for application defined probes.
* ext/probe/extconf.rb: ditto.
* configure.in (--with-tracing-model): new option to choose a tracing
mechanism.
(DTRACE): new substitution. name of dtrace(1).
(RUBY_TRACING_MODEL): new substitution.
(DTRACE_OBJ): ditto.
(MINIDTRACE_OBJ): ditto.
(GOLFDTRACE_OBJ): ditto.
(LIBRUBY_DTRACE_OBJ): ditto.
(RUBY_DTRACE_POSTPROCESS): new macro. checks whether the dtrace on
the system needs postprocessing.
(RUBY_DTRACE_BSD_BROKEN): new macro. checks whether the dtrace
supports USDT.
* Makefile.in:
(DTRACE): new variable. name of dtrace(1).
(TRACING_MODEL): new variable. name of the chosen tracing mechanism.
(DTRACE_OBJ): same as the one in configure.in.
(MINIDTRACE_OBJ): ditto.
(GOLFDTRACE_OBJ): ditto.
(LIBRUBY_DTRACE_OBJ): ditto.
(CPPOUTFILE): new substitution. necessary for generating dtrace.d
(trace_none.h): new target for TRACING_MODEL=none
(RUBY_H_INCLUDES): appended a header for tracing.
(distclean-local): also removes preprocessed version of dtrace.d
($(LIBRUBY_A)): needs $(LIBRUBY_DTRACE_OBJ) if dtrace needs
postprocessing.
($(PROGRAM)): ditto.
(golf): ditto.
(miniruby): ditto.
($(arch_hdrdir)/ruby/dtrace.d): new target. preprocessed verson
of defs/dtrace.d. generated if necessary.
($(arch_hdrdir)/ruby/trace_dtrace.h): new target.
definition of probes.
($(LIBRUBY_DTRACE_OBJ)): new target. generated if dtrace needs
postprocessing.
($(DTRACE_OBJ)): ditto.
($(MINIDTRACE_OBJ)): ditto.
($(GOLFDTRACE_OBJ)): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
dln.c:dln_find_1().
* lib/mkmf.rb (def find_executable0): use EXECUTABLE_EXTS, not
only EXEEXT. [ruby-core:26821]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb: use map! to replace strings in $objs array.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
program base name. [ruby-dev:38241]
* configure.in (--with-soname): base name of shared library.
[ruby-dev:38290]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
cmd.exe's copy command.
* lib/mkmf.rb (create_makefile): no longer need to convert path
separator when copying file.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22621 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
platform.
* lib/mkmf.rb (have_header, find_header): use try_header.
* win32/Makefile.sub (try_header): uses try_compile to get rid of
slow -E option of VC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
directory are not installed, so unusable outside extmk.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
to format acceptable in Makefile.
* lib/mkmf.rb (configuration): convers srcdir, topdir and hdrdir.
a patch by Alexey Borzenkov <snaury AT gmail.com> at
[ruby-core:21448].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
extconf.rb at the same time.
* lib/mkmf.rb (DLLIB): depends on Makefile. [ruby-core:21096]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
namely inclusion of ruby.h, because _GNU_SOURCE is now defined
there (if any) and socket.so requires it on Linux systems.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
cross-compiling.
* ext/extmk.rb, enc/make_encmake.rb, lib/mkmf.rb: need to be 1.8
compatible for cross-compiling.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/mkmf.rb: revert r15443. "\\1#{sep}\\2" is wrong if sep is ended
with "\\".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e