Gstreamer Development on Windows and Faster Builds on All Platforms with the Meson Build

Total Page:16

File Type:pdf, Size:1020Kb

Gstreamer Development on Windows and Faster Builds on All Platforms with the Meson Build Nirbheek Chauhan (nirbheek on Twitter/IRC) GStreamer contributor since 2014 http://nirbheek.in nirbheek"centricu#ar.com nirbheek.chauhan"gmai#.com Centricular Ltd Nirbheek Chauhan (nirbheek on Twitter/IRC) GStreamer contributor since 2014 http://nirbheek.in nirbheek"centricu#ar.com nirbheek.chauhan"gmai#.com Centricular Ltd GStreamer de&elopment, (indows )aster bui#%s, al# platforms +eson bui#% s,stem Centricular Ltd 40 ,ears of bui#d systems GN- Make' GN- Autotools, Wa*' SCons, CMake' G,p … the #ist $oes on Centricular Ltd Centricular Ltd (0S: That graph is incomplete) #ibtoo#' con*i$!#t, con*i$!$uess' compi#e se%' tr' awk, $rep' insta##' coreuti#s Centricular Ltd Wh, do we sti## use .utotoo#s? Centricular Ltd Wh, do we sti## use .utotoo#s? $ du -sh gstreamer.git/configure 956K gstreamer.git/configure Centricular Ltd Centricular Ltd Wh, ha&e we been using .utotoo#s1 (Not rhetorica#) Centricular Ltd Wh, ha&e we been using .utotoo#s1 It works! Has serve% us we## so far Centricular Ltd Wh, ha&e we been using .utotoo#s1 Works out of the box on any 4inux %istro Cross-compi#ation Centricular Ltd Wh, ha&e we been using .utotoo#s1 )ami#iar system $tk-doc' %ocbook,$#ib-mkenums' $ettext' $ob6ect-introspection Centricular Ltd Wh, ha&e we been using .utotoo#s1 Conventions pk$5confi$' #ibrar, con&entions' etc! Centricular Ltd We nee% somethin$ better! Centricular Ltd Wh, do we need something better1 Technica# %ebt Macros that spit out +7s of she## Car$o Cult 0rogrammin$ Centricular Ltd Wh, do we need something better1 Ri%iculousl, slow Remember +Bs of she##1 10-20x slower on Win%ows & embe%%e% systems Centricular Ltd Wh, do we need something better1 9Cross5p#atform” support ... for the p#atforms of the 1970s an% 1980s Centricular Ltd $ grep -A 1 -e 197 configure # Use only awk features that work with 7th edition Unix awk (1978). # My, what an old awk you have, Mr. Solaris! Centricular Ltd Wh, do we need something better1 9Cross5p#atform” support Terrib#e experience on OS ? an% (in%ows Centricular Ltd Wh, do we need something better1 Terrib#e experience on OS ? an% (in%ows GN- &s BS@ MinG( &s C,$win Centricular Ltd Wh, do we need something better1 Terrib#e experience on OS ? an% (in%ows CanAt bui#% with native IDBs Centricular Ltd Wh, do we need something better1 Crapp, e3perience on Win%ows 9+inGW32 or MinGW64?” “MSES or MSES2?: 9m4.e3e crashes *or me” “make.exe han$s” Centricular Ltd Wh, do we need something better1 Crapp, e3perience on Win%ows 9Wh, %oes bui#%in$ a## of GStreamer take a *u## %a,1: Centricular Ltd Wh, do we need something better1 -nusab#e experience on Win%ows 9We use CFF exceptions” SG4G vs @W2EH vs SB2 Centricular Ltd Wh, do we need something better1 -nusab#e experience on Win%ows 9I want %ebu$ symbols in Hisua# Studio: @(.RF &s 0@7 Centricular Ltd Wh, do we need something better1 -nusab#e experience on Win%ows 9+, app#ication uses a symbo# server: Centricular Ltd Wh, do we need something better1 -nusab#e experience on Win%ows 9I want to bui#% ever,thin$ with MSVC: Centricular Ltd Wh, do we need something better1 -nusab#e experience on Win%ows 9I'&e a#ways %one %eve#opment insi%e Hisua# Stu%io: Centricular Ltd Wh, do we need something better1 -nusab#e experience on Win%ows 9Can I use GStreamer on Win%ows 0hone1: Centricular Ltd Wh, do we need something better1 >S ? e#ements #a$ behin% Win%ows e#ements use .0Is a%%e% in ?0 Centricular Ltd Wh, do we need something better1 The har%er it is to contribute The *ewer contributors ,ou wi## have Centricular Ltd We nee% somethin$ better! Centricular Ltd Wh, is there no alternati&e1 Centricular Ltd Wh, is there no alternati&e1 Technica# %ebt' Inertia Autotools was 9$ood enou$h: Centricular Ltd Wh, is there no alternati&e1 Apath,' Inertia 4inux users #ive in a *i#ter bubb#e Centricular Ltd Wh, is there no alternati&e1 Not se3, @i*ficult prob#em' #ots of work Centricular Ltd Well, now we have an alternati&e! Meson http://mesonbui#%.com Centricular Ltd +eson Generates Nin6a bui#% *i#es 2 ,ears of %eve#opment' 40 contributors Centricular Ltd $ cd gstreamer.git/ $ mkdir build-dir && cd build-dir $ meson .. $ ninja Centricular Ltd +eson .#wa,s bui#%s out-of-tree Auto-detects source code chan$es an% re-runs itse#* Centricular Ltd +eson Wh, %o we use it1 Centricular Ltd GStreamer ♥ +eson Centricular Ltd GStreamer ♥ +eson )ina##y a bui#% s,stem that %oes what we nee% Centricular Ltd GStreamer ♥ +eson pkg-con*i$ for e&er,thin$ Centricular Ltd GStreamer ♥ +eson $nome.mkenums() $nome!$enerateI$ir() $nome!$tk_doc()' !!! Centricular Ltd GStreamer ♥ +eson -seful cross-p#atform support Centricular Ltd GStreamer ♥ +eson )ewer %epen%encies @onAt nee% sh' m4, $rep' awk, tr' per#' coreuti#s, autocon*' automake' kitchen sink *or bui#%in$ Centricular Ltd GStreamer ♥ +eson )ewer %epen%encies 0,thon C' +eson' Nin6a F whatever actua##y bui#%s stuf* Centricular Ltd +eson ♥ 0#atforms 4inux, Win%ows' >S ?' BS@' iOS' An%roi% Inte$rate% Cross-compi#ation Centricular Ltd +eson ♥ Toolchains GCC' C#an$' MinG(' C,$win' +SHC Nin6a' MSBui#%' Hisua# Studio, ?Code Centricular Ltd GStreamer ♥ +eson Bver,thin$ bui#%s fasterJ Centricular Ltd +eson ♥ Spee% +a%e to be fast on first princip#es Written in 0ython' so coul% be even faster Centricular Ltd +eson ♥ Spee% Meson con*i$uration is fast Nin6a is faster Centricular Ltd GStreamer ♥ +eson (e porte% GStreamer to Meson Can’t $et an, c#oser to ‘en6oyment’ (when talking about bui#d s,stems) Centricular Ltd GStreamer ♥ +eson #ibffi' $#ib' orc' $streamer $st-p#ugins-base' $st-p#ugins-goo% $st-p#u$ins-ba%' $st-p#ugins-ug#,' $st-liba& $st-p,thon' $st5%evtoo#s' $st-e%itin$-ser&ices Centricular Ltd GStreamer ♥ +eson Bver,thin$ bui#%s fasterJ No *orkin$' no she##' no recursion Centricular Ltd +eson ♥ Spee% Autotools vs Meson M GCC on 4inux 64-bit, iNO4 gstreamer.git: 32s + 92s = 124s (~2 min) 3s + 67s = 70s → 44% faster Centricular Ltd +eson ♥ Spee% Autotools vs Meson M GCC on Win%ows 64-bit, iNO4 gstreamer.git: 165s + 475s = 640s (610 min) 5s + 55s = 60s → 1066% faster Centricular Ltd GStreamer ♥ +eson Sud%en#,!!! 7ui#%in$ on Win%ows %oesn’t take a %a,J Centricular Ltd GStreamer ♥ +eson Sud%en#,!!! 7ui#%in$ on embe%%e% %evices %oesn’t take 2 %a,s! Centricular Ltd GStreamer ♥ +eson New thin$s are possib#e Generate Hisua# Studio project fi#esJ Hisua# Studio %e&e#opment Centricular Ltd GStreamer ♥ +eson New thin$s are possib#e @ebu$ with Hisua# StudioJ Ful# support *or 0@B %ebu$ symbols Centricular Ltd GStreamer ♥ +eson .#ternative/para##e# bui#% s,stem *or $streamer Avai#ab#e in GStreamer 1.10 More work to %o on the port itse#* Centricular Ltd GStreamer ♥ +eson Some pro6ects ha&e a#rea%, move% to it 0iTiHi' $st-transco%er Centricular Ltd GStreamer ♥ +eson Tim an% Nirbheek 4inux support ✓ Win%ows support ✓ Centricular Ltd GStreamer ♥ +eson Tim' Nirbheek, an% youJ mac>S support ᴡɪᴘ i>S support ᴡɪᴘ An%roi% support ᴡɪᴘ Centricular Ltd The bi$$est reason we use +eson Centricular Ltd +eson ♥ GStreamer 4istens, un%erstan%s, a%apts Bugs have a#wa,s been we#comeJ Centricular Ltd +eson Wh, %o we use it1 ✓ Why shoul% you use it? Centricular Ltd +eson ♥ -sability Rea%ab#e bui#% *i#e synta3 0,thon-inspire% Centricular Ltd project!'myapp', 'c', version : '1.0'# mylib = library!'mylib', 'the-lib.c'% install : true% soversion : 1# executable!'myapp', 'the-app.c'% install : true% link_with : mylib% c_args : ['-DVER=' + meson.project_version!#># Centricular Ltd ... cdata = configuration_data!# cc = meson.get_compiler('c'# if cc.has_function!'poll'# cdata.set!'HAVE_POLL', 1# endif cdata.set!'HAVE_TIME_H', cc.has_header!'time.h'## configure_file(output : 'config.h'% configuration_data : cdata# ... Centricular Ltd meson --cross-info=info.txt [host_machine] system = 'windows' cpu_family = 7 "27 cpu = 7 "27 endian = 'little' [binaries] c = 'i686-w64-mingw32-gcc' cpp = 'i686-w64-mingw32-cpp' ar = 'i686-w64-mingw32-ar' strip = 'i686-w64-mingw32-strip' pkgconfig = 'pkg-config' exe_wrapper = 'wine' [properties] c_link_args = ['-DWINVER=0x0501', '-D_WIN32_WINNT=0x0501'] has_function_stpcpy = false Centricular Ltd +eson ♥ -sability From con*i$uration to bui#%in$ in one step In Autotools terms, automake + autoconf in one $o Centricular Ltd +eson ♥ -sability Not Turing-complete No macros, no *unction %efinitions, no in*inite #oops Centricular Ltd +eson ♥ -sability B3p#icit' For$ivin$' Bxtensib#e ;;P of thin$s work >>7' 1% are easy to *it Centricular Ltd +eson ♥ -sability Bxp#icit, )or$ivin$' Extensible Not a static p#atformJ Centricular Ltd +eson We think itAs the future Try it outJ Centricular Ltd Thanks for #istenin$J Centricular Ltd Questions? Centricular Ltd.
Recommended publications
  • Red Hat Enterprise Linux 6 Developer Guide
    Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Dave Brolley William Cohen Roland Grunberg Aldy Hernandez Karsten Hopp Jakub Jelinek Developer Guide Jeff Johnston Benjamin Kosnik Aleksander Kurtakov Chris Moller Phil Muldoon Andrew Overholt Charley Wang Kent Sebastian Red Hat Enterprise Linux 6 Developer Guide An introduction to application development tools in Red Hat Enterprise Linux 6 Edition 0 Author Dave Brolley [email protected] Author William Cohen [email protected] Author Roland Grunberg [email protected] Author Aldy Hernandez [email protected] Author Karsten Hopp [email protected] Author Jakub Jelinek [email protected] Author Jeff Johnston [email protected] Author Benjamin Kosnik [email protected] Author Aleksander Kurtakov [email protected] Author Chris Moller [email protected] Author Phil Muldoon [email protected] Author Andrew Overholt [email protected] Author Charley Wang [email protected] Author Kent Sebastian [email protected] Editor Don Domingo [email protected] Editor Jacquelynn East [email protected] Copyright © 2010 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
    [Show full text]
  • GNU Build System
    Maemo Diablo Reference Manual for maemo 4.1 GNU Build System December 22, 2008 Contents 1 GNU Build System 2 1.1 Introduction .............................. 2 1.2 GNU Make and Makefiles ...................... 2 1.2.1 Simplest Real Example .................... 3 1.2.2 Anatomy of Makefile ..................... 6 1.2.3 Default Goal .......................... 7 1.2.4 On Names of Makefiles ................... 7 1.2.5 Questions ........................... 8 1.2.6 Adding Make Goals ..................... 8 1.2.7 Making One Target at a Time ................ 9 1.2.8 PHONY Keyword ...................... 9 1.2.9 Specifying Default Goal ................... 10 1.2.10 Other Common Phony Goals ................ 11 1.2.11 Variables in Makefiles .................... 11 1.2.12 Variable Flavors ........................ 11 1.2.13 Recursive Variables ...................... 12 1.2.14 Simple Variables ....................... 13 1.2.15 Automatic Variables ..................... 14 1.2.16 Integrating with Pkg-Config ................ 15 1.3 GNU Autotools ............................ 16 1.3.1 Brief History of Managing Portability ........... 17 1.3.2 GNU Autoconf ........................ 18 1.3.3 Substitutions ......................... 22 1.3.4 Introducing Automake .................... 24 1.3.5 Checking for Distribution Sanity .............. 29 1.3.6 Cleaning up .......................... 29 1.3.7 Integration with Pkg-Config ................ 30 1 Chapter 1 GNU Build System 1.1 Introduction The following code examples are used in this chapter: simple-make-files • autoconf-automake • 1.2 GNU Make and Makefiles The make program from the GNU project is a powerful tool to aid implementing automation in the software building process. Beside this, it can be used to automate any task that uses files and in which these files are transformed into some other form.
    [Show full text]
  • Running Windows Programs on Ubuntu with Wine Wine Importer Shanna Korby, Fotolia
    KNoW-HoW Wine Running Windows programs on Ubuntu with Wine Wine importer Shanna Korby, Fotolia Korby, Shanna Users who move from Windows to Ubuntu often miss some of their favorite programs and games. Wouldn’t it be practical to run Windows applications on the free Ubuntu operating system? Time for a little taste of Wine. BY TIM SCHÜRMANN any Ubuntu migrants miss to develop something similar for Linux. Box or VMware, Wine does not emulate games and graphics programs A short while later, the first version of a whole PC and thus cannot be consid- Msuch as CorelDRAW or prod- Wine was released. Today, more than ered a real emulator. This also explains ucts such as Adobe Photoshop. The only 300 volunteer programmers from all over the name Wine, which means Wine Is solution is to install Windows parallel to the world continue to contribute to the Not an Emulator. Ubuntu – or try Wine, which tricks ap- Wine project. Because of the way Wine works, it of- plications into believing they are run- fers a number of advantages. Chiefly, ning on a Windows system. What’s in a Name? you do not need an expensive Windows The history of Wine goes back to the To run Windows programs on Ubuntu, license. Programs will run almost as fast year 1993. At the time, Sun developed a Wine uses a fairly complex trick: It sits as on the Redmond operating system, small tool to run Windows applications between the Windows application and and windows behave as if they belong on its own Solaris operating system, Ubuntu like a simultaneous interpreter.
    [Show full text]
  • Introduction to Containers
    Introduction to Containers Martin Čuma Center for High Performance Computing University of Utah [email protected] Overview • Why do we want to use containers? • Containers basics • Prepare your computer for containers • Build and deploy a container • Containers for complex software • https://www.surveymonkey.com/r/RDMBHMS 10/31/2017 http://www.chpc.utah.edu Slide 2 Hands on setup 1. Download the talk slides http://home.chpc.utah.edu/~mcuma/chpc/Containers17.pdf https://tinyurl.com/y8v44z95 2. If you have CHPC account, using terminal application (Mac terminal, PuTTY, GIT Shell) – ssh [email protected] 3. Make sure you can see singularity – which singularity 4. Make sure you can sudo singularity command – sudo singularity –version OR – if you don’t have CHPC account, use Singularity on your laptop 10/31/2017 http://www.chpc.utah.edu Slide 3 Why to use containers? 10/31/2017 http://www.chpc.utah.edu Slide 4 Software dependencies • Some programs require complex software environments – OS type and versions – Drivers – Compiler type and versions – Software dependencies • Python/R/MATLAB versions • glibc, stdlibc++ versions • Other libraries and executables • Python/R libraries 10/31/2017 http://www.chpc.utah.edu Slide 5 Reproducible research • Research outputs include software and data • Software reproducibility – Software repositories (svn, git) – Good but often software has dependencies • Data reproducibility – Data as publication supplementary info, centralized repositories (NCBI), … – Disconnected from the production environment
    [Show full text]
  • ** OPEN SOURCE LIBRARIES USED in Tv.Verizon.Com/Watch
    ** OPEN SOURCE LIBRARIES USED IN tv.verizon.com/watch ------------------------------------------------------------ 02/27/2019 tv.verizon.com/watch uses Node.js 6.4 on the server side and React.js on the client- side. Both are Javascript frameworks. Below are the licenses and a list of the JS libraries being used. ** NODE.JS 6.4 ------------------------------------------------------------ https://github.com/nodejs/node/blob/master/LICENSE Node.js is licensed for use as follows: """ Copyright Node.js contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ This license applies to parts of Node.js originating from the https://github.com/joyent/node repository: """ Copyright Joyent, Inc. and other Node contributors.
    [Show full text]
  • Glocal Forum Presentation
    GLOCAL FORUM PRESENTATION UN HABITAT EXPERT GROUP MEETING ON STRATEGIES FOR CREATING URBAN YOUTH EMPLOYMENT : Solution for Urban Youth in Africa I - Glocal Forum experience on youth and governance 1. Glocal Forum The Glocal Forum is a Non-Governmental Organization created in 2001 working for a new balance between global and local forces by emphasizing the central role of cities in the world. Our vision, glocalization, is an innovative strategy focusing on global issues by empowering local communities. It is a reform of globalization that encourages global powers to have a broader respect for local powers and cultural diversity. Led by its president, Ambassador Uri Savir, the Glocal Forum promotes peacebuilding and development activities through city-to-city relationships, youth empowerment and information communication technology. The Glocal Forum believes that cities have a central role in international relations and that mayors are poised to become the new diplomats of our world. City leaders have the advantage of mobilizing the good will, energy and expertise of their civil societies to contribute to peaceful dialogue and cultural exchange. The organization supports city-to-city networks by connecting them to the resources of the private and public sector. The Glocal Forum utilizes this global coalition of international organizations and private sector companies to harness resources and address local needs. A primary goal of city-to-city cooperation is to build an environment in which divisions caused by conflict and hatred can be bridged with harmony and coexistence. The Glocal Forum uses the city- to-city model as a fresh approach to brokering peace in the Middle East.
    [Show full text]
  • Sdruno (Extio) on Linux Using Wine 4.0 on Ubuntu 16.04 a Guide Put Together by the Community
    SDRuno (ExtIO) on Linux using Wine 4.0 on Ubuntu 16.04 A Guide Put Together by The Community The following procedure outlines the approach used to get the ExtIO version of SDRuno running under Wine within a Linux environment. This was pulled together as a result of the efforts of various individuals on the SDRplay forum and we have found that it works on Ubuntu 16.04. Please note the following: • This is for x86 platforms ONLY and will not work on ARM systems • If you have little or no experience with Linux, this is not recommended. Linux is in our view, not for the inexperienced or faint-hearted users. • This is NOT an ‘official’ SDRplay flow. We will not be providing ANY support for users who try this and have problems. We recommend that if you are having problems that you reach out via our community forum and hopefully the people that figured this out will be in a better position to advise you. • This flow also works for HDSDR. It may also work for SDR# or any other Windows applications that use the RTL_TCP interface or the ExtIO interface. • This will NOT work with the main version of SDRuno (non ExtIO version) at present, but we hope that we will be able to provide hooks in the future so that it will. • This does not diminish our commitment to develop a fully-fledged native Linux version of SDRuno as part of our cross-platform development program. This is intended to open more options for dedicated Linux users.
    [Show full text]
  • The Glib/GTK+ Development Platform
    The GLib/GTK+ Development Platform A Getting Started Guide Version 0.8 Sébastien Wilmet March 29, 2019 Contents 1 Introduction 3 1.1 License . 3 1.2 Financial Support . 3 1.3 Todo List for this Book and a Quick 2019 Update . 4 1.4 What is GLib and GTK+? . 4 1.5 The GNOME Desktop . 5 1.6 Prerequisites . 6 1.7 Why and When Using the C Language? . 7 1.7.1 Separate the Backend from the Frontend . 7 1.7.2 Other Aspects to Keep in Mind . 8 1.8 Learning Path . 9 1.9 The Development Environment . 10 1.10 Acknowledgments . 10 I GLib, the Core Library 11 2 GLib, the Core Library 12 2.1 Basics . 13 2.1.1 Type Definitions . 13 2.1.2 Frequently Used Macros . 13 2.1.3 Debugging Macros . 14 2.1.4 Memory . 16 2.1.5 String Handling . 18 2.2 Data Structures . 20 2.2.1 Lists . 20 2.2.2 Trees . 24 2.2.3 Hash Tables . 29 2.3 The Main Event Loop . 31 2.4 Other Features . 33 II Object-Oriented Programming in C 35 3 Semi-Object-Oriented Programming in C 37 3.1 Header Example . 37 3.1.1 Project Namespace . 37 3.1.2 Class Namespace . 39 3.1.3 Lowercase, Uppercase or CamelCase? . 39 3.1.4 Include Guard . 39 3.1.5 C++ Support . 39 1 3.1.6 #include . 39 3.1.7 Type Definition . 40 3.1.8 Object Constructor . 40 3.1.9 Object Destructor .
    [Show full text]
  • Using GNU Autotools to Manage a “Minimal Project”
    05AAL Ch 04 9/12/00 10:14 AM Page 21 4 Using GNU Autotools to Manage a “Minimal Project” This chapter describes how to manage a minimal project using the GNU Autotools. For this discussion, a minimal project refers to the smallest possible project that can still illustrate a sufficient number of principles related to using the tools. Studying a smaller project makes it easier to understand the more complex interactions between these tools when larger projects require advanced features. The example project used throughout this chapter is a fictitious command interpreter called ‘foonly’. ‘foonly’ is written in C, but like many interpreters, uses a lexical analyzer and a parser expressed using the lex and yacc tools. The package is developed to adhere to the GNU ‘Makefile’ standard, which is the default behavior for Automake. This project does not use many features of the GNU Autotools. The most note- worthy one is libraries; this package does not produce any libraries of its own, so Libtool does not feature them in this chapter. The more complex projects presented in Chapter 7, “A Small GNU Autotools Project” and Chapter 11, “A Large GNU Autotools Project” illustrate how Libtool participates in the build system. The essence of this chapter is to provide a high-level overview of the user-written files and how they interact. 4.1 User-Provided Input Files The smallest project requires the user to provide only two files. The GNU Autotools generate the remainder of the files needed to build the package are in Section 4.2, “Generated Output Files.”
    [Show full text]
  • The Starlink Build System SSN/78.1 —Abstract I
    SSN/78.1 Starlink Project Starlink System Note 78.1 Norman Gray, Peter W Draper, Mark B Taylor, Steven E Rankin 11 April 2005 Copyright 2004-5, Council for the Central Laboratory of the Research Councils Copyright 2007, Particle Physics and Astronomy Research Council Copyright 2007, Science and Technology Facilities Council The Starlink Build System SSN/78.1 —Abstract i Abstract This document provides an introduction to the Starlink build system. It describes how to use the Starlink versions of the GNU autotools (autoconf, automake and libtool), how to build the software set from a checkout, how to add and configure new components, and acts as a reference manual for the Starlink-specific autoconf macros and Starlink automake features. It does not describe the management of the CVS repository in detail, nor any other source maintainance patterns. It should be read in conjunction with the detailed build instructions in the README file at the top of the source tree (which takes precedence over any instructions in this document, though there should be no major disagreements), and with sun248, which additionally includes platform-specific notes. Copyright 2004-5, Council for the Central Laboratory of the Research Councils Copyright 2007, Particle Physics and Astronomy Research Council Copyright 2007, Science and Technology Facilities Council ii SSN/78.1—Contents Contents 1 Introduction 1 1.1 Quick entry-points . 2 2 Tools 3 2.1 Overview of the Autotools . 3 2.1.1 Autoconf . 5 2.1.2 Automake . 9 2.1.3 Libtool . 13 2.1.4 Autoreconf: why you don’t need to know about aclocal .
    [Show full text]
  • Guile-Gnome-Gstreamer.Pdf
    Guile-GNOME: GStreamer version 0.9.92, updated 10 November 2007 Wim Taymans many others This manual is for (gnome gstreamer) (version 0.9.92, updated 10 November 2007) Copyright 2000-2007 Wim Taymans and others Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 or any later version published by the Free Software Foundation. i Short Contents 1 Overview :::::::::::::::::::::::::::::::::::::::::::: 1 2 GstBin :::::::::::::::::::::::::::::::::::::::::::::: 2 3 GstBuffer:::::::::::::::::::::::::::::::::::::::::::: 8 4 GstBus::::::::::::::::::::::::::::::::::::::::::::: 13 5 GstCaps:::::::::::::::::::::::::::::::::::::::::::: 18 6 GstChildProxy :::::::::::::::::::::::::::::::::::::: 24 7 GstClock ::::::::::::::::::::::::::::::::::::::::::: 26 8 gstconfig ::::::::::::::::::::::::::::::::::::::::::: 33 9 GstElementFactory ::::::::::::::::::::::::::::::::::: 34 10 GstElement ::::::::::::::::::::::::::::::::::::::::: 37 11 GstGError :::::::::::::::::::::::::::::::::::::::::: 53 12 GstEvent ::::::::::::::::::::::::::::::::::::::::::: 55 13 GstFilter ::::::::::::::::::::::::::::::::::::::::::: 63 14 GstFormat :::::::::::::::::::::::::::::::::::::::::: 64 15 GstGhostPad:::::::::::::::::::::::::::::::::::::::: 66 16 GstImplementsInterface ::::::::::::::::::::::::::::::: 68 17 GstIndexFactory ::::::::::::::::::::::::::::::::::::: 69 18 GstIndex ::::::::::::::::::::::::::::::::::::::::::: 70 19 GstInfo :::::::::::::::::::::::::::::::::::::::::::: 74 20 GstIterator :::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Oracle® Secure Global Desktop Platform Support and Release Notes for Release 5.2
    Oracle® Secure Global Desktop Platform Support and Release Notes for Release 5.2 April 2015 E51729-03 Oracle Legal Notices Copyright © 2015, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
    [Show full text]