[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: start and stop a program by make
From: |
j . bezem |
Subject: |
Re: start and stop a program by make |
Date: |
Mon, 19 Oct 2009 12:12:09 +0200 (MEST) |
Hi Martin,
you may take a look at the "start" command in Windows,
http://ss64.com/nt/start.html
Unless you specify the option "/wait", it will do what you seem to need.
If your program doesn't provide its own window, you may need to add a separate
CMD shell, like in
start cmd.exe /c "dir c:\ /P"
And since "Start" seems to be a built-in command for CMD.EXE, for make to
perform the operation you may need an extra CMD call in the make rule or
provide a batch file for the commands in the make rule:
MyRule:
cmd /c "start myprogram.exe"
Combinations possible, and possibly necesary.
HTH,
Johan
--
JB Enterprises - Johan Bezem Tel: +49 172 5463210
Software Architect - Project Manager Fax: +49 172 50 5463210
Realtime / Embedded Consultant Email: address@hidden
Design - Development - Test - QA Web: http://www.bezem.de
----- original message --------
Subject: start and stop a program by make
Sent: Mon, 19 Oct 2009
From: Martin Mensch
Hello, I was posting this already in help-make, and Paul Smith advised me to
try it here. So first my original posting and then a part of the answer of Paul
which is related to UNIX. Maybe someone knows how things are with WinXP. my
original posting:I would like to start a program by using a make rule. I know
that compilers and so on are all programs. The ones that I want to start do not
finish and so don't send an error code back and as much as I have seen make
then just waits for the error code to come. Here is an example: my_rule:
program1.exe arg1 arg2
program2.exe arg1 arg2 This should start program1 and leave it running and
then start program2 and leave it running.
But what I see is this:
program1 starts and nothing else happens. When I manually stop program1 then
program2 starts. Another very good thing would be to have a rule like this:
my_rule:
stop program1
stop program2 If they are not running it should do nothing, maybe the '-'
prefix will do this? (using make 3.81 under WinXP) part of Pauls answer:There
is no way for make to not wait for a program. If you had a UNIX system with a
normal shell, you could put the process
into the background, like this: foo:
program1 &
program2 & (the "&" tells the shell to put the program into the background).
You
mentioned you're using Windows, but I don't know if you're using Cygwin
(which has, I believe, a UNIX-style shell) or MingW or whatever. I
don't know how to put a program into the background on Windows.
I don't use Cygwin, as much as I know my GNU stuff is based on MinGW. But I am
not an expert on this. Thank you for any help Martin
--- original message end ----