Skip to main content

Makefile

 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 😊😊

Comments

Post a Comment

Popular posts from this blog

Products Which I like

Induction Buy now Induction Buy now

Add BUY ME A COFFEE To Your Github/Website

 Hey Everyone , Today we'll discuss how to add buy me a coffee to your github or website. so let's begin

Instagram OSINT

 OSINT stands for Open Source INTelligence . it means any information that can legally gathered from free , open source software or tool. if you want simple Example of OSINT then any search engine is OSINT. Today's Topic is Instagram OSINT then let's get started......