9

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 # ?? 
    

Cheers

enzotib
  • 96,093
Adrian George
  • 3,671
  • 8
  • 24
  • 30

3 Answers3

8

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

Raja G
  • 105,327
  • 107
  • 262
  • 331
3

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 http://en.wikipedia.org/wiki/Make_(software)#Makefiles for more information about makefiles, and http://en.wikipedia.org/wiki/Shell_script to discover shell scripts.

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

#!/bin/bash
echo "Hello world, today is $(date +%a)"
gzip -c SOURCE DESTINATION

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

chmod +x myscript.sh

And then execute it with your default interpretor with :

./myscript.sh
0

Why not create a shell script, then create a symbolic link that points to the shell script you created? Place the symbolic link in a directory that's in the PATH, so that you can 'run' the symbolic link no matter the directory in which you are located.