1 /* Running commands on Amiga
2 Copyright (C) 1995, 1996 Free Software Foundation, Inc.
3 This file is part of GNU Make.
5 GNU Make is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2, or (at your option)
10 GNU Make is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GNU Make; see the file COPYING. If not, write to
17 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
23 #include <exec/memory.h>
24 #include <dos/dostags.h>
25 #include <proto/exec.h>
26 #include <proto/dos.h>
28 static const char Amiga_version
[] = "$VER: Make 3.74.3 (12.05.96) \n"
29 "Amiga Port by A. Digulla (digulla@home.lake.de)";
40 for (aptr
=argv
; *aptr
; aptr
++)
42 len
+= strlen (*aptr
) + 4;
45 buffer
= AllocMem (len
, MEMF_ANY
);
48 fatal ("MyExecute: Cannot allocate space for calling a command");
52 for (aptr
=argv
; *aptr
; aptr
++)
54 if (((*aptr
)[0] == ';' && !(*aptr
)[1]))
61 else if ((*aptr
)[0] == '@' && (*aptr
)[1] == '@' && !(*aptr
)[2])
77 status
= SystemTags (buffer
,
81 FreeMem (buffer
, len
);
83 if (SetSignal(0L,0L) & SIGBREAKF_CTRL_C
)
86 /* Warnings don't count */
94 wildcard_expansion (wc
, o
)
97 # define PATH_SIZE 1024
98 struct AnchorPath
* apath
;
100 if ( (apath
= AllocMem (sizeof (struct AnchorPath
) + PATH_SIZE
,
104 apath
->ap_Strlen
= PATH_SIZE
;
106 if (MatchFirst (wc
, apath
) == 0)
110 o
= variable_buffer_output (o
, apath
->ap_Buf
,
111 strlen (apath
->ap_Buf
));
112 o
= variable_buffer_output (o
, " ",1);
113 } while (MatchNext (apath
) == 0);
117 FreeMem (apath
, sizeof (struct AnchorPath
) + PATH_SIZE
);