Zbuduj mi ten projekt, prosz.



Podobne dokumenty
Automatyzacja kompilacji. Automatyzacja kompilacji 1/28

Make jest programem komputerowym automatyzującym proces kompilacji programów, na które składa się wiele zależnych od siebie plików.

Automatyzacja kompilacji. Automatyzacja kompilacji 1/40

Programowanie Proceduralne

Fragment wykładu z języka C ( )

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Kompilacja i scalanie programów w linii poleceń gcc i make

Plan wykładów. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 1. Konkurs programistyczny. Literatura. Dr inż. Tomasz Olas

Systemy Operacyjne. Ćwiczenia

1. Wprowadzenie do C/C++

1. Wprowadzenie do C/C++

Tworzenie oprogramowania

O autorze 11 O recenzentach 13 Przedmowa 15

J zyk C dla sterowników programowalnych GeFanuc

Specyfikacja techniczna banerów Flash

Programy użytkowe (utilities)

Automatyzacja procesu publikowania w bibliotece cyfrowej

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Wprowadzenie do biblioteki klas C++

WinAVR, Eclipse, AVR8 Burn-O-Mat niezb dne narz dzia programistyczne dla mikrokontolerów z rodziny AVR.

Baza danych - Access. 2 Budowa bazy danych

Podstawy Informatyki i Technologii Informacyjnej

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz. 16 lutego Podstawowe funkcje. 2.1 Windows

Program szkolenia: Continuous Integration i Git

Proces tworzenia programu:

Lifehacking dla R. Przemyślenia i rozwiązania w temacie reprodukowalności analiz i organizacji pracy

Zad.1 Pokazać pierwszeństwo trybu odmów przed zezwalaj.

Dokumentacja kompilacji źródeł aplikacji 1.0

Tworzenie oprogramowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Zarządzanie Zasobami by CTI. Instrukcja

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.

Wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

BASH - WPROWADZENIE Bioinformatyka 4

Programowanie niskopoziomowe

Wstęp do programowania. Wykład 1

Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika

Podstawy modelowania w j zyku UML

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

!"# %!*%+,-.! Nazwy programów, polece, katalogów, wyniki działania wydawanych polece.

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Zapoznanie z programem make i zasadami jego wykorzystania do zarz dzania projektami zªo»onymi z wielu plików.

Instrukcja instalacji programu Plantator oraz transferu pliku danych z/do PC kolektor danych PT-20

Bazy danych, 4. wiczenia

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Wprowadzenie do kompilatorów

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Podstawa programowa kształcenia ogólnego informatyki w gimnazjum

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

Lekcja 3 Banki i nowe przedmioty

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1

Microsoft Management Console

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Here comes the sun. Wyk lad niesystematyczny. Marcin Makowski. 24 października Zak lad Chemii Teoretycznej UJ

Dokumentacja Użytkownika systemu. Google Tag Manager. Wersja

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Lekcja 9 Liczby losowe, zmienne, staªe

Zobacz to na własne oczy. Przyszłość już tu jest dzięki rozwiązaniu Cisco TelePresence.

Pracownia internetowa w ka dej szkole (edycja 2004/2005)

Laboratorium 2: Biblioteki statyczne i dynamiczne w języku C. mgr inż. Arkadiusz Chrobot

Warszawa, r.

PRZEWODNIK PO PRZEDMIOCIE

Zarz dzanie rm. Zasada 2: samoorganizuj ce si zespoªy. Piotr Fulma«ski. March 17, 2015

Lekcja 6 Programowanie - Zaawansowane

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Programowanie w języku Python. Grażyna Koba

SAP Screen Personas. Ma gorzata Sztokfisz, SAP Polska Tomasz Jag o, SAP Polska 24 Maja 2013

Wzorce projektowe kreacyjne

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Elementarna statystyka Wnioskowanie o regresji (Inference 2 czerwca for regression) / 13

Git - podstawy. Błażej Kowalczyk. Koło Naukowe Robotyków KoNaR. 7 listopada 2014

SVN - wprowadzenie. 1 Wprowadzenie do SVN. 2 U»ywanie SVN. Adam Krechowicz 24 czerwca Podstawowe funkcje. 2.1 Windows

Programowanie mikrokontrolerów AVR

SpedCust 5 instrukcja instalacji

Budowa aplikacji webowej w oparciu o Maven2 oraz przykłady testów jednostkowych. Wykonał Marcin Gadamer

StacjaSQL.2012 /PIERWSZE URUCHOMIENIE I PODSTAWOWE USTAWIENIA/ str. 1 z 8. Copyright NORCOM 2012

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Podstawy Kompilatorów

WordPad. Czyli mój pierwszy edytor tekstu

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

1.Wstęp. 2.Generowanie systemu w EDK

Siemens IO-Link. Smart TIA integration of sensors and actuators

Programowanie w C++ Wykład 10. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 10) Programowanie w C++ 1 / 21

przewidywania zapotrzebowania na moc elektryczn

Pierwsze spotkanie kóªka linuksowego

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Wstęp do programowania

Zastanawiałeś się może, dlaczego Twój współpracownik,

Charakterystyka systemów plików

IOT w systemach PON. Mikołaj Chmura Solution Manager m.chmura@vector.com.pl

Transkrypt:

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