Make the spawn module an include file as suggested by Greg King

git-svn-id: svn://svn.cc65.org/cc65/trunk@1649 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2002-11-25 21:12:00 +00:00
parent 345d2ddf54
commit ef886278a8
4 changed files with 61 additions and 24 deletions

View File

@@ -33,20 +33,31 @@
/* Check out if we have a spawn() function on the system, or if we must use
* our own.
*/
#if defined(__WATCOMC__) || defined(_MSC_VER) || defined(__MINGW32__) || defined(__DJGPP__)
# define HAVE_SPAWN 1
#else
# define NEED_SPAWN 1
#endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include <errno.h> #include <errno.h>
#if defined(__WATCOMC__) || defined(_MSC_VER) || defined(__MINGW32__) #ifdef HAVE_SPAWN
# include <process.h> /* DOS, OS/2 and Windows */ # include <process.h>
#else
# include "spawn.h" /* All others */
#endif #endif
/* common */ /* common */
#include "attrib.h"
#include "cmdline.h" #include "cmdline.h"
#include "fname.h" #include "fname.h"
#include "strbuf.h"
#include "target.h" #include "target.h"
#include "version.h" #include "version.h"
#include "xmalloc.h" #include "xmalloc.h"
@@ -123,6 +134,24 @@ static char* TargetLib = 0;
/*****************************************************************************/
/* Include the system specific spawn function */
/*****************************************************************************/
#if defined(NEED_SPAWN)
# if defined(SPAWN_UNIX)
# include "spawn-unix.inc"
# elif defined(SPAWN_AMIGA)
# include "spawn-amiga.inc"
# else
# error "Don't know which spawn module to include!"
# endif
#endif
/*****************************************************************************/ /*****************************************************************************/
/* Determine a file type */ /* Determine a file type */
/*****************************************************************************/ /*****************************************************************************/

View File

@@ -5,15 +5,18 @@
# Library dir # Library dir
COMMON = ../common COMMON = ../common
# Type of spawn function to use
SPAWN = SPAWN_UNIX
CC=gcc CC=gcc
CFLAGS = -O2 -g -Wall -W -I$(COMMON) CFLAGS = -O2 -g -Wall -W -I$(COMMON) -D$(SPAWN)
EBIND = emxbind EBIND = emxbind
LDFLAGS= LDFLAGS=
OBJS = error.o \ OBJS = error.o \
global.o \ global.o \
main.o \ main.o
spawn-unix.o
LIBS = $(COMMON)/common.a LIBS = $(COMMON)/common.a
@@ -31,7 +34,7 @@ endif
cl65: $(OBJS) $(LIBS) cl65: $(OBJS) $(LIBS)
$(CC) $(LDFLAGS) -o cl65 $(CFLAGS) $(OBJS) $(LIBS) $(CC) $(LDFLAGS) -o cl65 $(OBJS) $(LIBS)
@if [ $(OS2_SHELL) ] ; then $(EBIND) cl65 ; fi @if [ $(OS2_SHELL) ] ; then $(EBIND) cl65 ; fi
clean: clean:
@@ -47,7 +50,7 @@ zap: clean
.PHONY: depend dep .PHONY: depend dep
depend dep: $(OBJS:.o=.c) depend dep: $(OBJS:.o=.c)
@echo "Creating dependency information" @echo "Creating dependency information"
$(CC) -I$(COMMON) -MM $^ > .depend $(CC) -I$(COMMON) -D$(SPAWN) -MM $^ > .depend

View File

@@ -1,6 +1,6 @@
/*****************************************************************************/ /*****************************************************************************/
/* */ /* */
/* spawn-amiga.c */ /* spawn-amiga.inc */
/* */ /* */
/* Execute other external programs (Amiga version) */ /* Execute other external programs (Amiga version) */
/* */ /* */
@@ -34,10 +34,6 @@
#include <stdio.h> #include <stdio.h>
#include <clib/dos_protos.h> #include <clib/dos_protos.h>
/* common */
#include "attrib.h"
#include "strbuf.h"
/*****************************************************************************/ /*****************************************************************************/

View File

@@ -1,12 +1,12 @@
/*****************************************************************************/ /*****************************************************************************/
/* */ /* */
/* spawn.c */ /* spawn-unix.inc */
/* */ /* */
/* Execute other external programs (Unix version) */ /* Execute other external programs (Unix version) */
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 1999 Ullrich von Bassewitz */ /* (C) 1999-2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */ /* Wacholderweg 14 */
/* D-70597 Stuttgart */ /* D-70597 Stuttgart */
/* EMail: uz@musoftware.de */ /* EMail: uz@musoftware.de */
@@ -39,11 +39,20 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
/* common */
#include "attrib.h"
/* cl65 */
#include "error.h" /*****************************************************************************/
/* Data */
/*****************************************************************************/
/* Mode argument for spawn. This value is ignored by the function and only
* provided for DOS/Windows compatibility.
*/
#ifndef P_WAIT
#define P_WAIT 0
#endif