I'm currently re-writing my build script for
Olins dev.env to use MAKE ( using NMAKE from an MS VC
installation. Anyone know of any stand-alone, good
make utility ?).
Now, I have some problems. For some reason I can't
get more then the first rule/command combo to
run. Anything after the first is just ignorded.
If I comment out the first rule/command (with #),
the next rule combo runs just fine.
Thanks !
Checked the cygwin site.
There are a number of "packages" there that seems
to include a lot more then just the make tool.
Before I download and install a complete package,
do you know if the make tool is available alone ?
Jan-Erik.
John Temples wrote:
> On Fri, 18 Jul 2003, Jan-Erik Soderholm XA (TN/PAC) wrote:
>
>> Anyone know of any stand-alone, good make utility ?
>
> Get GNU make from Cygwin; don't waste your time with NMAKE.
On Fri, 18 Jul 2003, [iso-8859-1] Jan-Erik Söderholm XA (TN/PAC) wrote:
> Before I download and install a complete package,
> do you know if the make tool is available alone ?
I think it requires DLLs in the base package. The installer lets you
pick and choose what you want to download and install; you should be
able to just install "make" and whatever is required to support it.
Dipperstein, Michael wrote:
> Take a look at the GNUWin project: http://gnuwin.epfl.ch/
> They have a make that doesn't require any DLLs that windows doesn't already ship
> with.
Checked that site. Lots of tool, but it's not clear which of
them are the "make" tool. Any pointer ?
-----Original Message-----
From: Jan-Erik Soderholm XA (TN/PAC)
Sent: den 18 juli 2003 22:52
To: spam_OUTPICLISTTakeThisOuTMITVMA.MIT.EDU
Subject: Re: [PIC]: Format of makefile ?
Dipperstein, Michael wrote:
> Take a look at the GNUWin project: http://gnuwin.epfl.ch/
> They have a make that doesn't require any DLLs that windows doesn't already ship
> with.
Checked that site. Lots of tool, but it's not clear which of
them are the "make" tool. Any pointer ?
Jan-Erik <.....jan-erik.xa.soderholmKILLspam@spam@ERICSSON.COM> wrote:
> Dipperstein, Michael wrote:
> > Take a look at the GNUWin project: http://gnuwin.epfl.ch/
> > They have a make that doesn't require any DLLs that windows doesn't
> > already ship with.
>
> Checked that site. Lots of tool, but it's not clear which of
> them are the "make" tool. Any pointer ?
This is what I use; it works in any Windows command-prompt window, at least
up thru Win2K.
Also, here's the Makefile I use to build Olin's HAL project. Note that I
don't mess around with separate source and build directories; I prefer to
archive sources using CVS.
So, just got MAKE to work with the Embedinc tools
(thanks to Dave Tweeds example)
Seems as you can *not* call a BAT file from within
a "makefile". After the first call to a BAT file,
MAKE just exits. After changing the makefile to
call the EXE's (PREPIC, MPASMWIN and MPLINK) directly,
all now works. Does this sounds reasonable ?
(I'm using the UnxUtils package from GNUWIN, b.t.w.)
I'll include generic examples of a makefile and build
(BAT) file to call MAKE in my next version of the
PDF document. It will also include a section
on initial setup of a new project and tips on
setting up a working environment within UltraEdit with
examples of calls to the build (BAT) file and Xwisp/Wisp628.
Maybe later today...
Right now I have two buttons in a "PIC-toolbar" in UE,
one "re-makes" the project (after automaticly saving all
modified source files) using make to re-build "as-needed",
the other button re-flashes the PIC using Xwisp. Nice... :-)
> Anyone know of any stand-alone, good make utility ?
GNU make is free. Also search simtel archives. I think that NMAKE is not
such a good idea. M$ has a way of doing things their own way (and not
documenting more than 50% of it). Just my opinion. I use GNU make (the
DJGPP version) to build under DOS for mcs51 and pic. Also GNU make under
Linux for same. It will work in windows. Another make utility is from
Borland. If you have any one of their compiler packages then you have it.
Anyway in your example, there is only one goal (by default, the first
one). So to make them both add a goal like:
> GNU make is free. Also search simtel archives. I think that NMAKE is not
> such a good idea....
Hm, has this mail been on it's way for a day or so ?
Or maybe you just didn't check the later posts
on the subject. :-)
Anyway, I'v got a working make using the make from gnuwin.
And someday I might even understand what I'm doing :-)
Obviously there are a way to have it working without
adding a "all:" goal !?
-------------------------------------------------------------
@echo off
rem
rem BUILD_D01
rem
rem Build the D01 firmware from the D01 library.
rem Using
rem
What does make file do? What other things can
You do with it?
Andre
-----Original Message-----
Peter L. Peres wrote:
> GNU make is free. Also search simtel archives. I think that NMAKE is
not
> such a good idea....
Hm, has this mail been on it's way for a day or so ?
Or maybe you just didn't check the later posts
on the subject. :-)
Anyway, I'v got a working make using the make from gnuwin.
And someday I might even understand what I'm doing :-)
Obviously there are a way to have it working without
adding a "all:" goal !?
-------------------------------------------------------------
@echo off
rem
rem BUILD_D01
rem
rem Build the D01 firmware from the D01 library.
rem Using
rem
> Anyone know of any stand-alone, good make utility ?
GNU make is free. Also search simtel archives. I think that NMAKE is not
such a good idea. M$ has a way of doing things their own way (and not
documenting more than 50% of it). Just my opinion. I use GNU make (the
DJGPP version) to build under DOS for mcs51 and pic. Also GNU make under
Linux for same. It will work in windows. Another make utility is from
Borland. If you have any one of their compiler packages then you have
it.
Anyway in your example, there is only one goal (by default, the first
one). So to make them both add a goal like:
Using the makefile (and a "make" tool), you say that,
"to build objectfile xyz.o, asm file xyz.asm is to assambled
using *this* command".
So, make checks the date of the o file, if that is *later*
then the date of the asm file, nothing happens. The asm
file has *not* been changed after the o file was created.
But if the data of the o file is *earlier* then the asm
file, the o file is rebuilt (using the command in the
makefile).
So, whenever you re-build your project, you only
rebuilds those modules that has been chanaged since
the last re-build.
Or, in short, MAKE saves time. If you have a large
project with many small source files, the saved time
can be rellatively large if only one source file
is changed between each build.
Jan-Erik.
Andre Abelian wrote:
> Peter,
>
> What does make file do? What other things can
> You do with it?
> What does make file do? What other things can
> You do with it?
makefile is a set of instructions for a program called make that can run
commands for you (and save a lot of typing and time). I think someone once
wrote an adventure game in make but that is beyond the point. make works
by rules. Eg rules:
this: a b c
<tab> some_program -input a b c -output this
that: this
<tab> some_other_program -input this -output that
<tab> means one or more tab characters. This is important. You cannot use
spaces here for most make programs.
Each step in your job is described by a rule, and make will know how to
find them. Eg for the above 'make that' will go to the that rule, discover
that it depends on this, go to the this rule, find a, b, c, and produce
this from them, then go back to the that rule and make that from this. But
if this already exists when that looks for it, then it will be used
instead of being made, provided it is more recent than all of a,b and c.
make does not care what the programs actually do, it just knows how to
navigate the rules and run the programs. It also has a lot of clever
defaults built in, and wildcards, and default build rules and much much
more. It seems to be the standard tool for building software packages
under most operating systems excepting M$ Windows (which had to have their
own kind of make which is incompatible with everyone else's, by using
different default rules).