(GNU) make (Files) https://www.gnu.org/software/make/ https://git.martubbers.net/linuxnijmegen-make.git/ Mart Lubbers 1.

Vergelijkbare documenten
Meer command-line utilities

Dit document bevat informatie over make bij het eerstejaars college Programmeermethoden, Universiteit Leiden, najaar 2010, zie

Inhoud. A Eskwadraat Linuxcursus UNIX. GNU/Linux. Slackware. Red Hat. GNU/Linux Bestanden Thuiswerken Shell Editors Opdracht.

Enterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling

Gevorderd Programmeren

Intermax backup exclusion files

Inhoud. VBA Excel 2010

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

PDF Workshop Toledo PDF freeware

Door: Ruud van Eeghem Datum: juni 2008 Versie: 1.0. Handleiding gebruik EPBD GIPC tool

Exercise assistant on-line

HTML beheren met Perl, HTML::TagReader

Summa Cutter Tools. 1 Cutter tools. Met dit programma kunnen twee dingen geïnstalleerd worden:

A Quick Start Guide: AVR programmeren

Bestand: /home/karel/scripts/backup Pagina 1 van 14

Gebruiksaanwijzing. Versie 1.0. Michiel Bouman

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Installatie Handleiding voor Modelit Applicatieprogrammatuur

Debugging in embedded en native systemen met GDB

Gebruik van command-line operating systems

10 Klusjes met Total Commander Rein de Jong

Basis UNIX commando's - overzicht

Microsoft Excel. It s all about Excel - VBA

Introductie tot het werken met een commandoregel

Bestand: /home/karel/scripts/mkusb Pagina 1 van 6

IT ADVISORY. Google Hacking ADVISORY

Prullenbak ledigen via terminal

Denit Backup instellen op een Linux server

Inleiding C++ Coding Conventions

Les 12 : database koppeling, opmaken van template, webstructuur en afdrukken van gegevens. (deel2).

Gebruik van het LOGO in geautomatiseerde verkiezingen

ApS-Ethos. Innovator Artisan Plus / Virtuoso Release Notes voor Versie X4 (14.0)

Getting Started with Python Programming

AutoArchive. Via File -> Archive kun je voortwee2 manieren archiveren kiezen.

Running and Scheduling QGIS Processing Jobs

Installatie Software - Opdrachten Les 2

OGh DBA dag. Patching met OEM Provisioning Pack. Ron van der Post. 13 september 2010

Marko Boon. 21 juni Inleiding 1. 2 Het maken van een nieuw document 2. 4 Speciale symbolen 5. 5 Tabellen 5. 6 Plaatjes 6.

Grafische automatisering vak van de toekomst

Modelleren en Programmeren

Hoofdstuk 9.4. Letterfrequentie turven

Bestand: /home/karel/scripts/nas Pagina 1 van 8

EmbroideryDesign Store

Examen Software Ontwikkeling I 2e Bachelor Informatica Academiejaar Januari, **BELANGRIJK** : Schrijf je naam onderaan dit blad

Update Globis Koppelingen DMS, WMS en Mail 1 MEI 2007 Willem den Boer

studievaardigheden studentassistent: Alice de Vries werkcollege / practicum

De MySQL C API. Variabelen in C Functies in C Pointers in C

Project Software Engineering XML parser: Parsen van een xml CD catalogus

CARGO DATA SYSTEMS BV

Opdracht 7a. Applicatiebouw 2014/2015

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Rodin installatiehandleiding (vanaf versie 2.1.xxx.x)

Wat is er veranderd in Prezi?

Installatie shortform Rodin.NET

SCSI INSTALLATIE. Bij een SCSI netwerk tussen bijvoorbeeld 2 BERT interfaces en 1 Harddisk. Terminator geen Terminator Terminator.

Introductie UNIX voor A2/PC

De CXTEX distributie. Intro. Taco Hoekwater VOORJAAR

WAVIX Installatie Handleiding

ITware maakt een directe verbinding met de database van uw webwinkel. Hiervoor Is een MySQL ODBC connector nodig, specifiek versie bit.

Analyse probleem remote execution

Git & RobotLib. Contents. De source is: ( )

Hoe te werken met Word en SmarTeam?

Overzicht. Tekstmanipulatie. Doel van de cursus. Doel van de cursus. Tekstmanipulatie: tekst automatisch bewerken en onderzoeken. Waarom Linux?

Correspondentie inzake overnemen of reproductie kunt u richten aan:

ModusOne. ModusOne MOT. Version: 5.2

ChainWise server randvoorwaarden

Replicator Backup-programma, om data automatisch op externe harde schijf te zetten, als backup.

TeXstudio: speciaal voor LaTEX starters

Zelftest Inleiding Programmeren

Intake <applicatie> Conclusie & Aanbevelingen. <Datum> 1.0. <Auteur> ###-#######

Knowledge Article. Vertrouwelijk: Nee

Hoe download en installeer ik de software 15.2? Lees voordat u begint dit document volledig door en sluit alle programma s af.

Introductie in C++ Jan van Rijn. September 2013

int getaantalpassagiers{): void setaantalpassagiers(int aantalpassagiers);

Het relaas van de beginnende programmeur. Het hoe en waarom van de assistent

Installatie handleiding KM3a-applicatie voor AutoCAD

Inleiding Practicum Operating Systems

Java. Basissyllabus. Egon Pas

Inhoudsopgave. Module 2 Geavanceerde formulieren

Joren Claus Tim Vanden Schrieck

Luut Stadman, Informatieanalist, Infrastructuur en Services, Nationaal Archief Wai Wong, Technisch Applicatiebeheerder, Ministerie van OCW

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

KeyLink B.V. KeyLink CTI Client Installation Manual - Dutch

De AVR Microcontroller programmeren met GCC

MA!N Installatiehandleiding

Stelling van de dag. Boeing maak de software Open Source! Hoort, zegt het voort!

16. Back-up en Restore

Studietaak 4 Hoe installeer ik software? Apache Webserver

Programma's installeren in Linux (toegespitst op Kanotix; Debian/sid)

INHOUDSOPGAVE Het Boekenwinkeltje Registreer.aspx Opgaven... 97

1. Introductie tot SPSS

Debian Package Management

Testen = Monitoren. Hoe de werkzaamheden van de boodschapper van de koning gaan veranderen. Datum: 30 April 2015

C O N F I G U R A T I E H A N D L E I D I N G G I S I B C A D

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

Installatie instructies

Plaatjes in LaTeX/MiKTeX

Herman Post MSX Computer & Club Magazine nummer 66 - maart / april 1994

Tekstmanipulatie. Week 1. Gosse Bouma 2007/2008. Informatiekunde Rijksuniversiteit Groningen

DataFlex 19.0 SQL Server

Transcriptie:

(GNU) make (Files) https://www.gnu.org/software/make/ https://git.martubbers.net/linuxnijmegen-make.git/ Mart Lubbers 1 1 mart@martlubbers.net 8 november 2016

Introductie Gebruik Geavanceerd Vragen

Table of Contents Introductie Gebruik Geavanceerd Vragen

Wat is make En wat is make niet... Wat is make niet?

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Wat is make?

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Een compiler Wat is make?

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Een compiler... Wat is make?

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Een compiler... Wat is make?

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Een compiler... Wat is make? Vrije software

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Een compiler... Wat is make? Vrije software Automatiseren van file creatie (en dus compilatie)

Wat is make En wat is make niet... Wat is make niet? Een scripttaal Een compiler... Wat is make? Vrije software Automatiseren van file creatie (en dus compilatie)...

Waarom zou ik make gebruiken en niet... Right tool for the job Platform onafhankelijkheid

Waarom zou ik make gebruiken en niet... Right tool for the job Platform onafhankelijkheid Platform onafhankelijkheid Alternatieven: cmake, ninja...

Inspiratie voor deze presentatie...... en verder leeswerk Mecklenburg, Robert. Managing projects with GNU make. O Reilly Media, Inc., 2004.

Voorbeeld makefile...... van deze presentatie DOC:=make LATEX?=pdflatex LATEXFLAGS?=-file-line-error -halt-on-error -no-shell-escape TEXS:=$(wildcard *.tex).phony: all clean.secondary: $(DOC).fmt all: $(DOC).pdf %.fmt: preamble.tex $(LATEX) $(LATEXFLAGS) -ini -jobname="$(basename $@)" "&$(LATEX) $<\ dump" %.pdf: %.tex %.fmt $(TEXS) $(LATEX) $(LATEXFLAGS) $< $(LATEX) $(LATEXFLAGS) $< clean: $(RM) $(addprefix $(DOC).,aux fmt log nav out pdf snm toc vrb) Listing 1: Makefile van deze presentatie

Table of Contents Introductie Gebruik Geavanceerd Vragen

Doelwitten en benodigdheden target: pre1 pre2... pren cmd1 cmd2... cmdm Listing 2: Skelet van een make regel make # Standaard target make target # Specifiek target make t1 t2 t3 # Meerdere targets make -C map # Voer make uit in een andere map make -B # Hercompileer alles, ongeacht of het nodig is make -f file # Voer make uit met een makefile die niet een # standaard naam heeft. make -n # Doe een dry run make -p # Print de hele database van (ingebouwde) regels. make -r # Gebruik geen ingebouwde regels. make -j N # Draai make met N threads. Listing 3: Aanroep van een make

Variabelen Declareren van variabelen NAAM:=frob NAAM=nic NAAM+=ator NAAM?=frobbel override L=variabele met 1 letter all: $(NAAM) touch $L

Variabelen Declareren van variabelen NAAM:=frob NAAM=nic NAAM+=ator NAAM?=frobbel override L=variabele met 1 letter all: $(NAAM) touch $L Veelgebruikte ingebouwde variabelen $@ target $< eerste prerequisite $? alle prerequisites nieuwer dan target $^ alle prerequisites zonder dubbelen $+ alle prerequisites $% naam van een archief file

Patronen en ingebouwde regels % %.o: %.c gcc -c -o $@ $< %.pdf: %.tex pdflatex $< a.out: %.cxx g++ $< Ingebouwd Vaak complex Je kan er op inhaken dmv standaard variabelen Maak ze zichtbaar met: $ make -p

Functies String functies $(filter pattern,text) $(filter-out pattern,text) $(subst search,replace,text) $(word n,text)) $(findstring string,text) Pad functies $(wildcard *.tex) $(dir text) $(addsuffix suffix,lijst) $(addprefix suffix,lijst) $(basename text) Andere functies $(shell date) $(if if,then,else) $(error text) $(foreach ident,lijst)

Table of Contents Introductie Gebruik Geavanceerd Vragen

vpath...... want niemand zet alles in één map Waar zoekt make je bestanden Huidige directory, $VPATH, vpath directive

vpath...... want niemand zet alles in één map Waar zoekt make je bestanden Huidige directory, $VPATH, vpath directive Aanbevolen is om te werken met vpath directive

vpath...... want niemand zet alles in één map Waar zoekt make je bestanden Huidige directory, $VPATH, vpath directive Aanbevolen is om te werken met vpath directive vpath %.c src vpath %.h src

Projectstructuur Makefile src/ frob.c nicator.c main.c include/ frob.h nicator.h vpath...... want niemand zet alles in één map Waar zoekt make je bestanden Huidige directory, $VPATH, vpath directive Aanbevolen is om te werken met vpath directive vpath %.c src vpath %.h src

Speciale targets.phony - Creeërt geen files.secondary - Tussenbestanden die niet verwijderd worden. (object files, fmt files)..intermediate - Tussenbestanden die verwijderd mogen worden..phony all.secondary b all: b b: a mv $< $@ a: a.c gcc $< -o $@ Listing 4: Speciale target syntax

Table of Contents Introductie Gebruik Geavanceerd Vragen

En nu verder... Werken met ar-chives Macro s Zelf functies maken Preprocessing met m4 autoconf autogen...

Vragen? $ man make https://www.gnu.org/software/make/manual/ Nu stellen...