Simple makefile
Když člověk sem tam udělá nějaký ten program v linuxu, časem se dostane do situace, kdy neustále kopíruje soubory "makefile" anebo je znovu a znovu pracně vytváří...
05.04.2008
v 07:24
A přesně této situaci jsem se začal vyhýbat. Vytvořil jsem si program, který mi vytvoří jednoduchý makefile soubor (případnou volbou jde modifikovat).
Soubor je ke stažení zde: http://download.lumidan.eu/projects/mmf.tgz
Po rozbalení je potřeba program zkompilovat a slinkovat příkazem make.
Nápověda je dostačující, nicméně uvedu pár příkladů:
mmf -p mmf -i mmf
vytvoří tento soubor:# simple makefile generated by mmf version 1.0.0
mmf : mmf.o
gcc $(CFLAGS) -o mmf mmf.o
mmf.o : mmf.c
gcc $(CFLAGS) -c mmf.c
clean :
rm -f *.o
Po zadání make tedy bude vytvořen spustitelný soubor mmf (volba -p) ze vstupního souboru mmf.c (volba -i). Voleb -i (resp. --input) může být víc, např:mmf : mmf.o
gcc $(CFLAGS) -o mmf mmf.o
mmf.o : mmf.c
gcc $(CFLAGS) -c mmf.c
clean :
rm -f *.o
mmf -o makefile.in -p project -i main -i basic-classes -i advanced-classes -c g++
vytvoří následující makefile.in:# simple makefile generated by mmf version 1.0.0
project : main.o basic-classes.o advanced-classes.o
g++ $(CFLAGS) -o project main.o basic-classes.o advanced-classes.o
main.o : main.c
g++ $(CFLAGS) -c main.c
basic-classes.o : basic-classes.c
g++ $(CFLAGS) -c basic-classes.c
advanced-classes.o : advanced-classes.c
g++ $(CFLAGS) -c advanced-classes.c
clean :
rm -f *.o
Vše jasné? Přepínačem -c je možné volit překladač, výchozí je gcc.project : main.o basic-classes.o advanced-classes.o
g++ $(CFLAGS) -o project main.o basic-classes.o advanced-classes.o
main.o : main.c
g++ $(CFLAGS) -c main.c
basic-classes.o : basic-classes.c
g++ $(CFLAGS) -c basic-classes.c
advanced-classes.o : advanced-classes.c
g++ $(CFLAGS) -c advanced-classes.c
clean :
rm -f *.o

Komentáře
Zobrazit vše Počet příspěvků: 1 , poslední 05.04.2008 07:34:33