You may have seen file named Makefile or you may have type command like make, make install. so what is this file Makefile and what are this command. let's discuss about it.
What is Makefile?
-> Makefile is Magical file which contains some shell command. if you type make {command} then it will execute make file.
let's dive in little deep,
create file named Makefile , (use tabs while indentation)
hello:
echo"hello world"
now type make in terminal
format of Makefile,
target : prerequisites
command
command
where target is command which can be triggered using make.
first: first.o
cc first.o -o first # third
first.o: first.c
cc -c first.c -o first.o # second
first.c:
echo "int main() { return 0; }" > first.c # first
clear:
rm -rf first first.o first.c
when we type make, commands in Makefile execute line by line,
here it started with first(target) then it needed first.o(prerequisite) so now it is finding first.o
next line it find first.o(target) then it needed first.c (prerequisite) so now it is finding first.c
next line it find first.c and there are not any prerequisite for it so it will execute command of it
then it will go up for first.o(target) because it find prerequisite for it which is first.c and execute commands of it then it will go up one more time for first. and this is how it works.
now if you run make clear it will delete all files which are created.
Why use Makefile?
-> when you're working on some project no matter it is big or small but if you use Makefile it will reduce your some work which you need to repeat while you compile your program . also make is used to build executable programs and libraries from source code.
Even you can install dependency using Makefile like below,
packages:
echo "installing packages"
sudo apt install {package-name}
help:
echo "packages: install all packages"
There is lot about Makefile which i can't cover in one post, but now you have basic idea of Makefile, so you can create Makefile.
[Note: there can be some indentation error in above code so you should type it yourself ]
Thank You 😊😊
thank you for uploading this ...
ReplyDeleteyou're welcome :)
Delete