Skip to content

Commit 48f122b

Browse files
committed
Use simple launcher script wrapper for Unix
1 parent ca2bc07 commit 48f122b

File tree

5 files changed

+26
-158
lines changed

5 files changed

+26
-158
lines changed

inc/Makefile-conf.mk

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,24 @@ include Makefile
2121
OBJECTDIR=build/${CONF}/${CND_PLATFORM}
2222

2323
# Object Files
24-
OBJECTFILES = ${OBJECTDIR}/argparser.o \
25-
${OBJECTDIR}/utilsfuncs.o \
26-
${OBJECTDIR}/ng.o \
27-
${OBJECTDIR}/strlcpy.o \
28-
${OBJECTDIR}/jrubyexe.o
24+
OBJECTFILES = ${OBJECTDIR}/jrubyexe.o
2925

3026
ifdef JAVA_HOME
3127
JAVA_INCLUDE = $(subst \,/,${JAVA_HOME})/include
3228
INCLUDES = "-I${JAVA_INCLUDE}"
3329
endif
3430

3531
ifdef MINGW
36-
OBJECTFILES += ${OBJECTDIR}/utilsfuncswin.o \
37-
${OBJECTDIR}/platformlauncher.o \
38-
${OBJECTDIR}/jvmlauncher.o \
39-
${OBJECTDIR}/jruby.o
32+
OBJECTFILES +=
33+
# Object Files
34+
OBJECTFILES = ${OBJECTDIR}/argparser.o \
35+
${OBJECTDIR}/utilsfuncs.o \
36+
${OBJECTDIR}/ng.o \
37+
${OBJECTDIR}/strlcpy.o \
38+
${OBJECTDIR}/utilsfuncswin.o \
39+
${OBJECTDIR}/platformlauncher.o \
40+
${OBJECTDIR}/jvmlauncher.o \
41+
${OBJECTDIR}/jruby.o
4042
INCLUDES += "-I${JAVA_INCLUDE}/win32"
4143
else
4244
OBJECTFILES += ${OBJECTDIR}/unixlauncher.o

jrubyexe.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,18 @@ const char *CON_ATTACH_MSG =
5050
"*WARNING*: The non-console JRubyW launcher is forced to attach to console.\n"
5151
"This may cause unexpected behavior of CMD console. Use:\n"
5252
" start /wait jrubyw.exe -Xconsole attach [args]\n";
53+
54+
#include "utilsfuncs.h"
5355
#endif // JRUBYW
5456
#else
5557
#include "unixlauncher.h"
5658
#endif // WIN32
5759

58-
#include "utilsfuncs.h"
59-
6060

6161
int main(int argc, char *argv[], char* envp[]) {
62+
#ifdef WIN32
6263
checkLoggingArg(argc, argv, true);
6364

64-
#ifdef WIN32
6565
#ifdef JRUBYW
6666
if (!isConsoleAttached()) {
6767
logMsg("Console is not attached, assume WINDOW mode");
@@ -78,7 +78,6 @@ int main(int argc, char *argv[], char* envp[]) {
7878
return loader.start("jruby.dll", argc - 1, argv + 1, argv[0]);
7979

8080
#else // !WIN32
81-
UnixLauncher launcher;
82-
return launcher.run(argc, argv, envp);
81+
return unixlauncher_run(argc, argv, envp);
8382
#endif // WIN32
8483
}

jruby.c renamed to unixlauncher.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
static const char script_name[] = "jruby.sh";
1414

1515

16-
char *which(const char *const executable) {
16+
static char *which(const char *const executable) {
1717
const size_t exe_length = strlen(executable);
1818
char *exe_path = NULL;
1919
size_t exe_path_size = 0;
@@ -71,7 +71,7 @@ char *which(const char *const executable) {
7171
}
7272

7373

74-
int main(int argc, char *argv[]) {
74+
int unixlauncher_run(int argc, char *argv[], char *envp[]) {
7575
if (argc == 0 || argv[0][0] == '\0') {
7676
fputs("Error: No executable provided!", stderr);
7777
return 2;

unixlauncher.cpp

Lines changed: 0 additions & 131 deletions
This file was deleted.

unixlauncher.h

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
/*
2-
* Copyright 2009-2010 JRuby Team (www.jruby.org).
2+
* Copyright 2009-2025 JRuby Team (www.jruby.org).
33
*/
44

55

66
#ifndef _UNIXLAUNCHER_H_
77
#define _UNIXLAUNCHER_H_
88

9-
#include "argparser.h"
9+
#ifdef __cplusplus
10+
extern "C"
11+
{
12+
#endif
1013

11-
class UnixLauncher : public ArgParser {
12-
public:
13-
UnixLauncher();
14-
virtual ~UnixLauncher();
14+
int unixlauncher_run(int argc, char *argv[], char *envp[]);
1515

16-
int run(int argc, char* argv[], char* envp[]);
17-
18-
private:
19-
UnixLauncher(const UnixLauncher& orig);
20-
};
16+
#ifdef __cplusplus
17+
}
18+
#endif
2119

2220
#endif // ! _UNIXLAUNCHER_H_

0 commit comments

Comments
 (0)