On Sun, Nov 27, 2005 at 10:33:36AM -0500, Matthew Miller wrote: >> On Sat, Nov 26, 2005 at 01:16:25PM +0200, Dotan Cohen wrote: >> > Also, all files that gcc outputs are of the name a.out. I want it to >> > give the .out file the original name of the file, with a .out. I have >> > manned and discovered the -o option, whereby I can specify a filename, >> > but I would prefer that it would read the original filename and use >> > that. For instance: >> > $gcc mycode.c >> > $ls >> > mycode.c mycode.out >> > How can I encourage this behaviour? Thank you. >> >> >> Oh, hey, I missed this part of the question. There's a neat trick if you >> have GNU Make, which you do on Fedora (and just about any Linux distro). >> If you have a simple C program with just one source file and no special >> linking needs, you can do this: >> >> make mycode >> >> Note not mycode.c -- it'll automatically figure out that it can make the >> executable mycode from mycode.c. And you don't even have to have a Makefile! This does produce an executable called "mycode" rather than "mycode.out" -- which more Unix-ish, but *might* not be what the OP wants. Another neat trick: The above use of "make" works because "make" has a built-in rule for compiling "mycode.c" to give "mycode". You can change / add to the parameters it uses by providing a makefile (text file called "makefile" or "Makefile") with a definition of variable CFLAGS. E.g., if this file contains the line CFLAGS= -Wall -pedantic then "make mycode" will compile mycode.c with the -Wall and -pedantic flags. Read about these flags in the "man" page, of course .... Oh, and if the executable really needs to be called mycode.out? that can be done with a "pattern rule" in a makefile, or with a little shell script. Someone here can probably help with either approach. -- -- blm