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)";
41 for (aptr
=argv
; *aptr
; aptr
++)
43 len
+= strlen (*aptr
) + 4;
46 buffer
= AllocMem (len
, MEMF_ANY
);
49 fatal (NILF
, "MyExecute: Cannot allocate space for calling a command");
53 for (aptr
=argv
; *aptr
; aptr
++)
55 if (((*aptr
)[0] == ';' && !(*aptr
)[1]))
62 else if ((*aptr
)[0] == '@' && (*aptr
)[1] == '@' && !(*aptr
)[2])
78 status
= SystemTags (buffer
,
82 FreeMem (buffer
, len
);
84 if (SetSignal(0L,0L) & SIGBREAKF_CTRL_C
)
87 /* Warnings don't count */
95 wildcard_expansion (wc
, o
)
98 # define PATH_SIZE 1024
99 struct AnchorPath
* apath
;
101 if ( (apath
= AllocMem (sizeof (struct AnchorPath
) + PATH_SIZE
,
105 apath
->ap_Strlen
= PATH_SIZE
;
107 if (MatchFirst (wc
, apath
) == 0)
111 o
= variable_buffer_output (o
, apath
->ap_Buf
,
112 strlen (apath
->ap_Buf
));
113 o
= variable_buffer_output (o
, " ",1);
114 } while (MatchNext (apath
) == 0);
118 FreeMem (apath
, sizeof (struct AnchorPath
) + PATH_SIZE
);