Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.
Copy of Makefile Presentation
Transcript of Copy of Makefile Presentation
So by this point you're probably tired of having to type:
gcc -ansi -pedantic -Wall <source_file> -o <executable>
every time you need to test a change to your code.
Problems with this approach:
A distraction from the debugging process
Inefficient on larger projects
Imagine if the process could be as simple as issuing the command "make"
How do they work?
Targets define the operations a makefile can do. They are the entry points to the makefile.
To call a target from in linux we run make <target_name> for which ever target we want make to run.
In the example to the right these are to compile each of the individual exercises, clean up emac's temporary files and remove binaries, etc.
Commands define the actual actions that should be run when that target is called.
They are always indented 1 tab from the name of the target.
They consist of one or more individual commands written just as if you were to have typed them into the terminal.
Dependencies define the targets that need to be run before the current target can be run.
For example in the case to the left the all target has each of the exercises defined as dependencies. This means that when the user calls make it will call each of the other targets defined before executing any of it's own commands (of which this example has none).
This causes all to, in the example to the left, build all of the exercises at the same time with one call to make.
all is a special target in a makefile.
It is the target called whenever we execute make without the name of a target.
In the makefile to the left calling either:
make all # because all is the target name
will cause the makefile to execute the same commands
Comments in makefiles are denoted using the hashtag character #
Comments are single lined, meaning that every line of comments need to be preceded with a hash tag
Variables are also similar conceptually to macros in C.
They are defined using =
CFLAGS=-ansi -pedantic -Wall
Variables are used in makefile commands by surrounding them with $(<variable_name>)
Thank you ;-)