thanks kevin. it now is clear as mud. That is much better than the rock I
was trying to look through before!
:-)~MIKE~(-:
On Mon, Jul 28, 2014 at 2:18 PM, Kevin Fries <
kevin@fries-biro.com> wrote:
> Make is a fancy scripting mechanism, and a very powerful one at that.
>
> A "Make File" consists of a series of rules. Each of these rules are
> designed to perform some type of task on demand. Some of the rules are
> very simplistic, such as:
>
> myfile.o: myfile.c
> {tab}gcc -o myfile.o myfile.c
>
> Now, if there is any rule in the makefile that requires myfile.o (this
> rule requires myfile.c), it will execute this rule, which simply states,
> myfile.o needs to be rebuilt it myfile.c has changed, and if it needs to be
> rebuilt, use the following command (the gcc command on the next line) to
> build it. So, I can now create my executable by typing:
>
> myfile: myfile.o
> {tab}gcc -o myfile myfile.o
>
> OK, so much for the super simple stuff, time for the basically simple
> stuff.
>
> My compiler is not likely to change from one c file to another... so I can
> create a macro for it, it is generally called CC by convention. I will
> also want to use the same C compiler flags on all my objects so I will call
> that CFLAGS by convention. And, I don't really want to specify every
> object and convention file individually, that could get tedious. So, I can
> change my first line to read like this:
>
> .c.o:
>
> And since I don't know the name of the file, make allows me to use a place
> holder for the first entry like so: $< and the second value like so: $@.
> Now I can rebuild my rule like thus:
>
> CC=gcc
> CLIBS="-c"
>
> myfile:myfile.o
> {tab}gcc -o myfile myfile.o
>
> .c.o:
> {tab}$(CC) $(CFLAGS) -o $< $@
>
> Looks greek, but its really pretty straightforward. Oh, in case you are
> wondering how does it determine if the .o file needs to be rebuilt?
> simple, if the time-stamp on the .c file is later than the .o file,
> rebuild the .o file, as the .c file is newer. Again, not too tough.
>
> But lets say you want to do some administrative tasks also. Some of the
> common ones are "TEST", "CLEAN", "INSTALL", etc. I can simple create a
> label and indent my commands with a tab character. So, to delete all the
> .o files so that everything is recompiled:
>
> clean:
> {tab}rm -rf *.o
>
> Now, if you execute "make clean" on the command line, make will look for a
> label called clean, and execute whatever is there. If you do not specify a
> label (i.e. you just type make), it will execute the first label it sees.
> So in allot of make files you will see a label of "ALL" at the top to make
> the default to make the entire project.
>
> I hope my 101 introduction to Make makes sense.
>
> Kevin
>
>
> On Mon, Jul 28, 2014 at 2:11 PM, Michael Havens <bmike1@gmail.com> wrote:
>
>> what does that command do? I thought that it installed what you compiled
>> with make. but at as I am working through linux from scratch I get to perl
>> and it says:
>>
>> Only a few of the utilities and libraries, need to be installed at this
>> time:
>> cp -v perl cpan/podlators/pod2man /tools/bin
>> mkdir -pv /tools/lib/perl5/5.18.2
>> cp -Rv lib/* /tools/lib/perl5/5.18.2
>>
>> so is it installing the files with cp? is 'make install' just another
>> way to say 'cp'?
>> :-)~MIKE~(-:
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>
>
>
> --
> “Keep away from people who try to belittle your ambitions. Small people
> always do that, but the really great make you feel that you, too, can
> become great.”
> ― Mark Twain <http://www.goodreads.com/author/show/1244.Mark_Twain>
>
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>
---------------------------------------------------
PLUG-discuss mailing list -
PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss