Zbuduj mi ten projekt, prosz. Wprowadzenie do damian.bulira@pwr.wroc.pl IX Sesja Linuksowa 21 kwietnia 2012
Table of contents 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Software Conguration Management Historia Inne narz dzia
Software Conguration Management Software Conguration Management Historia Inne narz dzia Dziaª in»ynierii oprogramowania Kontrola wersji Zarz dzanie procesem rozwoju oprogramowania Zarz dzanie ±rodowiskiem programistycznym Dostarczanie oprogramowania do klienta Zarz dzanie budowaniem (Build management)
Software Conguration Management Software Conguration Management Historia Inne narz dzia Dziaª in»ynierii oprogramowania Kontrola wersji Zarz dzanie procesem rozwoju oprogramowania Zarz dzanie ±rodowiskiem programistycznym Dostarczanie oprogramowania do klienta Zarz dzanie budowaniem (Build management)
Software Conguration Management Software Conguration Management Historia Inne narz dzia Dziaª in»ynierii oprogramowania Kontrola wersji Zarz dzanie procesem rozwoju oprogramowania Zarz dzanie ±rodowiskiem programistycznym Dostarczanie oprogramowania do klienta Zarz dzanie budowaniem (Build management)
Software Conguration Management Software Conguration Management Historia Inne narz dzia Dziaª in»ynierii oprogramowania Kontrola wersji Zarz dzanie procesem rozwoju oprogramowania Zarz dzanie ±rodowiskiem programistycznym Dostarczanie oprogramowania do klienta Zarz dzanie budowaniem (Build management)
Software Conguration Management Software Conguration Management Historia Inne narz dzia Dziaª in»ynierii oprogramowania Kontrola wersji Zarz dzanie procesem rozwoju oprogramowania Zarz dzanie ±rodowiskiem programistycznym Dostarczanie oprogramowania do klienta Zarz dzanie budowaniem (Build management)
Software Conguration Management Software Conguration Management Historia Inne narz dzia Dziaª in»ynierii oprogramowania Kontrola wersji Zarz dzanie procesem rozwoju oprogramowania Zarz dzanie ±rodowiskiem programistycznym Dostarczanie oprogramowania do klienta Zarz dzanie budowaniem (Build management)
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Software Conguration Management Historia Inne narz dzia
Software Conguration Management Historia Inne narz dzia Historia 1977 - Make - Stuart Feldman - W 2004 roku zostaª on uhonorwany ACM Software System Award 1988 - - Richard Stallman oraz Roland McGrath - pierwszy wpis w changelogu ACM/Press Release March 24, 2004 Almost every software developer in the world has used Make, or one of its descendants, as a tool for maintaining computer software. [...] Make provides a mechanism for maintaining up-to-date versions of programs that have been altered by many operations on a number of les. It mechanizes many of the activities of program development and maintenance, and has played an integral role in products from virtually every major computer and software vendor.
Software Conguration Management Historia Inne narz dzia Historia 1977 - Make - Stuart Feldman - W 2004 roku zostaª on uhonorwany ACM Software System Award 1988 - - Richard Stallman oraz Roland McGrath - pierwszy wpis w changelogu ACM/Press Release March 24, 2004 Almost every software developer in the world has used Make, or one of its descendants, as a tool for maintaining computer software. [...] Make provides a mechanism for maintaining up-to-date versions of programs that have been altered by many operations on a number of les. It mechanizes many of the activities of program development and maintenance, and has played an integral role in products from virtually every major computer and software vendor.
Software Conguration Management Historia Inne narz dzia Historia 1977 - Make - Stuart Feldman - W 2004 roku zostaª on uhonorwany ACM Software System Award 1988 - - Richard Stallman oraz Roland McGrath - pierwszy wpis w changelogu ACM/Press Release March 24, 2004 Almost every software developer in the world has used Make, or one of its descendants, as a tool for maintaining computer software. [...] Make provides a mechanism for maintaining up-to-date versions of programs that have been altered by many operations on a number of les. It mechanizes many of the activities of program development and maintenance, and has played an integral role in products from virtually every major computer and software vendor.
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Software Conguration Management Historia Inne narz dzia
Inne wersje Make'a Software Conguration Management Historia Inne narz dzia pmake (BSD Make) nmake (Windows) nmake (Bell Labs / Alcatel-Lucent) emake (Electric Cloud)
Inne wersje Make'a Software Conguration Management Historia Inne narz dzia pmake (BSD Make) nmake (Windows) nmake (Bell Labs / Alcatel-Lucent) emake (Electric Cloud)
Inne wersje Make'a Software Conguration Management Historia Inne narz dzia pmake (BSD Make) nmake (Windows) nmake (Bell Labs / Alcatel-Lucent) emake (Electric Cloud)
Inne wersje Make'a Software Conguration Management Historia Inne narz dzia pmake (BSD Make) nmake (Windows) nmake (Bell Labs / Alcatel-Lucent) emake (Electric Cloud)
Inne narz dzia Software Conguration Management Historia Inne narz dzia scons waf ant cmake autotools
Inne narz dzia Software Conguration Management Historia Inne narz dzia scons waf ant cmake autotools
Inne narz dzia Software Conguration Management Historia Inne narz dzia scons waf ant cmake autotools
Inne narz dzia Software Conguration Management Historia Inne narz dzia scons waf ant cmake autotools
Inne narz dzia Software Conguration Management Historia Inne narz dzia scons waf ant cmake autotools
Inne narz dzia Software Conguration Management Historia Inne narz dzia scons waf ant cmake autotools
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa?
Czym jest? Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Make jest narz dziem, które automatyzuje tworzenie plików z plików.
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa?
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Do czego Make jest u»ywany? Kompilacja kodu, linkowanie, itd. Operacje na plikach Kompresja d¹wi ku (.wav ->.mp3) Kompresja wideo Kompilacja projektów T E X Przetwarzanie obrazów Tworzenie kopii zapasowych
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa?
Co nam daje Make? Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Zrównoleglenie kompilacji Niezale»ne zadania mog by wykonywane w tym samym czasie na wielu rdzeniach, bez u»ycia specjalistycznych narz dzi (jobserver). ledzenie zale»no±ci Make tworzy drzewo zale»no±ci pomi dzy zadaniami (targetami), przez co proces odbywa si w poprawnej kolejno±ci po najkrótszej ±cie»ce. Budowanie przyrostowe Wykonuje jedynie te zadania, w których pliki wej±ciowe ulegªy zmianie.
Co nam daje Make? Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Zrównoleglenie kompilacji Niezale»ne zadania mog by wykonywane w tym samym czasie na wielu rdzeniach, bez u»ycia specjalistycznych narz dzi (jobserver). ledzenie zale»no±ci Make tworzy drzewo zale»no±ci pomi dzy zadaniami (targetami), przez co proces odbywa si w poprawnej kolejno±ci po najkrótszej ±cie»ce. Budowanie przyrostowe Wykonuje jedynie te zadania, w których pliki wej±ciowe ulegªy zmianie.
Co nam daje Make? Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Zrównoleglenie kompilacji Niezale»ne zadania mog by wykonywane w tym samym czasie na wielu rdzeniach, bez u»ycia specjalistycznych narz dzi (jobserver). ledzenie zale»no±ci Make tworzy drzewo zale»no±ci pomi dzy zadaniami (targetami), przez co proces odbywa si w poprawnej kolejno±ci po najkrótszej ±cie»ce. Budowanie przyrostowe Wykonuje jedynie te zadania, w których pliki wej±ciowe ulegªy zmianie.
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa?
Jak dziaªa Make? Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? zale»no± - warunek wst pny, przed wykonaniem procedury (receptury) tworzenia celu receptura - polecenia powªoki tworz ce obiekt(y) docelowy cel - plik wynikowy (element nieobowi zkowy)
Kiedy przebudowa projekt? Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? Znacznik czasu (timestamp) -rw-rr 1 user group 66 Jan 10 13:55 main.c Receptura jest wykonywana, kiedy znacznik czasowy jest nowszy w zale»no±ci ni» w pliku docelowym, plik docelowy nie istnieje lub target jest zale»ny od.phony.
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
Skªadnia pliku Makele cel: zale»no± 1 [zale»no± 2]... receptura Uwaga Receptura musi zaczyna si od znaku tabulacji. Przykªad 1 main: main.c hello.c gcc -o main main.c hello.c Przykªad 0 main: main.c hello.c
Skªadnia pliku Makele cel: zale»no± 1 [zale»no± 2]... receptura Uwaga Receptura musi zaczyna si od znaku tabulacji. Przykªad 1 main: main.c hello.c gcc -o main main.c hello.c Przykªad 0 main: main.c hello.c
Skªadnia pliku Makele cel: zale»no± 1 [zale»no± 2]... receptura Uwaga Receptura musi zaczyna si od znaku tabulacji. Przykªad 1 main: main.c hello.c gcc -o main main.c hello.c Przykªad 0 main: main.c hello.c
Wywoªanie Make'a $ make <target> [options variables] Domy±lnie Make czyta plik w katalogu z którego jest uruchamiany o nazwie makele, Makele lub GNUMakele Dobr praktyk jest u»ywanie nazwy Makele Je±li target nie jest podany, to pierwszy niewieloznaczny (non-wildcard) target jest uruchamiany.
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
Przykªad 2 main: main.o hello.o gcc -o main main.o hello.o Reguªa wprost: linkowanie Reguªa domy±lna:.c ->.o
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
Wszystkie cele phony musz by zale»ne od specjalnego targetu.phony Targety phony s to etykiety, u»ywane aby wywoªa skrypt. Nie musz tworzy pliku. Targety phony zawsze si wykonaj. Typowe nazwy targetów phony to all, install, clean, distclean, TAGS, info, check Target clean.phony: clean clean: rm f *.o
Wszystkie cele phony musz by zale»ne od specjalnego targetu.phony Targety phony s to etykiety, u»ywane aby wywoªa skrypt. Nie musz tworzy pliku. Targety phony zawsze si wykonaj. Typowe nazwy targetów phony to all, install, clean, distclean, TAGS, info, check Target clean.phony: clean clean: rm f *.o
Wszystkie cele phony musz by zale»ne od specjalnego targetu.phony Targety phony s to etykiety, u»ywane aby wywoªa skrypt. Nie musz tworzy pliku. Targety phony zawsze si wykonaj. Typowe nazwy targetów phony to all, install, clean, distclean, TAGS, info, check Target clean.phony: clean clean: rm f *.o
Wszystkie cele phony musz by zale»ne od specjalnego targetu.phony Targety phony s to etykiety, u»ywane aby wywoªa skrypt. Nie musz tworzy pliku. Targety phony zawsze si wykonaj. Typowe nazwy targetów phony to all, install, clean, distclean, TAGS, info, check Target clean.phony: clean clean: rm f *.o
Wszystkie cele phony musz by zale»ne od specjalnego targetu.phony Targety phony s to etykiety, u»ywane aby wywoªa skrypt. Nie musz tworzy pliku. Targety phony zawsze si wykonaj. Typowe nazwy targetów phony to all, install, clean, distclean, TAGS, info, check Target clean.phony: clean clean: rm f *.o
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
zwykªe CC = gcc foo.o: foo.c foo.h $(CC) c foo.c automatyczne (przykªadowe): $@ - Target $< - Pierwszy element listy zale»no±ci $ - Caªa lista zale»no±ci automatyczne CC = gcc foo.o: foo.c foo.h $(CC) o $@ $<
zwykªe CC = gcc foo.o: foo.c foo.h $(CC) c foo.c automatyczne (przykªadowe): $@ - Target $< - Pierwszy element listy zale»no±ci $ - Caªa lista zale»no±ci automatyczne CC = gcc foo.o: foo.c foo.h $(CC) o $@ $<
zwykªe CC = gcc foo.o: foo.c foo.h $(CC) c foo.c automatyczne (przykªadowe): $@ - Target $< - Pierwszy element listy zale»no±ci $ - Caªa lista zale»no±ci automatyczne CC = gcc foo.o: foo.c foo.h $(CC) o $@ $<
zwykªe CC = gcc foo.o: foo.c foo.h $(CC) c foo.c automatyczne (przykªadowe): $@ - Target $< - Pierwszy element listy zale»no±ci $ - Caªa lista zale»no±ci automatyczne CC = gcc foo.o: foo.c foo.h $(CC) o $@ $<
zwykªe CC = gcc foo.o: foo.c foo.h $(CC) c foo.c automatyczne (przykªadowe): $@ - Target $< - Pierwszy element listy zale»no±ci $ - Caªa lista zale»no±ci automatyczne CC = gcc foo.o: foo.c foo.h $(CC) o $@ $<
Rodzaje przypisa«rozwijane rekursywnie x = $(foo) foo = $(bar) bar = baz # bar = $(bar) baz?? proste x := foo y := $(x) x := bar Konkatenacja x := foo bar x += baz # x := $(x) baz
Rodzaje przypisa«rozwijane rekursywnie x = $(foo) foo = $(bar) bar = baz # bar = $(bar) baz?? proste x := foo y := $(x) x := bar Konkatenacja x := foo bar x += baz # x := $(x) baz
Rodzaje przypisa«rozwijane rekursywnie x = $(foo) foo = $(bar) bar = baz # bar = $(bar) baz?? proste x := foo y := $(x) x := bar Konkatenacja x := foo bar x += baz # x := $(x) baz
Podczas odwoªywania si do zmiennych mog by u»ywane zarówno nawiasy () jak i {}, lecz wedªug konwencji u»ywany () Podczas odwoªywania si do zmiennych jednoliterowych mo»na pomin nawiasy mog zachowywa si jak listy, u»ywane tutaj s makra $(wordlist, $(word, $(words, $(firstword, $(lastword Warto± zmiennej mo»na przesyªa do Make'e podczas wywoªania, przykªad: make FOO=bar Make posiada bezpo±redni dost p do zmiennych ±rodowiskowych
Podczas odwoªywania si do zmiennych mog by u»ywane zarówno nawiasy () jak i {}, lecz wedªug konwencji u»ywany () Podczas odwoªywania si do zmiennych jednoliterowych mo»na pomin nawiasy mog zachowywa si jak listy, u»ywane tutaj s makra $(wordlist, $(word, $(words, $(firstword, $(lastword Warto± zmiennej mo»na przesyªa do Make'e podczas wywoªania, przykªad: make FOO=bar Make posiada bezpo±redni dost p do zmiennych ±rodowiskowych
Podczas odwoªywania si do zmiennych mog by u»ywane zarówno nawiasy () jak i {}, lecz wedªug konwencji u»ywany () Podczas odwoªywania si do zmiennych jednoliterowych mo»na pomin nawiasy mog zachowywa si jak listy, u»ywane tutaj s makra $(wordlist, $(word, $(words, $(firstword, $(lastword Warto± zmiennej mo»na przesyªa do Make'e podczas wywoªania, przykªad: make FOO=bar Make posiada bezpo±redni dost p do zmiennych ±rodowiskowych
Podczas odwoªywania si do zmiennych mog by u»ywane zarówno nawiasy () jak i {}, lecz wedªug konwencji u»ywany () Podczas odwoªywania si do zmiennych jednoliterowych mo»na pomin nawiasy mog zachowywa si jak listy, u»ywane tutaj s makra $(wordlist, $(word, $(words, $(firstword, $(lastword Warto± zmiennej mo»na przesyªa do Make'e podczas wywoªania, przykªad: make FOO=bar Make posiada bezpo±redni dost p do zmiennych ±rodowiskowych
Podczas odwoªywania si do zmiennych mog by u»ywane zarówno nawiasy () jak i {}, lecz wedªug konwencji u»ywany () Podczas odwoªywania si do zmiennych jednoliterowych mo»na pomin nawiasy mog zachowywa si jak listy, u»ywane tutaj s makra $(wordlist, $(word, $(words, $(firstword, $(lastword Warto± zmiennej mo»na przesyªa do Make'e podczas wywoªania, przykªad: make FOO=bar Make posiada bezpo±redni dost p do zmiennych ±rodowiskowych
Przykªad 3 CC=gcc.PHONY: clean main: main.o hello.o hello.h gcc -o main main.o hello.o clean: rm -f main main.o hello.o Zmienna wskazuj ca na kompilator C Target clean Zale»no± od pliku nagªówkowego
Plan wykªadu 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
- porz dki w repo VPATH - ±cie»ka wyszukiwania zale»no±ci (przewa»ne plików ¹ródªowych) -I - ±cie»ka wyszukiwania plików nagªówkowych w gcc Przykªad 4 CC=gcc CFLAGS=Iheaders VPATH=src.PHONY: clean main: main.o hello.o headers/hello.h gcc -o main main.o hello.o $(CFLAGS) clean: rm -f main main.o hello.o
Osobny katalog z obiektami Reguªa kompilacji podana wprost Przykªad 5 CC=gcc CFLAGS=Iheaders VPATH=src OBJDIR=obj.PHONY: clean $(OBJDIR)/%.o: %.c headers/hello.h $(CC) -c -o $@ $< $(CFLAGS) main: main.o hello.o gcc -o main main.o hello.o clean: rm -f main main.o hello.o
Docelowa struktura katalogów
Wersja ostateczna CC=gcc VPATH=src HDIR=headers _H=hello.h H=$(addprefix $(HDIR)/,$(_H)) CFLAGS=I$(HDIR) OBJDIR=obj _OBJ=main.o hello.o OBJ=$(addprefix $(OBJDIR)/,$(_OBJ)).PHONY: clean $(OBJDIR)/%.o: %.c $(H) $(CC) c o $@ $< $(CFLAGS) main: $(OBJ) gcc o main $(OBJ) clean: rm f main $(OBJ)
Plan wykªadu Ogólne CI 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
Ogólne CI Wyª czajmy reguªy domy±lne (-r) -j pozwala na zrównoleglenie wywoªa«make'a (zawsze przekazujmy parametr) Przy rekursywnym wywoªaniu Make'a u»ywajmy zmiennej $(MAKE) wewn trzne piszmy maªymi literami, natomiast zmienne przekazywane z wiersza polece«- wielmiki
Ogólne CI Wyª czajmy reguªy domy±lne (-r) -j pozwala na zrównoleglenie wywoªa«make'a (zawsze przekazujmy parametr) Przy rekursywnym wywoªaniu Make'a u»ywajmy zmiennej $(MAKE) wewn trzne piszmy maªymi literami, natomiast zmienne przekazywane z wiersza polece«- wielmiki
Ogólne CI Wyª czajmy reguªy domy±lne (-r) -j pozwala na zrównoleglenie wywoªa«make'a (zawsze przekazujmy parametr) Przy rekursywnym wywoªaniu Make'a u»ywajmy zmiennej $(MAKE) wewn trzne piszmy maªymi literami, natomiast zmienne przekazywane z wiersza polece«- wielmiki
Ogólne CI Wyª czajmy reguªy domy±lne (-r) -j pozwala na zrównoleglenie wywoªa«make'a (zawsze przekazujmy parametr) Przy rekursywnym wywoªaniu Make'a u»ywajmy zmiennej $(MAKE) wewn trzne piszmy maªymi literami, natomiast zmienne przekazywane z wiersza polece«- wielmiki
Ogólne CI U»ywajmy standardowych nazw zmiennych CPP, CC, CXX, AR, AS, LD, CPPFLAGS, CFLAGS, CXXFLAGS, ARFLAGS, ASFLAGS, LDFLAGS, itd. Piszmy receptury jako jedno wywoªanie powªoki U»ywajmy wbudowanych makr Make'a, a je±li to niemo»liwe u»ywajmy prostych narz dzi cut/tr W wi kszych projektach generujmy zale»no±ci od plików nagówkiwych za pomoc gcc - rodzina parametrów -M
Ogólne CI U»ywajmy standardowych nazw zmiennych CPP, CC, CXX, AR, AS, LD, CPPFLAGS, CFLAGS, CXXFLAGS, ARFLAGS, ASFLAGS, LDFLAGS, itd. Piszmy receptury jako jedno wywoªanie powªoki U»ywajmy wbudowanych makr Make'a, a je±li to niemo»liwe u»ywajmy prostych narz dzi cut/tr W wi kszych projektach generujmy zale»no±ci od plików nagówkiwych za pomoc gcc - rodzina parametrów -M
Ogólne CI U»ywajmy standardowych nazw zmiennych CPP, CC, CXX, AR, AS, LD, CPPFLAGS, CFLAGS, CXXFLAGS, ARFLAGS, ASFLAGS, LDFLAGS, itd. Piszmy receptury jako jedno wywoªanie powªoki U»ywajmy wbudowanych makr Make'a, a je±li to niemo»liwe u»ywajmy prostych narz dzi cut/tr W wi kszych projektach generujmy zale»no±ci od plików nagówkiwych za pomoc gcc - rodzina parametrów -M
Ogólne CI U»ywajmy standardowych nazw zmiennych CPP, CC, CXX, AR, AS, LD, CPPFLAGS, CFLAGS, CXXFLAGS, ARFLAGS, ASFLAGS, LDFLAGS, itd. Piszmy receptury jako jedno wywoªanie powªoki U»ywajmy wbudowanych makr Make'a, a je±li to niemo»liwe u»ywajmy prostych narz dzi cut/tr W wi kszych projektach generujmy zale»no±ci od plików nagówkiwych za pomoc gcc - rodzina parametrów -M
Plan wykªadu Ogólne CI 1 Software Conguration Management Historia Inne narz dzia 2 Czym jest? Do czego jest u»ywany? Co nam daje? Jak dziaªa? 3 4 Ogólne CI
System budowania a CI Ogólne CI Target clean prawie nigdy nie jest u»ywany Podstawowe cele: niezawodno±, powtarzalno± i ±ledzenie bª dów Poprawne, nienadmiarowe zale»no±ci Szybkie buildy przyrostowe Peªna automatyzacja Prostota utrzymania i rozszerzania
System budowania a CI Ogólne CI Target clean prawie nigdy nie jest u»ywany Podstawowe cele: niezawodno±, powtarzalno± i ±ledzenie bª dów Poprawne, nienadmiarowe zale»no±ci Szybkie buildy przyrostowe Peªna automatyzacja Prostota utrzymania i rozszerzania
System budowania a CI Ogólne CI Target clean prawie nigdy nie jest u»ywany Podstawowe cele: niezawodno±, powtarzalno± i ±ledzenie bª dów Poprawne, nienadmiarowe zale»no±ci Szybkie buildy przyrostowe Peªna automatyzacja Prostota utrzymania i rozszerzania
System budowania a CI Ogólne CI Target clean prawie nigdy nie jest u»ywany Podstawowe cele: niezawodno±, powtarzalno± i ±ledzenie bª dów Poprawne, nienadmiarowe zale»no±ci Szybkie buildy przyrostowe Peªna automatyzacja Prostota utrzymania i rozszerzania
System budowania a CI Ogólne CI Target clean prawie nigdy nie jest u»ywany Podstawowe cele: niezawodno±, powtarzalno± i ±ledzenie bª dów Poprawne, nienadmiarowe zale»no±ci Szybkie buildy przyrostowe Peªna automatyzacja Prostota utrzymania i rozszerzania
System budowania a CI Ogólne CI Target clean prawie nigdy nie jest u»ywany Podstawowe cele: niezawodno±, powtarzalno± i ±ledzenie bª dów Poprawne, nienadmiarowe zale»no±ci Szybkie buildy przyrostowe Peªna automatyzacja Prostota utrzymania i rozszerzania
Dzi kuj za uwag Ogólne CI Pytania