--- a/PipeStr.st Thu Aug 19 03:20:08 1999 +0200
+++ b/PipeStr.st Fri Aug 20 11:15:29 1999 +0200
@@ -20,7 +20,7 @@
!PipeStream primitiveDefinitions!
%{
-#if defined(NT) || defined(WIN32) || defined(MSDOS)
+#if defined(WIN32)
# undef UNIX_LIKE
# define MSDOS_LIKE
#endif
@@ -426,12 +426,13 @@
#if !defined(transputer)
OBJ fp;
FILE *f;
+ extern close();
if ((fp = __INST(filePointer)) != nil) {
__INST(filePointer) = nil;
f = __FILEVal(fp);
#ifdef WIN32
- close(fileno(f));
+ __STX_C_CALL1((void*)close, (void*)fileno(f));
#else
__BEGIN_INTERRUPTABLE__
close(fileno(f));
@@ -509,15 +510,15 @@
realCmd execDirectory tmpComFile nullOutput|
filePointer notNil ifTrue:[
- "the pipe was already open ...
- this should (can) not happen."
- ^ self errorAlreadyOpen
+ "the pipe was already open ...
+ this should (can) not happen."
+ ^ self errorAlreadyOpen
].
rwMode = 'r' ifTrue:[
- mode := #readonly. didWrite := false.
+ mode := #readonly. didWrite := false.
] ifFalse:[
- mode := #writeonly. didWrite := true.
+ mode := #writeonly. didWrite := true.
].
lastErrorNumber := nil.
@@ -528,76 +529,79 @@
execDirectory := aDirectory.
OperatingSystem isVMSlike ifTrue:[
- "/ the generated COM-file includes a 'set default'
- tmpComFile := OperatingSystem createCOMFileForVMSCommand:aCommandString in:aDirectory.
- realCmd := '@' , tmpComFile osName.
- execDirectory := nil.
+ "/
+ "/ the generated COM-file includes a 'set default'
+ "/
+ tmpComFile := OperatingSystem createCOMFileForVMSCommand:aCommandString in:aDirectory.
+ realCmd := '@' , tmpComFile osName.
+ execDirectory := nil.
+
+ mbx := OperatingSystem createMailBox.
+ mbx isNil ifTrue:[
+ lastErrorNumber := OperatingSystem currentErrorNumber.
+ tmpComFile delete.
+ ^ self openError
+ ].
+ mbxName := OperatingSystem mailBoxNameOf:mbx.
- mbx := OperatingSystem createMailBox.
- mbx isNil ifTrue:[
- lastErrorNumber := OperatingSystem currentErrorNumber.
- tmpComFile delete.
- ^ self openError
- ].
- mbxName := OperatingSystem mailBoxNameOf:mbx.
- "/ 'mailBox is ' print. mbx print. ' name is ' print. mbxName printCR.
- shellPath := ''.
- shellArgs := realCmd.
+ "/ 'mailBox is ' print. mbx print. ' name is ' print. mbxName printCR.
+ shellPath := ''.
+ shellArgs := realCmd.
- rwMode = 'r' ifTrue:[
- execFdArray := Array with:0 with:mbx with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:mbx
- ]
- ] ifFalse:[
- execFdArray := Array with:mbx with:1 with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:1
- ]
- ].
- closeFdArray := nil.
+ rwMode = 'r' ifTrue:[
+ execFdArray := Array with:0 with:mbx with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:mbx
+ ]
+ ] ifFalse:[
+ execFdArray := Array with:mbx with:1 with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:1
+ ]
+ ].
+ closeFdArray := nil.
] ifFalse:[
- OperatingSystem isUNIXlike ifTrue:[
- aDirectory notNil ifTrue:[
- "/ unix - prepend a 'cd' to the command
- realCmd := 'cd ' , aDirectory asFilename name, '; ' , aCommandString.
- ] ifFalse:[
- realCmd := aCommandString
- ].
- execDirectory := nil.
- ].
+ OperatingSystem isUNIXlike ifTrue:[
+ aDirectory notNil ifTrue:[
+ "/ unix - prepend a 'cd' to the command
+ realCmd := 'cd ' , aDirectory asFilename name, '; ' , aCommandString.
+ ] ifFalse:[
+ realCmd := aCommandString
+ ].
+ execDirectory := nil.
+ ].
- pipeFdArray := OperatingSystem makePipe.
- pipeFdArray isNil ifTrue:[
- lastErrorNumber := OperatingSystem currentErrorNumber.
- ^ self openError
- ].
+ pipeFdArray := OperatingSystem makePipe.
+ pipeFdArray isNil ifTrue:[
+ lastErrorNumber := OperatingSystem currentErrorNumber.
+ ^ self openError
+ ].
- shellAndArgs := OperatingSystem commandAndArgsForOSCommand:realCmd.
- shellPath := shellAndArgs at:1.
- shellArgs := shellAndArgs at:2.
+ shellAndArgs := OperatingSystem commandAndArgsForOSCommand:realCmd.
+ shellPath := shellAndArgs at:1.
+ shellArgs := shellAndArgs at:2.
- rwMode = 'r' ifTrue:[
- myFd := pipeFdArray at:1.
- execFd := pipeFdArray at:2.
- execFdArray := Array with:0 with:execFd with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:execFd
- ]
- ] ifFalse:[
- myFd := pipeFdArray at:2.
- execFd := pipeFdArray at:1.
- execFdArray := Array with:execFd with:1 with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:1
- ]
- ].
- closeFdArray := Array with:myFd.
+ rwMode = 'r' ifTrue:[
+ myFd := pipeFdArray at:1.
+ execFd := pipeFdArray at:2.
+ execFdArray := Array with:0 with:execFd with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:execFd
+ ]
+ ] ifFalse:[
+ myFd := pipeFdArray at:2.
+ execFd := pipeFdArray at:1.
+ execFdArray := Array with:execFd with:1 with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:1
+ ]
+ ].
+ closeFdArray := Array with:myFd.
].
err == #discard ifTrue:[
- nullOutput := Filename nullDevice writeStream.
- execFdArray at:3 put:nullOutput fileDescriptor
+ nullOutput := Filename nullDevice writeStream.
+ execFdArray at:3 put:nullOutput fileDescriptor
].
"/ must block here, to avoid races due to early finishing
@@ -606,69 +610,69 @@
blocked := OperatingSystem blockInterrupts.
pid := Processor
- monitor:[
- OperatingSystem
- exec:shellPath
- withArguments:shellArgs
- fileDescriptors:execFdArray
- closeDescriptors:closeFdArray
- fork:true
- newPgrp:true
- inDirectory:execDirectory.
- ]
- action:[:status |
- status stillAlive ifFalse:[
- exitStatus := status.
- OperatingSystem closePid:pid.
- pid := nil.
- exitSema signal.
- ].
- ].
+ monitor:[
+ OperatingSystem
+ exec:shellPath
+ withArguments:shellArgs
+ fileDescriptors:execFdArray
+ closeDescriptors:closeFdArray
+ fork:true
+ newPgrp:true
+ inDirectory:execDirectory.
+ ]
+ action:[:status |
+ status stillAlive ifFalse:[
+ exitStatus := status.
+ OperatingSystem closePid:pid.
+ pid := nil.
+ exitSema signal.
+ ].
+ ].
OperatingSystem isVMSlike ifFalse:[
- OperatingSystem closeFd:execFd.
+ OperatingSystem closeFd:execFd.
].
nullOutput notNil ifTrue:[
- nullOutput closeFile
+ nullOutput closeFile
].
pid notNil ifTrue:[
- OperatingSystem isVMSlike ifTrue:[
- "/
- "/ reopen the mailbox as a file ...
- "/
- mbxName := OperatingSystem mailBoxNameOf:mbx.
- mbxName notNil ifTrue:[
- super open:mbxName withMode:rwMode.
- exitAction := [tmpComFile delete].
- ].
- ] ifFalse:[
- self setFileDescriptor:myFd mode:rwMode.
- ]
+ OperatingSystem isVMSlike ifTrue:[
+ "/
+ "/ reopen the mailbox as a file ...
+ "/
+ mbxName := OperatingSystem mailBoxNameOf:mbx.
+ mbxName notNil ifTrue:[
+ super open:mbxName withMode:rwMode.
+ exitAction := [tmpComFile delete].
+ ].
+ ] ifFalse:[
+ self setFileDescriptor:myFd mode:rwMode.
+ ]
] ifFalse:[
- lastErrorNumber := OperatingSystem currentErrorNumber.
- OperatingSystem isVMSlike ifTrue:[
- OperatingSystem destroyMailBox:mbx.
- tmpComFile delete.
- ] ifFalse:[
- OperatingSystem closeFd:myFd.
- ].
+ lastErrorNumber := OperatingSystem currentErrorNumber.
+ OperatingSystem isVMSlike ifTrue:[
+ OperatingSystem destroyMailBox:mbx.
+ tmpComFile delete.
+ ] ifFalse:[
+ OperatingSystem closeFd:myFd.
+ ].
].
blocked ifFalse:[
- OperatingSystem unblockInterrupts
+ OperatingSystem unblockInterrupts
].
lastErrorNumber notNil ifTrue:[
- "
- the pipe open failed for some reason ...
- ... this may be either due to an invalid command string,
- or due to the system running out of memory (when forking
- the unix process)
- "
- exitAction value.
- ^ self openError
+ "
+ the pipe open failed for some reason ...
+ ... this may be either due to an invalid command string,
+ or due to the system running out of memory (when forking
+ the unix process)
+ "
+ exitAction value.
+ ^ self openError
].
commandString := realCmd.
@@ -693,6 +697,6 @@
!PipeStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Attic/PipeStr.st,v 1.79 1999-08-04 14:13:01 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Attic/PipeStr.st,v 1.80 1999-08-20 09:15:28 ps Exp $'
! !
PipeStream initialize!
--- a/PipeStream.st Thu Aug 19 03:20:08 1999 +0200
+++ b/PipeStream.st Fri Aug 20 11:15:29 1999 +0200
@@ -20,7 +20,7 @@
!PipeStream primitiveDefinitions!
%{
-#if defined(NT) || defined(WIN32) || defined(MSDOS)
+#if defined(WIN32)
# undef UNIX_LIKE
# define MSDOS_LIKE
#endif
@@ -426,12 +426,13 @@
#if !defined(transputer)
OBJ fp;
FILE *f;
+ extern close();
if ((fp = __INST(filePointer)) != nil) {
__INST(filePointer) = nil;
f = __FILEVal(fp);
#ifdef WIN32
- close(fileno(f));
+ __STX_C_CALL1((void*)close, (void*)fileno(f));
#else
__BEGIN_INTERRUPTABLE__
close(fileno(f));
@@ -509,15 +510,15 @@
realCmd execDirectory tmpComFile nullOutput|
filePointer notNil ifTrue:[
- "the pipe was already open ...
- this should (can) not happen."
- ^ self errorAlreadyOpen
+ "the pipe was already open ...
+ this should (can) not happen."
+ ^ self errorAlreadyOpen
].
rwMode = 'r' ifTrue:[
- mode := #readonly. didWrite := false.
+ mode := #readonly. didWrite := false.
] ifFalse:[
- mode := #writeonly. didWrite := true.
+ mode := #writeonly. didWrite := true.
].
lastErrorNumber := nil.
@@ -528,76 +529,79 @@
execDirectory := aDirectory.
OperatingSystem isVMSlike ifTrue:[
- "/ the generated COM-file includes a 'set default'
- tmpComFile := OperatingSystem createCOMFileForVMSCommand:aCommandString in:aDirectory.
- realCmd := '@' , tmpComFile osName.
- execDirectory := nil.
+ "/
+ "/ the generated COM-file includes a 'set default'
+ "/
+ tmpComFile := OperatingSystem createCOMFileForVMSCommand:aCommandString in:aDirectory.
+ realCmd := '@' , tmpComFile osName.
+ execDirectory := nil.
+
+ mbx := OperatingSystem createMailBox.
+ mbx isNil ifTrue:[
+ lastErrorNumber := OperatingSystem currentErrorNumber.
+ tmpComFile delete.
+ ^ self openError
+ ].
+ mbxName := OperatingSystem mailBoxNameOf:mbx.
- mbx := OperatingSystem createMailBox.
- mbx isNil ifTrue:[
- lastErrorNumber := OperatingSystem currentErrorNumber.
- tmpComFile delete.
- ^ self openError
- ].
- mbxName := OperatingSystem mailBoxNameOf:mbx.
- "/ 'mailBox is ' print. mbx print. ' name is ' print. mbxName printCR.
- shellPath := ''.
- shellArgs := realCmd.
+ "/ 'mailBox is ' print. mbx print. ' name is ' print. mbxName printCR.
+ shellPath := ''.
+ shellArgs := realCmd.
- rwMode = 'r' ifTrue:[
- execFdArray := Array with:0 with:mbx with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:mbx
- ]
- ] ifFalse:[
- execFdArray := Array with:mbx with:1 with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:1
- ]
- ].
- closeFdArray := nil.
+ rwMode = 'r' ifTrue:[
+ execFdArray := Array with:0 with:mbx with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:mbx
+ ]
+ ] ifFalse:[
+ execFdArray := Array with:mbx with:1 with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:1
+ ]
+ ].
+ closeFdArray := nil.
] ifFalse:[
- OperatingSystem isUNIXlike ifTrue:[
- aDirectory notNil ifTrue:[
- "/ unix - prepend a 'cd' to the command
- realCmd := 'cd ' , aDirectory asFilename name, '; ' , aCommandString.
- ] ifFalse:[
- realCmd := aCommandString
- ].
- execDirectory := nil.
- ].
+ OperatingSystem isUNIXlike ifTrue:[
+ aDirectory notNil ifTrue:[
+ "/ unix - prepend a 'cd' to the command
+ realCmd := 'cd ' , aDirectory asFilename name, '; ' , aCommandString.
+ ] ifFalse:[
+ realCmd := aCommandString
+ ].
+ execDirectory := nil.
+ ].
- pipeFdArray := OperatingSystem makePipe.
- pipeFdArray isNil ifTrue:[
- lastErrorNumber := OperatingSystem currentErrorNumber.
- ^ self openError
- ].
+ pipeFdArray := OperatingSystem makePipe.
+ pipeFdArray isNil ifTrue:[
+ lastErrorNumber := OperatingSystem currentErrorNumber.
+ ^ self openError
+ ].
- shellAndArgs := OperatingSystem commandAndArgsForOSCommand:realCmd.
- shellPath := shellAndArgs at:1.
- shellArgs := shellAndArgs at:2.
+ shellAndArgs := OperatingSystem commandAndArgsForOSCommand:realCmd.
+ shellPath := shellAndArgs at:1.
+ shellArgs := shellAndArgs at:2.
- rwMode = 'r' ifTrue:[
- myFd := pipeFdArray at:1.
- execFd := pipeFdArray at:2.
- execFdArray := Array with:0 with:execFd with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:execFd
- ]
- ] ifFalse:[
- myFd := pipeFdArray at:2.
- execFd := pipeFdArray at:1.
- execFdArray := Array with:execFd with:1 with:2.
- (err == #inline or:[err == #stdout]) ifTrue:[
- execFdArray at:3 put:1
- ]
- ].
- closeFdArray := Array with:myFd.
+ rwMode = 'r' ifTrue:[
+ myFd := pipeFdArray at:1.
+ execFd := pipeFdArray at:2.
+ execFdArray := Array with:0 with:execFd with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:execFd
+ ]
+ ] ifFalse:[
+ myFd := pipeFdArray at:2.
+ execFd := pipeFdArray at:1.
+ execFdArray := Array with:execFd with:1 with:2.
+ (err == #inline or:[err == #stdout]) ifTrue:[
+ execFdArray at:3 put:1
+ ]
+ ].
+ closeFdArray := Array with:myFd.
].
err == #discard ifTrue:[
- nullOutput := Filename nullDevice writeStream.
- execFdArray at:3 put:nullOutput fileDescriptor
+ nullOutput := Filename nullDevice writeStream.
+ execFdArray at:3 put:nullOutput fileDescriptor
].
"/ must block here, to avoid races due to early finishing
@@ -606,69 +610,69 @@
blocked := OperatingSystem blockInterrupts.
pid := Processor
- monitor:[
- OperatingSystem
- exec:shellPath
- withArguments:shellArgs
- fileDescriptors:execFdArray
- closeDescriptors:closeFdArray
- fork:true
- newPgrp:true
- inDirectory:execDirectory.
- ]
- action:[:status |
- status stillAlive ifFalse:[
- exitStatus := status.
- OperatingSystem closePid:pid.
- pid := nil.
- exitSema signal.
- ].
- ].
+ monitor:[
+ OperatingSystem
+ exec:shellPath
+ withArguments:shellArgs
+ fileDescriptors:execFdArray
+ closeDescriptors:closeFdArray
+ fork:true
+ newPgrp:true
+ inDirectory:execDirectory.
+ ]
+ action:[:status |
+ status stillAlive ifFalse:[
+ exitStatus := status.
+ OperatingSystem closePid:pid.
+ pid := nil.
+ exitSema signal.
+ ].
+ ].
OperatingSystem isVMSlike ifFalse:[
- OperatingSystem closeFd:execFd.
+ OperatingSystem closeFd:execFd.
].
nullOutput notNil ifTrue:[
- nullOutput closeFile
+ nullOutput closeFile
].
pid notNil ifTrue:[
- OperatingSystem isVMSlike ifTrue:[
- "/
- "/ reopen the mailbox as a file ...
- "/
- mbxName := OperatingSystem mailBoxNameOf:mbx.
- mbxName notNil ifTrue:[
- super open:mbxName withMode:rwMode.
- exitAction := [tmpComFile delete].
- ].
- ] ifFalse:[
- self setFileDescriptor:myFd mode:rwMode.
- ]
+ OperatingSystem isVMSlike ifTrue:[
+ "/
+ "/ reopen the mailbox as a file ...
+ "/
+ mbxName := OperatingSystem mailBoxNameOf:mbx.
+ mbxName notNil ifTrue:[
+ super open:mbxName withMode:rwMode.
+ exitAction := [tmpComFile delete].
+ ].
+ ] ifFalse:[
+ self setFileDescriptor:myFd mode:rwMode.
+ ]
] ifFalse:[
- lastErrorNumber := OperatingSystem currentErrorNumber.
- OperatingSystem isVMSlike ifTrue:[
- OperatingSystem destroyMailBox:mbx.
- tmpComFile delete.
- ] ifFalse:[
- OperatingSystem closeFd:myFd.
- ].
+ lastErrorNumber := OperatingSystem currentErrorNumber.
+ OperatingSystem isVMSlike ifTrue:[
+ OperatingSystem destroyMailBox:mbx.
+ tmpComFile delete.
+ ] ifFalse:[
+ OperatingSystem closeFd:myFd.
+ ].
].
blocked ifFalse:[
- OperatingSystem unblockInterrupts
+ OperatingSystem unblockInterrupts
].
lastErrorNumber notNil ifTrue:[
- "
- the pipe open failed for some reason ...
- ... this may be either due to an invalid command string,
- or due to the system running out of memory (when forking
- the unix process)
- "
- exitAction value.
- ^ self openError
+ "
+ the pipe open failed for some reason ...
+ ... this may be either due to an invalid command string,
+ or due to the system running out of memory (when forking
+ the unix process)
+ "
+ exitAction value.
+ ^ self openError
].
commandString := realCmd.
@@ -693,6 +697,6 @@
!PipeStream class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.79 1999-08-04 14:13:01 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/PipeStream.st,v 1.80 1999-08-20 09:15:28 ps Exp $'
! !
PipeStream initialize!
--- a/bc.mak Thu Aug 19 03:20:08 1999 +0200
+++ b/bc.mak Fri Aug 20 11:15:29 1999 +0200
@@ -2,7 +2,7 @@
# DO NOT EDIT
# automatically generated from Make.proto
#
-# $Header: /cvs/stx/stx/libbasic/bc.mak,v 1.36 1999-08-05 10:14:29 cg Exp $
+# $Header: /cvs/stx/stx/libbasic/bc.mak,v 1.37 1999-08-20 09:15:29 ps Exp $
#
TOP=..
@@ -20,12 +20,6 @@
OBJS=\
$(OUTDIR)Object.$(O) \
$(OUTDIR)Autoload.$(O) \
- $(OUTDIR)Behavior.$(O) \
- $(OUTDIR)ClassDescr.$(O) \
- $(OUTDIR)Class.$(O) \
- $(OUTDIR)Metaclass.$(O) \
- $(OUTDIR)AutoloadMetaclass.$(O) \
- $(OUTDIR)PMetaclass.$(O) \
$(OUTDIR)Project.$(O) \
$(OUTDIR)Namespace.$(O) \
$(OUTDIR)Boolean.$(O) \
@@ -75,6 +69,12 @@
$(OUTDIR)ProceedableError.$(O) \
$(OUTDIR)SignalError.$(O) \
$(OUTDIR)WrongProceedabilityError.$(O) \
+ $(OUTDIR)Behavior.$(O) \
+ $(OUTDIR)ClassDescr.$(O) \
+ $(OUTDIR)Class.$(O) \
+ $(OUTDIR)Metaclass.$(O) \
+ $(OUTDIR)AutoloadMetaclass.$(O) \
+ $(OUTDIR)PMetaclass.$(O) \
$(OUTDIR)ExecFunc.$(O) \
$(OUTDIR)CompCode.$(O) \
$(OUTDIR)Block.$(O) \
--- a/nt.mak Thu Aug 19 03:20:08 1999 +0200
+++ b/nt.mak Fri Aug 20 11:15:29 1999 +0200
@@ -2,7 +2,7 @@
# DO NOT EDIT
# automatically generated from Make.proto
#
-# $Header: /cvs/stx/stx/libbasic/Attic/nt.mak,v 1.36 1999-08-05 10:14:29 cg Exp $
+# $Header: /cvs/stx/stx/libbasic/Attic/nt.mak,v 1.37 1999-08-20 09:15:29 ps Exp $
#
TOP=..
@@ -20,12 +20,6 @@
OBJS=\
$(OUTDIR)Object.$(O) \
$(OUTDIR)Autoload.$(O) \
- $(OUTDIR)Behavior.$(O) \
- $(OUTDIR)ClassDescr.$(O) \
- $(OUTDIR)Class.$(O) \
- $(OUTDIR)Metaclass.$(O) \
- $(OUTDIR)AutoloadMetaclass.$(O) \
- $(OUTDIR)PMetaclass.$(O) \
$(OUTDIR)Project.$(O) \
$(OUTDIR)Namespace.$(O) \
$(OUTDIR)Boolean.$(O) \
@@ -75,6 +69,12 @@
$(OUTDIR)ProceedableError.$(O) \
$(OUTDIR)SignalError.$(O) \
$(OUTDIR)WrongProceedabilityError.$(O) \
+ $(OUTDIR)Behavior.$(O) \
+ $(OUTDIR)ClassDescr.$(O) \
+ $(OUTDIR)Class.$(O) \
+ $(OUTDIR)Metaclass.$(O) \
+ $(OUTDIR)AutoloadMetaclass.$(O) \
+ $(OUTDIR)PMetaclass.$(O) \
$(OUTDIR)ExecFunc.$(O) \
$(OUTDIR)CompCode.$(O) \
$(OUTDIR)Block.$(O) \