bool "Mini configuration"
default n
+config LIBRUBY_MAIN_FUNCTION
+ bool "Provide main function"
+ imply LIBUKLIBPARAM
+ imply LIBVFSCORE_AUTOMOUNT_ROOTFS
+ imply LIBVFSCORE_ROOTFS_9PFS
+ imply LIBDEVFS_AUTOMOUNT
+ imply LIBDEVFS_DEV_NULL
+ imply LIBUK9P
+ default n
+
config LIBRUBY_EXT
bool "Enable extensions"
depends on !LIBRUBY_MINI
-DRUBY_EXPORT -DCANONICALIZATION_FOR_MATHN
LIBRUBY_SRCS-y += $(LIBRUBY_BASE)/thread.c|unikraft
+LIBRUBY_SRCS-$(CONFIG_LIBRUBY_MAIN_FUNCTION) += $(LIBRUBY_BASE)/ruby_main_example.c|unikraft
+LIBRUBY_RUBY_MAIN_EXAMPLE_FLAGS-y = -DLIBRUBY_VERSION_LONG=\"$(LIBRUBY_VERSION_LONG)\"
ifeq ($(CONFIG_LIBRUBY_MINI),y)
LIBRUBY_SRCS-y += $(LIBRUBY_SRC)/dmydln.c
--- /dev/null
+#include <stdlib.h>
+
+extern int ruby_main(int argc, char *argv[]);
+
+int main(int argc, char *argv[])
+{
+ setenv("GEM_HOME", "/lib/ruby/gems/"LIBRUBY_VERSION_LONG, 0);
+ setenv("GEM_PATH", "/lib/ruby/gems/"LIBRUBY_VERSION_LONG, 0);
+ setenv("RUBYGEMS_GEMDEPS", "/lib/ruby/"LIBRUBY_VERSION_LONG"/Gemfile", 0);
+ setenv("RUBYLIB", "/lib/ruby/"LIBRUBY_VERSION_LONG":"
+ "/lib/ruby/"LIBRUBY_VERSION_LONG"/x86_64-linux:"
+ "/lib/ruby/"LIBRUBY_VERSION_LONG"/.ext", 0);
+
+ return ruby_main(argc, argv);
+}