From ef886278a87fba783f84458dad2e9b94be05a16f Mon Sep 17 00:00:00 2001 From: cuz Date: Mon, 25 Nov 2002 21:12:00 +0000 Subject: [PATCH] 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 --- src/cl65/main.c | 39 ++++++++++++++++++--- src/cl65/make/gcc.mak | 13 ++++--- src/cl65/{spawn-amiga.c => spawn-amiga.inc} | 6 +--- src/cl65/{spawn-unix.c => spawn-unix.inc} | 27 +++++++++----- 4 files changed, 61 insertions(+), 24 deletions(-) rename src/cl65/{spawn-amiga.c => spawn-amiga.inc} (96%) rename src/cl65/{spawn-unix.c => spawn-unix.inc} (84%) diff --git a/src/cl65/main.c b/src/cl65/main.c index 3372850cb..bf7b8dceb 100644 --- a/src/cl65/main.c +++ b/src/cl65/main.c @@ -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 #include #include #include #include -#if defined(__WATCOMC__) || defined(_MSC_VER) || defined(__MINGW32__) -# include /* DOS, OS/2 and Windows */ -#else -# include "spawn.h" /* All others */ +#ifdef HAVE_SPAWN +# include #endif /* common */ +#include "attrib.h" #include "cmdline.h" #include "fname.h" +#include "strbuf.h" #include "target.h" #include "version.h" #include "xmalloc.h" @@ -124,7 +135,25 @@ static char* TargetLib = 0; /*****************************************************************************/ -/* Determine a file type */ +/* 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 */ /*****************************************************************************/ diff --git a/src/cl65/make/gcc.mak b/src/cl65/make/gcc.mak index 96f9a2b91..87153f7cb 100644 --- a/src/cl65/make/gcc.mak +++ b/src/cl65/make/gcc.mak @@ -5,15 +5,18 @@ # Library dir COMMON = ../common +# Type of spawn function to use +SPAWN = SPAWN_UNIX + + CC=gcc -CFLAGS = -O2 -g -Wall -W -I$(COMMON) +CFLAGS = -O2 -g -Wall -W -I$(COMMON) -D$(SPAWN) EBIND = emxbind LDFLAGS= OBJS = error.o \ global.o \ - main.o \ - spawn-unix.o + main.o LIBS = $(COMMON)/common.a @@ -31,7 +34,7 @@ endif cl65: $(OBJS) $(LIBS) - $(CC) $(LDFLAGS) -o cl65 $(CFLAGS) $(OBJS) $(LIBS) + $(CC) $(LDFLAGS) -o cl65 $(OBJS) $(LIBS) @if [ $(OS2_SHELL) ] ; then $(EBIND) cl65 ; fi clean: @@ -47,7 +50,7 @@ zap: clean .PHONY: depend dep depend dep: $(OBJS:.o=.c) @echo "Creating dependency information" - $(CC) -I$(COMMON) -MM $^ > .depend + $(CC) -I$(COMMON) -D$(SPAWN) -MM $^ > .depend diff --git a/src/cl65/spawn-amiga.c b/src/cl65/spawn-amiga.inc similarity index 96% rename from src/cl65/spawn-amiga.c rename to src/cl65/spawn-amiga.inc index 8a083f7d5..4f0565c2e 100644 --- a/src/cl65/spawn-amiga.c +++ b/src/cl65/spawn-amiga.inc @@ -1,6 +1,6 @@ /*****************************************************************************/ /* */ -/* spawn-amiga.c */ +/* spawn-amiga.inc */ /* */ /* Execute other external programs (Amiga version) */ /* */ @@ -34,10 +34,6 @@ #include #include -/* common */ -#include "attrib.h" -#include "strbuf.h" - /*****************************************************************************/ diff --git a/src/cl65/spawn-unix.c b/src/cl65/spawn-unix.inc similarity index 84% rename from src/cl65/spawn-unix.c rename to src/cl65/spawn-unix.inc index be25e66a0..d64d85d5b 100644 --- a/src/cl65/spawn-unix.c +++ b/src/cl65/spawn-unix.inc @@ -1,15 +1,15 @@ /*****************************************************************************/ /* */ -/* spawn.c */ +/* spawn-unix.inc */ /* */ /* Execute other external programs (Unix version) */ /* */ /* */ /* */ -/* (C) 1999 Ullrich von Bassewitz */ -/* Wacholderweg 14 */ -/* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* (C) 1999-2002 Ullrich von Bassewitz */ +/* Wacholderweg 14 */ +/* D-70597 Stuttgart */ +/* EMail: uz@musoftware.de */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -39,11 +39,20 @@ #include #include -/* 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