Sign up ×

I know this is a silly question, but since I am trying so hard to learn linux by myself, I need some help from you fellows.

I found this task on the internet and I am trying to solve it but I don't understand exactly how can I use makefiles in linux and how can I create them.

Let's suppose my print working directory is /home/george/Documents

I want to create a makefile which does the following:

  1. Displays a message as follows "hello work, today is Sun". Sun comes from Sunday. So I must use date command in this make file to display just first three letters.
  2. compress /etc/hosts in /tmp using gzip (probably here should be something like

    gzip -c SOURCE DESTINATION # ?? 


share|improve this question
Makefiles are there to selectively build outdated object files from source files, in a software development activity. It has nothing to do to what you would do. –  enzotib Aug 17 '13 at 14:21

2 Answers 2

up vote 5 down vote accepted

to answer your question I cant give you a one line / paragraph answer because it deals with every thing.Read the first link it have everything you need with examples too.

Good tutorial that can explain everything about make

share|improve this answer

A Makefile is used as a "map" for C programs compilation. They work with the make utility, an describe how a program has to be compiled/linked in order to work correctly once turned into a executable file. For global UNIX/shell tasks, you're looking for shell scripts, not makefiles :)

See for more information about makefiles, and to discover shell scripts.

A basic shell script for what you're trying to do could be :

echo "Hello world, today is $(date +%a)"

Store this in a file, and execute it using your shell prompt (bash, sh, ...). You can also make the script executable using :

chmod +x

And then execute it with your default interpretor with :

share|improve this answer
I am trying to create a makefile which does this not a shell script. –  Adrian George Aug 17 '13 at 14:27
Then you have to develop a C program which does this, and compile it using a Makefile, if you want. Makefiles do not execute Linux tasks, they guide C programs compilation, it is a completely different thing. –  John WH Smith Aug 17 '13 at 14:30
@JohnWHSmith There is nothing special about compiling C programs. Makefiles can be used to perform a variety of tasks. (With that said, many tasks are poorly suited for the use of makefiles.) –  Eliah Kagan Aug 17 '13 at 15:06

Your Answer


