2019-09-09 00:19:33 -04:00
|
|
|
# frozen_string_literal: false
|
|
|
|
|
2019-09-18 10:31:53 -04:00
|
|
|
cxx = MakeMakefile["C++"]
|
2019-09-18 02:38:24 -04:00
|
|
|
|
2020-02-12 23:59:41 -05:00
|
|
|
# #### have_devel hack ####
|
|
|
|
# cxx.try_compile tries to detect compilers, but the try_compile below is
|
|
|
|
# trying to detect a compiler in a different way. We need to prevent the
|
|
|
|
# default detection routine.
|
|
|
|
|
|
|
|
cxx.instance_variable_set(:'@have_devel', true)
|
|
|
|
|
2020-02-24 23:37:32 -05:00
|
|
|
ok = cxx.try_link(<<~'begin', "") do |x|
|
2019-09-09 00:19:33 -04:00
|
|
|
#include "ruby/config.h"
|
|
|
|
|
2021-06-13 01:29:01 -04:00
|
|
|
#ifdef RUBY_ALTERNATIVE_MALLOC_HEADER
|
|
|
|
# include RUBY_ALTERNATIVE_MALLOC_HEADER
|
|
|
|
#endif
|
|
|
|
|
2019-09-09 00:19:33 -04:00
|
|
|
namespace {
|
2020-02-12 23:59:41 -05:00
|
|
|
typedef int conftest1[SIZEOF_LONG == sizeof(long) ? 1 : -1];
|
|
|
|
typedef int conftest2[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
|
2019-09-09 00:19:33 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
int
|
|
|
|
main(int argc, const char** argv)
|
|
|
|
{
|
|
|
|
return !!argv[argc];
|
|
|
|
}
|
|
|
|
begin
|
|
|
|
# We are wiping ruby.h from the source because that header file is the
|
|
|
|
# subject we are going to test in this extension library.
|
|
|
|
x.sub! %<#include "ruby.h">, ''
|
|
|
|
end
|
|
|
|
|
2020-02-12 23:59:41 -05:00
|
|
|
cxx.instance_variable_set(:'@have_devel', ok)
|
|
|
|
|
2019-09-18 02:38:24 -04:00
|
|
|
if ok
|
2019-09-19 07:07:24 -04:00
|
|
|
$srcs = %w[cxxanyargs.cpp]
|
2019-11-22 04:39:39 -05:00
|
|
|
failures = Dir.glob($srcdir + "/failure*.cpp").map {|n| File.basename(n)}
|
|
|
|
$cleanfiles << "$(FAILURES:.cpp=.failed)"
|
|
|
|
create_makefile("-test-/cxxanyargs") do |mk|
|
|
|
|
mk << "FAILURES #{['=', failures].join(' ')}\n"
|
2020-01-30 18:00:56 -05:00
|
|
|
mk << ".IGNORE: $(FAILURES:.cpp=.o)\n" unless $mswin
|
2020-01-30 22:52:22 -05:00
|
|
|
mk
|
2019-11-22 04:39:39 -05:00
|
|
|
end
|
2019-09-09 00:19:33 -04:00
|
|
|
end
|