[linux] Re: lege makefile
Robert M. Stockmann
stock op stokkie.net
Vr Aug 15 00:54:13 CEST 2008
On Thu, 14 Aug 2008, Geert Stappers wrote:
> Date: Thu, 14 Aug 2008 14:17:31 +0200
> From: Geert Stappers <stappers op stappers.nl>
> Reply-To: linux op lists.nllgg.nl
> To: linux op lists.nllgg.nl
> Subject: [linux] lege makefile
>
> Hoi,
>
> Is het mogelijk een lege makefile te hebben?
> En zo ja, hoe ziet die er dan uit?
>
>
> Als er geen makefile is, komt de melding:
> make: *** No targets specified and no makefile found. Stop.
>
>
> Nu heb ik een makefile van twee regels:
> all:
> @echo empty makefile
>
> Dat gaat goed, tot dat er een `make clean` uitgevoerd wordt.
> make: *** No rule to make target `clean'. Stop.
>
> Met een regel extra in de makefile, wordt het
> all:
> clean:
> @echo empty makefile
>
> Daarmee is `make` en `make clean` mogelijk,
> maar bij een volgend "target" zal het misgaan ...
>
> Bestaat er zo iets als een "any target", bijvoorbeeld
> all:
> $ANYTARGET:
> @echo empty makefile
>
>
Hoi,
lege Makefile? ehhh `touch Makefile` ?
De vaardigheid om een werkende Makefile te creeren vanaf scratch is
inderdaad erg handig. Hier is een Makefile voorbeeld waarmee de client
/server socket example sourcecode uit het boek "Unix Network Programming"
van W. Richard Stevens [1] wordt gecompileerd :
Makefile
------------------------------------------------------------------------
CC = gcc
CFLAGS = -O2
RM = rm -f
OBJS = beep.o daemon.o dg_cli.o dg_echo.o error.o readline.o \
readn.o sig_child.o str_cli.o str_echo.o writen.o
all: server client
server: server.o $(OBJS)
$(CC) -o server server.o $(OBJS)
client: client.o $(OBJS)
$(CC) -o client client.o $(OBJS)
clean:
$(RM) client server *.o
------------------------------------------------------------------------
Een belangrijke vuistregel die meestal wordt vergeten is dat de regels
die onder een make definitie staan, zoals "server:" allemaal ge-indent
moeten worden met een <TAB>, dus niet met 8 spaties.
Als je een portable source code pakket wilt bouwen kom je echter niet
om de gnu autotools heen. Er zijn een aantal handige autotool tutorials
die je toch aardig op weg kunnen helpen [2][3][4].
Vr.gr.
Robert
PS.
[1] UNIX Network Programming (Paperback)
by W. Richard Stevens (Author)
Paperback: 768 pages
Publisher: Prentice Hall PTR; US Ed edition (February 2, 1990)
Language: English
ISBN-10: 0139498761
ISBN-13: 978-0139498763
http://www.amazon.com/exec/obidos/ASIN/0139498761/
[2] "Autoconf Automake Tutorial"
http://mij.oltrelinux.com/devel/autoconf-automake/
[3] "Autotools Tutorial"
Copyright Sarah George,
Developing Programmers .com, Blog Archive
http://www.developingprogrammers.com/index.php/2006/01/05/autotools-tutorial/
[4] "Introduction to GNU Build Tools"
By Neelakanth Nadgir, June 2001,
http://developers.sun.com/solaris/articles/gnu.html
--
Robert M. Stockmann - RHCE
Network Engineer - UNIX/Linux Specialist
crashrecovery.org stock op stokkie.net
More information about the Linux
mailing list