www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/01/27/09:15:08

From: Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Going insane with Make
Date: 27 Jan 2003 14:12:47 GMT
Organization: Aachen University of Technology (RWTH)
Lines: 57
Message-ID: <b13eov$2qc$1@nets3.rz.RWTH-Aachen.DE>
References: <3e350912$1 AT news DOT comindico DOT com DOT au>
NNTP-Posting-Host: acp3bf.physik.rwth-aachen.de
X-Trace: nets3.rz.RWTH-Aachen.DE 1043676767 2892 137.226.32.75 (27 Jan 2003 14:12:47 GMT)
X-Complaints-To: abuse AT rwth-aachen DOT de
NNTP-Posting-Date: 27 Jan 2003 14:12:47 GMT
Originator: broeker@
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Stephen Wade <maitrek AT austarmetro DOT com DOT au> wrote:
> This is my frist attempt at using a makefile, and every time i run "make"
> from the MS-DOS prompt in windows 98 in a directory which contains this
> makefile

Your makefile has several potential or guaranteed problems.

> (called 'makefile')
> #------------------
> vpath %.c ..\src
              ^----- use / here, if possible. 

The DJGPP port tries to allow backslashes, but in case of doubt,
forward slashes will work better.  The original Unix Make syntax is
not very friendly to backslashes as directory separators.

(Same for drive letters).

> vpath %.h ..\src

> CC=gcc.exe

> vexle : vexle.o vbe3.o mouse.o
>  cc -o vexle vexle.o vbe3.o mouse.o

Drop all these "cc" lines.  They won't work, for three reasons:

1) You indented them with only a space.  Unix Makefile syntax insists on
a literal <TAB> character.

2) 'cc' is not the name of the compiler.  write $(CC), or just 'gcc',
   instead.

3) If you provide the commands to be run, with all their arguments, Make
   can't properly carry out the automatic filename substitutions governed
   by your "vpath" directives above.

> I get the output
> "make.exe: *** No targets specified and no makefile found.  Stop."

> Why is it saying this? As far as I can tell I have a valid target, 

You didn't *name* one, on the "make" command line, is what this
message means.

> and the makefile is *definitely* there (I'm not that dumb - or am i
> :) )

Just to be sure: check that "dir makefile" really does list the file
as just "makefile", _Not_ "makefile.txt" or some other Windows
silliness that you wouldn't see in the default settings of Explorer.

Never trust what Explorer shows you unless you changed the relevant
settings yourself.
-- 
Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de)
Even if all the snow were burnt, ashes would remain.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019