Softwarepraktikum: Einführung in Makefiles

Ähnliche Dokumente
Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Kompilieren und Linken

Einführung in die Programmierung mit C++

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Fremdsprachen bearbeiten

Eprog Starthilfe. 5. Oktober Einleitung 2

Version 0.3. Installation von MinGW und Eclipse CDT

Stand: Adressnummern ändern Modulbeschreibung

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Dr. Monika Meiler. Inhalt

Installation und Inbetriebnahme von Microsoft Visual C Express

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

Softwarepraktikum: Einführung in gcc / g++

Erstellen der Barcode-Etiketten:

Wiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C

Installation OMNIKEY 3121 USB

Qt-Projekte mit Visual Studio 2005

Bauteilattribute als Sachdaten anzeigen

Typo3 - Inhalte. 1. Gestaltung des Inhaltsbereichs. 2. Seitenunterteilung einfügen

Kundeninformation PDF-Erzeugung in Adobe Illustrator, Adobe InDesign und QuarkXPress Datenprüfung und Datenübergabe

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Nuetzlicher Kleinkram

Evident VDDS-Anbindung von MIZ

Installationsanleitung Maschinenkonfiguration und PPs

32.4 Anpassen von Menüs und Symbolleisten 795i

OpenOffice Installation Eckehard Möbius, Böblingen - Oliver Schulz, Stuttgart Stand / Version 1.4

EDV-Fortbildung Kombi-Schulung Word-Excel Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel

bitte auf den Button Baudaten-Fenster öffnen klicken. (oder über das Menü -> STAMMDATEN -> BAUDATEN anklicken)

Grundlagen von Python

Wie konfiguiriert man Eclipse (mit oder ohne Plugin) Erich Ehses

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Optimale Integration leicht gemacht.

Outlook 2000 Thema - Archivierung

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

6. Benutzerdefinierte Zahlenformate

Anleitung zur Einrichtung von OpenCV

Software-Engineering Grundlagen des Software-Engineering

Outlook Vorlagen/Templates

CL-Mini-ABF. Kurzbeschreibung. Installation und Vorbereitung. Stand Ihre HTK-Filiale Michelstadt

Grundlagen der Verwendung von make

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Einfach und schnell Kurse herbeizaubern mit dem Kurs Wizard

Zwei Monitore - effizientes Arbeiten mit AGENDA-Software

Einstellen der Makrosicherheit in Microsoft Word

Ein PDF erstellen. aus Adobe InDesign CC. Langner Marketing Unternehmensplanung Metzgerstraße Reutlingen

Kurzanleitung zu XML2DB

Installation Messerli MySQL auf Linux

Die Entwicklung eines Glossars (oder eines kontrollierten Vokabulars) für ein Unternehmen geht üblicherweise in 3 Schritten vor sich:

Registrierung Ihres Fachbesucher Tickets

Online-Hilfe. Wie kann die Online-Hilfe des SIMOTION-Scout genutzt werden, ohne Scout zu starten?

Schuljahreswechsel im Schul-Webportal

Dokumentation zur Versendung der Statistik Daten

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Lavid-F.I.S. Ablaufbeschreibung für. Arbeitszeiterfassung. Lavid-F.I.S.

Arbeitsblätter auf die Schülercomputer verteilen, öffnen und wieder einsammeln

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

Karten-Freischaltung mit dem UNLOCK MANAGER

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

HWS32 Änderungsbeschreibung für Update 01 / 2009

Möglichkeiten des Parallelbetriebs der VR-NetWorld Software Parallelbetrieb VR-NetWorld Software 4.4x und Version 5.0 ab der 2. Beta!

Electronic Systems GmbH & Co. KG

Herzlich willkommen. Vielen Dank, dass Sie an unserer Studie teilnehmen (hinsetzen lassen etc.)

Anwenden eines Service Packs auf eine Workstation

teischl.com Software Design & Services e.u. office@teischl.com

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Verknüpfung zum Angebotsassistenten erstellen

Tess TeSign nutzen mit App's"! iphone und Bria Informationen zur Nutzung

3. Update des edirectory Neustart des edirectory und Kontrolle edirectory neu starten Versionskontrolle 4

Windows 7 Winbuilder USB Stick

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Speichern. Speichern unter

Technical Note 0301 ewon

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

Moodle Quizfragen in MS WORD erstellen

SelfLinux cron

Im folgenden Text wird beschrieben, wie Sie eine Signatur für Ihren client anlegen. Bitte folgen Sie den entsprechenden Anweisungen.

Abschluss Version 1.0

LSA_TRANS Stand: 03/2012

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Rechnung Angebot Zeiterfassung

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Windows 8/8.1 RecImg-Manager

Individuelle Verbindlichkeitskonten je Krankenkasse

Bedienungsanleitung Control DC Supply

L & G TECH Industriezerspanung

Bei der Anlage von Pauschalen ist folgendes zu beachten!!!!!!!!

Klassenarbeit zu linearen Gleichungssystemen

POLO-CAD 3D-TOOL INSTALLATIONSHINWEISE. HANDBUCH

Transkript:

Softwarepraktikum: Einführung in Makefiles (Eingebettete Systeme und Robotik),, http://ai3.inf.uni-bayreuth.de /home/db_lehre/praktika/softwarepraktikum/vorbesprechung_und_einfuehrung/vortraege/makefile_tuto

Vorbereitung Verzeichnis im Arbeitsverzeichnis anlegen cd mkdir makefile-tutorium Dateien kopieren cd makefile-tutorium cp /tmp-netz/ai3_software_praktikum/vortraege/makefile-tutorium/*. ls datapp data.h iopp io.h mainpp makefile makefile2 makefile3 Seite 2

Problematisierung g++ *pp -o Gegeben Quelldateien <math.h> ; <math.h> ; mainpp data.h datapp io.h iopp Gesucht Effiziente Übersetzung in ein ausführbares Binary Einfache Lösung Alle Dateien immer mit g++ *pp -o übersetzen + + => datapp mainpp iopp => Langsam, da immer alles Übersetzt wird Seite 3

Objektmodule Schnelle Lösung Module für alle Dateien erstellen g++ -c xxxpp -o x g++ -c datapp -o data g++ -c iopp -o io g++ -c mainpp -o main g++ * -o => => => datapp data iopp io mainpp main Binary aus allen Modulen bauen g++ * -o + + => datapp mainpp iopp Ändert sich eine Datei, so übersetzen wir diese neu und erstellen ein neues Binary Achtung: Inkonsistenzen durch Abhängigkeiten der Module untereinander Seite 4

Abhängigkeiten der Quelldateien data.h io.h data main io <math.h> ; <math.h> ; datapp data.h mainpp io.h iopp Seite 5

Beschreibung von Abhängigkeiten Mögliche Abhängigkeiten Dateien Andere Abhängigkeiten (Achtung: Keinen Ring bilden) Format Name_1: Abhängigkeit_1 Abhängigkeit_2... Abhängigkeit_N Kommando für Name_1 Besonderheiten Vor dem Kommando ein Tab-Stop Bei einem Zeilenumbruch in dem Kommando oder Abhängigkeiten ans Zeilenende ein \ schreiben Ausgabe der Befehlszeile unterdrücken mit vorangestelltem @ Seite 6

Einfaches Makefile : data main io g++ data main io -o data: data data.h g++ -c datapp -o data main: data.h main io.h g++ -c mainpp -o main io: io io.h g++ -c iopp -o io data main io clean: rm * *~ ; ; <math.h> <math.h> datapp data.h mainpp io.h iopp make clean make Seite 7

Musterregeln (Static pattern rules) Anwendung Syntax Abkürzung immer wiederkehrender (Ziel: Abhängigkeit(en)) - Muster Namensmuster für Ziel und Abhängigkeit: %.suffix Für die Kommando-Beschreibung sind zwei vordefinierte Variablen(Makros) verwendbar: $< [Eingabeabhängigkeiten] $@ [Ziel] Makefile : data main io g++ data main io -o data: datapp data.h io: iopp io.h main: mainpp io.h data.h %: %pp g++ -c $< -o $@ clean: rm -f * *~ g++ -MM *pp make -f makefile2 make -f makefile2 clean Seite 8

Automatische Abhängigkeitserkennung Achtung: Eigene Includes: xxx.h Bibliothek Includes <yyy.h> Anmerkung: voran gestelltes - : Übersetzung wird nicht abgebrochen im Fehlerfall Abhängigkeitsliste Generieren: g++ -MM *pp > Makefile.dep In Makefile einden: -include Makefile.dep Makefile : data main io g++ data main io -o %: %pp g++ -c $< -o $@ clean: rm -f * *~ Makefile.dep core Makefile.dep: datapp iopp... g++ -MM *pp > Makefile.dep -include Makefile.dep g++ -MM *pp make -f makefile3 make -f makefile3 clean Seite 9

Makefile mit Variablen Variablen (auch Makros ) Definition: xx = aa bb cc Zugriff: $(xx) SRC HDR TARGET CFLAGS = $(wildcard *pp) = $(wildcard *.h) = = -g -O0 -WALL -pedantic Vordefinierte Variablen (Makros) $@: Name des Ziels (main) $<: Name der abhängigen Datei $(TARGET): $(patsubst %pp, %, $(SRC)) g++ $(LDFLAGS) -o $(TARGET) $^ %: %pp g++ $(CFLAGS) -c $< -o $@ clean: $^: Liste aller Abhängigkeiten $?: Alle geänderten Dateien, von denen das Zielobjekt abhängig ist rm -f * *~ Makefile.dep Makefile.dep: $(SRC) $(HDR) g++ -MM *pp > Makefile.dep -include Makefile.dep make -f makefile4 make -f makefile4 clean Seite 10

Literatur info make man make The GNU-Make-Tutorial http://www.gnurg/software/make/manual/make.html Make-Alternativen http://freshmeat.net/articles/view/1715/ Seite 11