Das GNU Build System Autotools Roman Leshchinsky David Schulz, Shaoke Wu.

Slides:



Advertisements
Similar presentations
C++ Development on Linux Agenda Introduction Editors Debuggers GUI IDEs Make Automake Exploring further.
Advertisements

DFS/SDD C. Izzo VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Carlo Izzo Using External Libraries.
Configuration management
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
BASIS Quick Start Guide by Andreas Schuh.  Introduction  Installing BASIS  Creating a New Project  Installing Your Project  Adding Executables 
Understanding Makefiles COMP 2400, Fall 2008 Prof. Chris GauthierDickey.
CS Lecture 11 Outline Compiling C programs using gcc Archiving modules Using Makefiles Debugging using gdb Assignment 3 discussion Lecture 111CS.
How to install CGAL Yuanzhen Wang. What is CGAL Computational Geometry Algorithms Library “Provide easy access to efficient and reliable geometric algorithms.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Linux Shells Dr. Michael L. Collard 1.
Input/Output Controller (IOC) Overview Andrew Johnson Computer Scientist, AES Controls Group.
SDD/DFS R. Palsa VLT 2 nd Generation Instrumentation Pipelines, 19 Apr Ralf Palsa CVS, GNU Build Tools & Coding Standards.
CCA Port, Component & Application Build Skeleton Templates “A new script toolkit for generating CCA build skeletons” Torsten Wilde and James Kohl Oak Ridge.
Software Tools and Processes Training and Discussion October 16, :00-4:30 p.m. Jim Willenbring.
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Lab 11 Department of Computer Science and Information Engineering National Taiwan University Lab11 - Porting 2014/12/9/ 26 1.
SQLCMD – A Better DBACCESS? Utility by Jonathan Leffler Presented by Joe Kennedy ( )
Programming Tools gcc make utility Open Source code Static and Shared Libraries gdb Memory debugging tools.
Makefiles. makefiles Problem: You are working on one part of a large programming project (e. g., MS Word).  It consists of hundreds of individual.cpp.
Configuration Management (CM)
Developing C/C++ applications with the Eclipse CDT David Gallardo.
Old Chapter 10: Programming Tools A Developer’s Candy Store.
Scons Writing Solid Code Overview What is scons? scons Basics Other cools scons stuff Resources.
Introduction to C Programming CE Lecture 7 Compiler options and makefiles.
Unix Programming Environment Part 1 – An Introduction to This Course Dept. of CSE, BUAA.
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
 Overview › Requirements › Proof of Principal › Issues … › First Step – Wrap Altera NIOS2 GNU Tools › Next Step – Build RTEMS/NIOS GNU Tools › Future.
M4 Macro-processing Language Geoffrey Sewell. What will be shown? What’s a macro processor? History of M4 Uses Autotools Syntax Hopefully, you all learn.
Macros Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See
RADE Project Generator. Outline Introduction Project Types Options Generator Files and Layout Source Control (Video 3 Min) Templates and Nifty Tools.
HW4: Due Nov 24th 23:59 1.Describe test cases to reach full path coverage of the triangle program by completing the path condition table below. Also, draw.
Linux development Lection What we gonna do today Root privileges Software packages Managing software packages Build procedures Build components.
Software structure and distribution How to share your code with the rest of the world Why it has to be… AA: Kurtis AB: YongChul
Milan, 15 June 2001WP1 Meeting - F. Donno1 GRID Packaging and Code Management for WP1 F. Donno INFN - Pisa.
INTRODUCTION TO AUTOCONF AND AUTOMAKE. GNU BUILD SYSTEM 1)GNU AUTOCONF 2)GNU AUTOMAKE 3)GNU LIBTOOL 4)GNU GETTEXT.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
Chapter Linux Basics. Acknowledgements This presentation was prepared by – Banyat Settapanich – Bahran Madaen This presentation will be updated later.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
 Prepared by: Eng. Maryam Adel Abdel-Hady
Wed Mar Michael Imamura / The GNU Autotools Your very own./configure.
MAY 18, 2016 BARRY SMITH MATHEMATICS AND COMPUTER SCIENCE DIVISION ARGONNE NATIONAL LABORATORY WEBINAR SERIES: COLLABORATION AMONG THE IDEAS SCIENTIFIC.
“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October.
CLHEP Infrastructure Improvements CHEP 2004 Lynn Garren, FNAL and Andreas Pfeiffer, CERN.
Lecture 6 UNIX Development Tools. Software Development Tools.
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
Fixing autotools-related build issues
Software development tools
Developing Portable Applications ● Introduction GNU autotools – GNU toolchain ● Goals - cross-platform ● Supported platforms (POSIX compliant) ● GNU autotools.
MaSH – Miniature Shell ● Brief introduction to shell. – What is a shell? ● A program that reads inputs from the keyboard and executes the commands. ● Basic.
A gentle introduction to Autotools The good, the bad and the ugly Kees-Jan Dijkzeul October 28 th, 2010.
Autoconf, Automake, and Libtool Tom Tromey. Copyright ● Copyright 2006 Tom Tromey ● Parts Copyright 2006 Alexandre Duret-Lutz ●
BASIS Quick Start Guide
Software Package development and management
The 500 builds of 300 applications in the HeLmod repository will at least get you started on a full suite of scientific applications Aaron Kitzmiller,
Editor, Compiler, Linker, Debugger, Makefiles
CMPE 152: Compiler Design ANTLR 4 and C++
LING 581: Advanced Computational Linguistics
Getting Started: Developing Code with Cloud9
Overview Unit testing Building Version control.
Kyle Fitzpatrick Konstantin Zak 11/29/2004
LING/C SC 581: Advanced Computational Linguistics
Build Tools Software Engineering SS 2007
Section 1: Linux Basics and SLES9 Installation
Preparation for Assignment 2
HW4: Concolic testing Busybox expr (due Nov 30 23:59)
HW4: Due Nov 22nd 23:59 Describe test cases to reach full path coverage of the triangle program by completing the path condition table below. Also,
Presentation transcript:

Das GNU Build System Autotools Roman Leshchinsky David Schulz, Shaoke Wu

History of autotools 1980s Multible variants of Unix Varios differences (even with POSIX) Familiarity for software developers with all differences -> more organized approach needed

Goal: Easy distribution of source code programs Source Code System V Linux BSD SolarisHP-UX AIX

History (2) 1992 Metaconfig, configure, GNU autoconf, Imake Building process in two steps Configuration - generates Makefile's build step – using UNIX make 1994 Autoconf solid framework But creation of large Makefile.in's nesseccary Automake was developed

Autoconf Konzept Probleme configure Konfigurat ion Computer Test Automatische Konfiguration von Programmen

Was macht autoconf Autoconf erzeugt configure Input: configure.ac (oder configure.in bei aelteren Versionen ) configure.ac enthaelt Aufruf von Makros Autoconf benutzt m4 aclocal.m4 definiert eigene Makros configure.in aclocla.m4 autoconf configure

Aufbau von configure.ac Reihenfolge egal AC_INIT Source-Katalog finden Kommando Zeilenargumente AC_OUTPUT Dateien generieren AC_INIT(helloworld.c)... AC_OUTPUT(Makefile)

Welche Tests gibt es? Programs Files Library Files Types System Services

./configure Optionen --prefix= --help: alle Optionen auflisten --version: autoconf Version anzeigen LDFLAGS: linker flags, e.g. -L CFLAGS C compiler flags Shell Umgebungsvariable:

Automake Goal: create Makefile.in Remove burden of Makefile maintenance from individual Developer (put it on automake maintainer) Input: Makefile.am Only make sence with autoconf Reads configure.in contents Needs perl (configure.in) Makefile.am automake Makefile.in

Makefile.am Easy to create by developer Syntax: prefix+primary Primarys: PROGRAMS, LIBRARIES, SCRIPTS Arbitrary code ## Automake comment bin_PROGRAMS = hello hello_SOURCES = hello.c hello.h SUBDIRS = src

Automake options --add-missing: create some files automaticly --copy: dont create links --foreign: lower strictness level --help: show options --verbose: show files being read --version: show automake version

Makefile.in Created by automake out of Makefile.am Makefile conforms with make syntax Tags to be substituted by configure script

Overview Create configure.ac and Makefile.am aclocal autoconf Automake --add-missing./configure make make install