From: Jim B. <jb...@si...> - 2002-11-23 00:00:01
|
Hi - I have just downloaded MinGW and I have a problem creating a = makefile that works. Below is a simple makefile I use for test: =20 zeta.o : zeta.c gcc -c zeta.c trig.o : trig.c gcc -c trig.c No matter what I try, the second file is never even considered by = MinGW32-make. I have turned on --debug=3Dv, and output simply stops = after compiling zeta.c. It is exactly as if there was an end-of-file = character after the "gcc -c zeta.c" command. No diagnostics of any kind = are given. =20 I am using Windows 2000 Professional with gobs of disk, memory and CPU = speed (Pentium 4). And, yes - that is a TAB character in front of both = "gcc" commands. =20 Help! =20 Jim Brown |
From: Oscar F. <of...@wa...> - 2002-11-23 00:55:19
|
"Jim Brown" <jb...@si...> writes: > Hi - I have just downloaded MinGW and I have a problem creating a > makefile that works. Below is a simple makefile I use for test: > > zeta.o : zeta.c > gcc -c zeta.c > trig.o : trig.c > gcc -c trig.c > > No matter what I try, the second file is never even considered by > MinGW32-make. 'Make' is doing its work. If you don't provide a target name on the command line, it defaults to the first target listed on your Makefile. So when you execute 'make', zeta.o is built and then 'make' stops. If you want to build 'my.exe' write this makefile: my.exe : zeta.o trig.o zeta.o : zeta.c gcc -c zeta.c trig.o : trig.c gcc -c trig.c Now, the first target is 'my.exe' and 'make' will try to build it when you invoke the command without providing a target name. As 'my.exe' depends on 'zeta.o', 'make' will try to build that file if it is not up to date. Likewise for the other dependencies. If you later want to build 'trig.o' and ignore the other targets, invoke 'make' this way: mingw32-make trig.o [snip] -- Oscar |