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, Inc., 59 Temple Place - Suite 330, Boston,
18 MA 02111-1307, USA. */
24 #include <exec/memory.h>
25 #include <dos/dostags.h>
26 #include <proto/exec.h>
27 #include <proto/dos.h>
29 static const char Amiga_version
[] = "$VER: Make 3.74.3 (12.05.96) \n"
30 "Amiga Port by A. Digulla (digulla@home.lake.de)";
33 MyExecute (char **argv
)
40 for (aptr
=argv
; *aptr
; aptr
++)
42 len
+= strlen (*aptr
) + 4;
45 buffer
= AllocMem (len
, MEMF_ANY
);
48 fatal (NILF
, "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 (char *wc
, char *o
)
96 # define PATH_SIZE 1024
97 struct AnchorPath
* apath
;
99 if ( (apath
= AllocMem (sizeof (struct AnchorPath
) + PATH_SIZE
,
103 apath
->ap_Strlen
= PATH_SIZE
;
105 if (MatchFirst (wc
, apath
) == 0)
109 o
= variable_buffer_output (o
, apath
->ap_Buf
,
110 strlen (apath
->ap_Buf
));
111 o
= variable_buffer_output (o
, " ",1);
112 } while (MatchNext (apath
) == 0);
116 FreeMem (apath
, sizeof (struct AnchorPath
) + PATH_SIZE
);