From 7343b492a20fccc753e77845a1c18bede5b070f8 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 14 Apr 2016 01:30:12 +0000 Subject: ruby-runner.h * template/ruby-runner.h.in: separate configured part from ruby-runner.c. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- .gitignore | 2 +- Makefile.in | 6 +++--- ruby-runner.c | 35 +++++++++++++++++++++++++++++++++++ template/ruby-runner.c.in | 37 ------------------------------------- template/ruby-runner.h.in | 3 +++ 5 files changed, 42 insertions(+), 41 deletions(-) create mode 100644 ruby-runner.c delete mode 100644 template/ruby-runner.c.in create mode 100644 template/ruby-runner.h.in diff --git a/.gitignore b/.gitignore index 80c12594dd..320ccc2dc5 100644 --- a/.gitignore +++ b/.gitignore @@ -103,7 +103,7 @@ y.tab.c /rubicon /ruby /ruby-runner -/ruby-runner.c +/ruby-runner.h /ruby-man.rd.gz /sizes.c /test.rb diff --git a/Makefile.in b/Makefile.in index 1db6bd81ea..60fb44fd90 100644 --- a/Makefile.in +++ b/Makefile.in @@ -254,11 +254,11 @@ ruby_pc = @ruby_pc@ $(ruby_pc): @./config.status --file=$@:$(srcdir)/template/ruby.pc.in -ruby-runner.c: template/ruby-runner.c.in +ruby-runner.h: template/ruby-runner.h.in @./config.status --file=$@:$(srcdir)/template/$(@F).in -ruby-runner$(EXEEXT): ruby-runner.c - $(Q) $(PURIFY) $(CC) $(CFLAGS) $(CPPFLAGS) -DRUBY_INSTALL_NAME=$(RUBY_INSTALL_NAME) $(LDFLAGS) $(LIBS) $(OUTFLAG)$@ ruby-runner.c +ruby-runner$(EXEEXT): ruby-runner.c ruby-runner.h + $(Q) $(PURIFY) $(CC) $(CFLAGS) $(CPPFLAGS) -DRUBY_INSTALL_NAME=$(RUBY_INSTALL_NAME) $(LDFLAGS) $(LIBS) $(OUTFLAG)$@ $< $(RBCONFIG): $(PREP) diff --git a/ruby-runner.c b/ruby-runner.c new file mode 100644 index 0000000000..c16e7c6829 --- /dev/null +++ b/ruby-runner.c @@ -0,0 +1,35 @@ +#define _POSIX_C_SOURCE 200809L +#include +#include +#include + +#include "ruby-runner.h" + +#define STRINGIZE(expr) STRINGIZE0(expr) +#define STRINGIZE0(expr) #expr + +int +main(int argc, char **argv) +{ + static const char builddir[] = BUILDDIR; + const char *libpath = getenv(LIBPATHENV); + char c = 0; + + if (libpath) { + while ((c = *libpath) == PATH_SEP) ++libpath; + } + if (c) { + size_t n = strlen(libpath); + char *e = malloc(sizeof(builddir)+n+1); + memcpy(e, builddir, sizeof(builddir)-1); + e[sizeof(builddir)-1] = PATH_SEP; + memcpy(e+sizeof(builddir), libpath, n+1); + libpath = e; + } + else { + libpath = builddir; + } + setenv(LIBPATHENV, libpath, 1); + execv(BUILDDIR"/"STRINGIZE(RUBY_INSTALL_NAME), argv); + return -1; +} diff --git a/template/ruby-runner.c.in b/template/ruby-runner.c.in deleted file mode 100644 index 75be21573f..0000000000 --- a/template/ruby-runner.c.in +++ /dev/null @@ -1,37 +0,0 @@ -#define _POSIX_C_SOURCE 200809L -#include -#include -#include - -#define BUILDDIR "@abs_top_builddir@" -#define LIBPATHENV "@LIBPATHENV@" -#define PATH_SEP '@PATH_SEPARATOR@' - -#define STRINGIZE(expr) STRINGIZE0(expr) -#define STRINGIZE0(expr) #expr - -int -main(int argc, char **argv) -{ - static const char builddir[] = BUILDDIR; - const char *libpath = getenv(LIBPATHENV); - char c = 0; - - if (libpath) { - while ((c = *libpath) == PATH_SEP) ++libpath; - } - if (c) { - size_t n = strlen(libpath); - char *e = malloc(sizeof(builddir)+n+1); - memcpy(e, builddir, sizeof(builddir)-1); - e[sizeof(builddir)-1] = PATH_SEP; - memcpy(e+sizeof(builddir), libpath, n+1); - libpath = e; - } - else { - libpath = builddir; - } - setenv(LIBPATHENV, libpath, 1); - execv(BUILDDIR"/"STRINGIZE(RUBY_INSTALL_NAME), argv); - return -1; -} diff --git a/template/ruby-runner.h.in b/template/ruby-runner.h.in new file mode 100644 index 0000000000..b0647fd0e1 --- /dev/null +++ b/template/ruby-runner.h.in @@ -0,0 +1,3 @@ +#define BUILDDIR "@abs_top_builddir@" +#define LIBPATHENV "@LIBPATHENV@" +#define PATH_SEP '@PATH_SEPARATOR@' -- cgit v1.2.3