Subject: Re: gcc produces foo.exe, not foo
From: [email-masked] (Mumit Khan)

23 Sep 1998 22:21:52 -0700
Message-ID: <[email-masked]>
References: <[email-masked]>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
To: Arne Glenstrup <[email-masked]>
Cc: [email-masked]

On Wed, 23 Sep 1998, Arne Glenstrup wrote:

> 
> The problem is that it seems that when running
> 
>   gcc -o foo foo.c
> 
> it produces not a file named foo, but a file named foo.exe. This has
> caused me problems when writing a Makefile somewhat like
> 
>   bar: foo.c
>           gcc -o foo foo.c
>           mv foo bar
> 
> because it complains when trying to mv file foo.
> 
> What is the standard way of circumventing this problem? Simply writing
> 
>           mv foo.exe bar.exe
> 

All my local configuration systems check for executable extension and
define a variable such as exeext to either the extension or "" if none
is added by default. Lots of GNU Makefiles are beginning to use this
as well. The Makefile rules look like the following:
  
  PROGRAMS = bar$(exeext) 

  bar$(exeext): foo.c
	$(CC) -o foo foo.c
	mv foo$(exeext) bar$(exeext)

Rather ugly, but currently the only usable solution.

As for the rationale for adding the automatic .exe, I'm somewhat in
favor of, if not thrilled by, such "native compliance"; for mingw32, it
makes perfect sense (must have .exe to jive with native system and also
be executable by native shell); for cygwin32, bash can run programs
with or without .exe, but have trouble when running with native shell.

Regards,
Mumit

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".