Autotools: an Overview
Total Page:16
File Type:pdf, Size:1020Kb
Autotools: An Overview Autotools: An Overview Danny Robson 2014-09-24 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf Autotools: An Overview automake pkg-config Final Words Danny Robson 2014-09-24 Autotools: An Overview About Me Performance systems programming About Me C, C++ Linux GNU autotools Self-taught. Slowly. caveat emptor About Me Ask lots of questions 2014-09-24 Autotools: An Overview Danny Robson Overview Performance systems programming Autotools C, C++ autoconf Linux automake GNU pkg-config autotools Final Words Self-taught. Slowly. caveat emptor Ask lots of questions Autotools: An Overview About Me Performance systems programming About Me C, C++ Linux GNU autotools Self-taught. Slowly. caveat emptor About Me Ask lots of questions 2014-09-24 Autotools: An Overview Danny Robson Overview Performance systems programming Autotools C, C++ autoconf Linux automake GNU pkg-config autotools Final Words Self-taught. Slowly. caveat emptor Ask lots of questions Autotools: An Overview About Me Performance systems programming About Me C, C++ Linux GNU autotools Self-taught. Slowly. caveat emptor About Me Ask lots of questions 2014-09-24 Autotools: An Overview Danny Robson Overview Performance systems programming Autotools C, C++ autoconf Linux automake GNU pkg-config autotools Final Words Self-taught. Slowly. caveat emptor Ask lots of questions Autotools: An Overview What You're In For 1 Overview What You're In For 2 Autotools 3 autoconf What You're In For 4 automake 5 pkg-config 2014-09-24 6 Final Words Autotools: An Overview Danny Robson 1 Overview Overview Autotools 2 Autotools autoconf automake 3 pkg-config autoconf Final Words 4 automake 5 pkg-config 6 Final Words Autotools: An Overview Overview Section 1 Overview 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf Section 1 automake pkg-config Final Words Overview Autotools: An Overview Build automation Overview Build automation Automate for consistency, tedium: compilation packaging Build automation testing 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf Automate for consistency, tedium: automake compilation pkg-config packaging Final Words testing Autotools: An Overview Prominent Systems Overview Prominent Systems make bjam, SCons, Waf autotools CMake, gyp, premake Prominent Systems Many IDEs: Visual Studio, Eclipse, Netbeans, ... 2014-09-24 Autotools: An Overview Danny Robson • manual dependencies Overview • replicate existing functionality Autotools autoconf make automake bjam, SCons, Waf pkg-config autotools Final Words CMake, gyp, premake Many IDEs: Visual Studio, Eclipse, Netbeans, ... Autotools: An Overview Prominent Systems Overview Prominent Systems make bjam, SCons, Waf autotools CMake, gyp, premake Prominent Systems Many IDEs: Visual Studio, Eclipse, Netbeans, ... 2014-09-24 Autotools: An Overview Danny Robson • build your own systems Overview • less well known and supported Autotools make • many similar flaws autoconf automake bjam, SCons, Waf { speed pkg-config autotools { complexity Final Words { systems supported CMake, gyp, premake Many IDEs: Visual Studio, Eclipse, Netbeans, ... Autotools: An Overview Prominent Systems Overview Prominent Systems make bjam, SCons, Waf autotools CMake, gyp, premake Prominent Systems Many IDEs: Visual Studio, Eclipse, Netbeans, ... 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf make automake bjam, SCons, Waf pkg-config autotools Final Words CMake, gyp, premake Many IDEs: Visual Studio, Eclipse, Netbeans, ... Autotools: An Overview Prominent Systems Overview Prominent Systems make bjam, SCons, Waf autotools CMake, gyp, premake Prominent Systems Many IDEs: Visual Studio, Eclipse, Netbeans, ... 2014-09-24 Autotools: An Overview Danny Robson • Multiple target backends Overview • Newer languages Autotools make • Faster backends: ninja autoconf automake bjam, SCons, Waf • IDE backends, useful for Windows pkg-config autotools Final Words CMake, gyp, premake Many IDEs: Visual Studio, Eclipse, Netbeans, ... Autotools: An Overview Prominent Systems Overview Prominent Systems make bjam, SCons, Waf autotools CMake, gyp, premake Prominent Systems Many IDEs: Visual Studio, Eclipse, Netbeans, ... 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf make automake bjam, SCons, Waf pkg-config autotools Final Words CMake, gyp, premake Many IDEs: Visual Studio, Eclipse, Netbeans, ... Autotools: An Overview Why autotools Overview Why autotools Features for downstream VPATH, DESTDIR, standard targets, config.site, cross compilation, ... Portability Why autotools Just works: configure && make && make install 2014-09-24 Autotools: An Overview Danny Robson • More platforms than you have access to Overview • Will just work everywhere, solved problems already Autotools autoconf Features for downstream automake VPATH, DESTDIR, standard targets, config.site, cross pkg-config compilation, ... Final Words Portability Just works: configure && make && make install Autotools: An Overview Why autotools Overview Why autotools Features for downstream VPATH, DESTDIR, standard targets, config.site, cross compilation, ... Portability Why autotools Just works: configure && make && make install 2014-09-24 Autotools: An Overview Danny Robson • More platforms than you have access to Overview • Will just work everywhere, solved problems already Autotools autoconf Features for downstream automake VPATH, DESTDIR, standard targets, config.site, cross pkg-config compilation, ... Final Words Portability Just works: configure && make && make install Autotools: An Overview Why autotools Overview Why autotools Features for downstream VPATH, DESTDIR, standard targets, config.site, cross compilation, ... Portability Why autotools Just works: configure && make && make install 2014-09-24 Autotools: An Overview Danny Robson • More platforms than you have access to Overview • Will just work everywhere, solved problems already Autotools autoconf Features for downstream automake VPATH, DESTDIR, standard targets, config.site, cross pkg-config compilation, ... Final Words Portability Just works: configure && make && make install Autotools: An Overview Why not autotools Overview Why not autotools Targets UNIX systems Error prone in IDE heavy development Why not autotools Archaic toolsets 2014-09-24 Autotools: An Overview Danny Robson • Windows support is possible, but painful. Overview • IDE integration is error prone, manual syncing is common Autotools • 70s tools autoconf automake Targets UNIX systems • 90s framework pkg-config Error prone in IDE heavy development • What Year Is It Final Words Archaic toolsets Autotools: An Overview Why not autotools Overview Why not autotools Targets UNIX systems Error prone in IDE heavy development Why not autotools Archaic toolsets 2014-09-24 Autotools: An Overview Danny Robson • Windows support is possible, but painful. Overview • IDE integration is error prone, manual syncing is common Autotools • 70s tools autoconf automake Targets UNIX systems • 90s framework pkg-config Error prone in IDE heavy development • What Year Is It Final Words Archaic toolsets Autotools: An Overview Why not autotools Overview Why not autotools Targets UNIX systems Error prone in IDE heavy development Why not autotools Archaic toolsets 2014-09-24 Autotools: An Overview Danny Robson • Windows support is possible, but painful. Overview • IDE integration is error prone, manual syncing is common Autotools • 70s tools autoconf automake Targets UNIX systems • 90s framework pkg-config Error prone in IDE heavy development • What Year Is It Final Words Archaic toolsets Autotools: An Overview Overview 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf automake pkg-config Final Words Autotools: An Overview Autotools Section 2 Autotools 2014-09-24 Autotools: An Overview Danny Robson Overview Autotools autoconf Section 2 automake pkg-config Final Words Autotools Autotools: An Overview Philosophy Autotools Philosophy UNIX focused Extreme portability Probe, don't ask Philosophy Convention 2014-09-24 Autotools: An Overview Danny Robson • Probe avoids out of date tables, allows hacked systems Overview • GNITS, foreign. README, NEWS, COPYING, ... targets. Autotools autoconf UNIX focused automake Extreme portability pkg-config Final Words Probe, don't ask Convention Autotools: An Overview Language Support Autotools Language Support Primarily geared towards systems languages. C, C++, Objective-C, Fortran lex, yacc Erlang Language Support Lisp, Python, Java 2014-09-24 Autotools: An Overview Danny Robson • Java via gcj Overview • Scripts more suited to own tools Autotools Primarily geared towards systems languages. • Erlang... autoconf automake C, C++, Objective-C, Fortran pkg-config lex, yacc Final Words Erlang Lisp, Python, Java Autotools: An Overview Language Support Autotools Language Support Primarily geared towards systems languages. C, C++, Objective-C, Fortran lex, yacc Erlang Language Support Lisp, Python, Java 2014-09-24 Autotools: An Overview Danny Robson • Java via gcj Overview • Scripts more suited to own tools Autotools Primarily geared towards systems languages. • Erlang... autoconf automake C, C++, Objective-C, Fortran pkg-config lex, yacc Final Words Erlang Lisp, Python, Java Autotools: An Overview Language Support Autotools Language Support Primarily geared towards systems languages. C, C++, Objective-C, Fortran lex, yacc Erlang Language Support Lisp, Python, Java 2014-09-24 Autotools: An Overview Danny Robson • Java via gcj Overview • Scripts more