mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 17:56:01 +02:00
Patch from Gene Sally. And formatting "fixes".
This commit is contained in:
parent
8051af4120
commit
b4b7151cf3
2 changed files with 100 additions and 94 deletions
|
@ -1,6 +1,16 @@
|
||||||
# makefile for libspawner.so
|
# makefile for libspawner.so
|
||||||
|
|
||||||
#set JDK_INCLUDES
|
# set JDK_INCLUDES if they are not already set in the environment
|
||||||
|
# spit out a warning if the make script will be using the default values
|
||||||
|
ifeq ($(JDK_INCLUDES),)
|
||||||
|
$(warning JDK_INCLUDES not set in environment, using default: $(JDK_INCLUDES))
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(JDK_OS_INCLUDES),)
|
||||||
|
$(warning JDK_OS_INCLUDES not set in environment, using default: $(JDK_OS_INCLUDES))
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
JDK_INCLUDES=/usr/local/jdk/include
|
JDK_INCLUDES=/usr/local/jdk/include
|
||||||
JDK_OS_INCLUDES=/usr/local/jdk/include/linux
|
JDK_OS_INCLUDES=/usr/local/jdk/include/linux
|
||||||
|
|
||||||
|
@ -20,12 +30,14 @@ OBJS = $(OBJS_SPAWNER) $(OBJS_PTY)
|
||||||
|
|
||||||
all: $(LIB_NAME_FULL_SPAWNER) $(LIB_NAME_FULL_PTY)
|
all: $(LIB_NAME_FULL_SPAWNER) $(LIB_NAME_FULL_PTY)
|
||||||
|
|
||||||
$(LIB NAME_FULL_SPAWNER) : $(OBJS_SPAWNER)
|
rebuild: clean all
|
||||||
|
|
||||||
|
$(LIB_NAME_FULL_SPAWNER) : $(OBJS_SPAWNER)
|
||||||
$(CC) -g -shared -Wl,-soname,$(LIB_NAME_SPAWNER) -o $(LIB_NAME_FULL_SPAWNER) $(OBJS_SPAWNER) -lc
|
$(CC) -g -shared -Wl,-soname,$(LIB_NAME_SPAWNER) -o $(LIB_NAME_FULL_SPAWNER) $(OBJS_SPAWNER) -lc
|
||||||
|
|
||||||
$(LIB_NAME_FULL_PTY): $(OBJS_PTY)
|
$(LIB_NAME_FULL_PTY): $(OBJS_PTY)
|
||||||
$(CC) -g -shared -Wl,-soname,$(LIB_NAME_PTY) -o $(LIB_NAME_FULL_PTY) $(OBJS_PTY)
|
$(CC) -g -shared -Wl,-soname,$(LIB_NAME_PTY) -o $(LIB_NAME_FULL_PTY) $(OBJS_PTY)
|
||||||
|
|
||||||
clean :
|
clean :
|
||||||
echo -rm $(OBJS_SPAWNER) $(LIB_NAME_FULL_SPAWNER)
|
$(RM) $(OBJS_SPAWNER) $(LIB_NAME_FULL_SPAWNER)
|
||||||
-rm $(OBJS_PTY) $(LIB_NAME_FULL_PTY)
|
$(RM) $(OBJS_PTY) $(LIB_NAME_FULL_PTY)
|
||||||
|
|
|
@ -18,9 +18,9 @@ exec0(const char *path, char *const argv[], char *const envp[],
|
||||||
pid_t childpid;
|
pid_t childpid;
|
||||||
char *full_path;
|
char *full_path;
|
||||||
|
|
||||||
//
|
/*
|
||||||
// Handle this error case, we need the full path for execve() below.
|
* Handle this error case, we need the full path for execve() below.
|
||||||
//
|
*/
|
||||||
if (path[0] != '/' && path[0] != '.') {
|
if (path[0] != '/' && path[0] != '.') {
|
||||||
full_path = pfind(path);
|
full_path = pfind(path);
|
||||||
//full_path = pathfind (getenv ("PATH"), path, "rx");
|
//full_path = pathfind (getenv ("PATH"), path, "rx");
|
||||||
|
@ -29,14 +29,13 @@ exec0(const char *path, char *const argv[], char *const envp[],
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
full_path = path;
|
full_path = strdup(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
/*
|
||||||
// Make sure we can create our pipes before forking.
|
* Make sure we can create our pipes before forking.
|
||||||
//
|
*/
|
||||||
if( channels != NULL )
|
if (channels != NULL) {
|
||||||
{
|
|
||||||
if (pipe(pipe0) < 0 || pipe(pipe1) < 0 || pipe(pipe2) < 0) {
|
if (pipe(pipe0) < 0 || pipe(pipe1) < 0 || pipe(pipe2) < 0) {
|
||||||
fprintf(stderr, "%s(%d): returning due to error.\n",
|
fprintf(stderr, "%s(%d): returning due to error.\n",
|
||||||
__FUNCTION__, __LINE__);
|
__FUNCTION__, __LINE__);
|
||||||
|
@ -57,8 +56,7 @@ exec0(const char *path, char *const argv[], char *const envp[],
|
||||||
|
|
||||||
chdir(dirpath);
|
chdir(dirpath);
|
||||||
|
|
||||||
if( channels != NULL )
|
if (channels != NULL) {
|
||||||
{
|
|
||||||
/* Close the write end of pipe0 */
|
/* Close the write end of pipe0 */
|
||||||
if (close(pipe0[1]) == -1)
|
if (close(pipe0[1]) == -1)
|
||||||
perror("close(pipe0[1])");
|
perror("close(pipe0[1])");
|
||||||
|
@ -86,12 +84,9 @@ exec0(const char *path, char *const argv[], char *const envp[],
|
||||||
close(fd++);
|
close(fd++);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( envp[0] == NULL )
|
if (envp[0] == NULL) {
|
||||||
{
|
|
||||||
execv(full_path, argv);
|
execv(full_path, argv);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
execve(full_path, argv, envp);
|
execve(full_path, argv, envp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,8 +96,7 @@ exec0(const char *path, char *const argv[], char *const envp[],
|
||||||
|
|
||||||
char b;
|
char b;
|
||||||
|
|
||||||
if( channels != NULL )
|
if (channels != NULL) {
|
||||||
{
|
|
||||||
/* close the read end of pipe1 */
|
/* close the read end of pipe1 */
|
||||||
if (close(pipe0[0]) == -1)
|
if (close(pipe0[0]) == -1)
|
||||||
perror("close(pipe0[0])");
|
perror("close(pipe0[0])");
|
||||||
|
|
Loading…
Add table
Reference in a new issue