Buildsystems and What the Heck for We Actually Use the Autotools

Total Page:16

File Type:pdf, Size:1020Kb

Buildsystems and What the Heck for We Actually Use the Autotools Buildsystems and what the heck for we actually use the autotools Tom´aˇsChv´atal SUSE Packagers team 2013/07/19 Introduction Who the hell is Tom´aˇsChv´atal • SUSE Employee since 2011 - Team lead of packagers team • Packager of Libreoffice and various other stuff for openSUSE • openSUSE promoter and volunteer • Gentoo developer since fall 2008 3 of 37 Autotools process Complete autotools process 5 of 37 Make Why not just a sh script? Always recompiling everything is a waste of time and CPU power 7 of 37 Plain makefile example CC ?= @CC@ CFLAGS ?= @CFLAGS@ PROGRAM = examplebinary OBJ = main.o parser.o output.o $ (PROGRRAM) : $ (OBJ) $ (CC) $ (LDFLAGS) −o $@ $^ main.o: main.c common.h parser.o: parser.c common.h output.o: output.c common.h setup.h i n s t a l l : $ (PROGRAM) # You have to use tabs here $(INSTALL) $(PROGRAM) $(BINDIR) c l e a n : $ (RM) $ (OBJ) 8 of 37 Variables in Makefiles • Variables expanded using $(), ie $(VAR) • Variables are assigned like in sh, ie VAR=value • $@ current target • $<the first dependent file • $^all dependent files 9 of 37 Well nice, but why autotools then • Makefiles can get complex fast (really unreadable) • Lots of details to keep in mind when writing, small mistakes happen fast • Does not make dependencies between targets really easier • Automake gives you automatic tarball creation (make distcheck) 10 of 37 Autotools Simplified autotools process 12 of 37 Autoconf/configure sample AC INIT(example , 0.1, [email protected]) AC CONFIG HEADER([ config .h]) AC PROG C AC PROG CPP AC PROG INSTALL AC HEADER STDC AC CHECK HEADERS([string.h unistd.h limits.h]) AC CONFIG FILES([ Makefile doc/Makefile src/Makefile]) AC OUTPUT 13 of 37 Autoconf syntax • The M4 syntax is quite weird on the first read • It is not interpreted, it is text substitution machine • Lots of quoting is needed, if in doubt add more [] • Everything that does or might contain whitespace or commas has to be quoted • Custom autoconf M4 macros are almost unreadable 14 of 37 Automake bin PROGRAMS = examplebinary examplebinary SOURCES = n s r c /main . c n src/parser.c n src/output.c n src/setup.c noinst HEADERS = src/common.h src/setup.h 15 of 37 Basic rules • Always use just one Makefile.am in root folder • All files that are to be distributed must be added to relevant parts or EXTRA DIST • Always run make distcheck to verify your package really works • Use check BINARIES/etc. to have test phase 16 of 37 Variables for automake - SUFFIXES • PROGRAMS • LIBRARIES DO NOT USE go for LTLIBRARIES • SCRIPTS • SOURCES • HEADERS • OBJECTS • DATA • LDADD 17 of 37 Variables for automake - PREFIXES • bin will be installed to bindir • sbin will be installed to sbindir • lib will be installed to libdir • noinst will not be installed • EXTRA will be packaged upon make dist • check used only for make check 18 of 37 Libtool Libtool versioning • Start with version information of `0:0:0' for each libtool library • If the library source code has changed at all since the last update, then increment revision (`c:r:a' becomes `c:r+1:a') • If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0 • If any interfaces have been added since the last public release, then increment age • If any interfaces have been removed or changed since the last public release, then set age to 0 20 of 37 configure.ac changes LT VERSION=m4 esyscmd([./ version .sh −v ] ) LT INIT([ disable −s t a t i c pic −o n l y ] ) AC PROG LIBTOOL 21 of 37 Makefile.am changes lib LTLIBRARIES = libexample.la libexample la SOURCES = n src/something.c n src/somethingelse.c n src/whatever.c libexample la CFLAGS = n $ (MYEXTERNALPACKAGE CFLAGS) libexample la LDFLAGS = n $ (MYEXTERNALPACKAGE LIBS) n −v e r s i o n −i n f o $ (LT VERSION) n −export −symbols−r e g e x '^ foo ' 22 of 37 Autotools and windows Initial thoughts • Well for multiplatform support you can count on autotools on any UNIX-ish system • On windows you have to use cygwin/mingw • Per above you will spent bit of time getting that running • You have to write yourself the .rc or rc.in file to be processed by cmake (see librevenge/etc.) 24 of 37 Changes for configure.ac AC MSG CHECKING([ for native Win32]) AS CASE([ $host] , [∗−∗−mingw ∗ ],[ n a t i v e w i n 3 2=y e s BINARY WIN32 RESOURCE=binary−win32res.lo AC CHECK TOOL(WINDRES, w i n d r e s ) ],[ n a t i v e w i n 3 2=no BINARY WIN32 RESOURCE= ] ) # Ensure compat with MSVC AS IF([test "x$native win32" = "xyes"], [ AC CHECK TOOL(WINDRES, w i n d r e s ) AS IF([test x"$GCC" = xyes], [ AC MSG CHECKING ( [ how to g e t MSVC−compatible struct packing]) AS IF ( [ t e s t −z " $ a c c v p r o g CC"],[ o u r g c c="$CC" ],[ o u r g c c="$ a c c v p r o g CC" ]) AS IF ( [ $ o u r g c c −v −−h e l p 2>/dev / n u l l j grep ms−b i t f i e l d s >/dev/null], [ m s n a t i v e s t r u c t="−mms−b i t f i e l d s " CFLAGS="$CFLAGS $ m s n a t i v e s t r u c t " CXXFLAGS="$CXXFLAGS $ m s n a t i v e s t r u c t " AC MSG RESULT ( [ $f m s n a t i v e s t r u c t g ]) ],[ AC MSG RESULT ( [ no way ] ) 25 of 37 AC MSG WARN([produced libraries might be incompatible with MSVC−compiled code]) ]) ]) ]) Changes for Makefile.am bin PROGRAMS = examplebinary examplebinary SOURCES = n s r c / main . c n src/parser.c n src/output.c n src/setup.c examplebinary LDADD = n $ ( OTHER LIBS ) n @BINARY WIN32 RESOURCE@ noinst HEADERS = src/common.h src/setup.h i f OS WIN32 @BINARY WIN32 RESOURCE@ : examplebinary.rc $(examplebinary OBJECTS) chmod +x $(top srcdir)/build/∗ compile−r e s o u r c e && n WINDRES=@WINDRES@ $ ( t o p srcdir)/build/lt −compile−resource examplebinary.rc @BINARY WIN32 RESOURCE@ e n d i f 26 of 37 Additional points for Makefile.am • Always pass -avoid-version to libtool • Remember to add the resource file to DEPENDENCIES • Script to compile the .lo files https://github.com/AbiWord/enchant/blob/master/lt-compile- resource 27 of 37 Autotools usability • Not hard as people are led to believe -> you can deploy it unless your files are too messy • It, because of mingw, produces slower binaries than MSVC • Most people are fine with it, but if not use Visual Studio project file and be done • For .rc files you usualy have to use some shellscript as libtool has no clue 28 of 37 CMake What are the benefits? • No libtool! • Multiplatform generator for free Mac/Win/Linux... • Can swap make for ninja 30 of 37 Any disadvantages? • FindBLA.cmake are sometimes pretty crappy • If you rely on just .pc files you loose multiplatformity • Can get unreadable fast • Conflicting guides online, fine when you have someone to ask • Distribution archive generator using CPack confuse many people 31 of 37 CMake example cmake minimum required(VERSION 2.8) project(example C) set (Example VERSION MAJOR 0) set (Example VERSION MINOR 1) s e t ( src EXAMPLE s r c /main . c src/parser.c src/output.c src/setup.c src/common.h src/setup.h ) a d d executable(examplebinary $fsrc EXAMPLE g) i n s t a l l (TARGETS e x a m p l e b i n a r y DESTINATION b i n ) 32 of 37 CPack example include (InstallRequiredSystemLibraries) s e t ( CPACK RESOURCE FILE LICENSE "$fCMAKE CURRENT SOURCE DIRg/LICENSE ") s e t (CPACK PACKAGE VERSION MAJOR "$fTutorial VERSION MAJOR g") s e t (CPACK PACKAGE VERSION MINOR "$fTutorial VERSION MINOR g") include (CPack) 33 of 37 Reading Reading 35 of 37 Endnote Thanks Thank you for your attention. 37 of 37.
Recommended publications
  • Cygwin User's Guide
    Cygwin User’s Guide Cygwin User’s Guide ii Copyright © Cygwin authors Permission is granted to make and distribute verbatim copies of this documentation provided the copyright notice and this per- mission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this documentation under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this documentation into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. Cygwin User’s Guide iii Contents 1 Cygwin Overview 1 1.1 What is it? . .1 1.2 Quick Start Guide for those more experienced with Windows . .1 1.3 Quick Start Guide for those more experienced with UNIX . .1 1.4 Are the Cygwin tools free software? . .2 1.5 A brief history of the Cygwin project . .2 1.6 Highlights of Cygwin Functionality . .3 1.6.1 Introduction . .3 1.6.2 Permissions and Security . .3 1.6.3 File Access . .3 1.6.4 Text Mode vs. Binary Mode . .4 1.6.5 ANSI C Library . .4 1.6.6 Process Creation . .5 1.6.6.1 Problems with process creation . .5 1.6.7 Signals . .6 1.6.8 Sockets . .6 1.6.9 Select . .7 1.7 What’s new and what changed in Cygwin . .7 1.7.1 What’s new and what changed in 3.2 .
    [Show full text]
  • Building Gridlab-D from Source on Windows with MSYS2 Installing MSYS2: the MSYS2 Environment Is Used to Build Gridlab-D 4.1 Or Newer for the Windows OS
    Building GridLAB-D from Source on Windows with MSYS2 Installing MSYS2: The MSYS2 environment is used to build GridLAB-D 4.1 or newer for the Windows OS. It can be downloaded from https://www.msys2.org/. From the website download the appropriate MSYS2 installer for 32bit (i686) and 64bit (x86_64) OS’s. The website also walks through the installation process. This guide will also walk through the installation process for the 64bit installer. Once the installer is downloaded the execute the installer. This is the first window that pops up. Click Next. It will then ask where to install MSYS2 64bit. The default location is C:\msys64 for MSYS2 64bit. Once the location has been specified click Next. Then it will ask where to create the program’s shortcuts. Use an existing one or create a new name. Once a destination is chosen click Next. At this point the installer begins to install MSYS2 onto the computer. Once installation is complete click Next. Then click Finish and installation is successful. Setting Up the MSYS2 Environment: To start the MSYS2 environment start msys2.exe. A window like below should pop up. As can be seen MSYS2 provides a Linux-like command terminal and environment for building GNU compliant C/C++ executables for Windows OS’s. When Running the MSYS2 environment for the first time updates will need to be performed. To perform update run $ pacman -Syuu Type “y” and hit enter to continue. If you get a line like the following: Simply close the MSYS2 window and restart the MSYS2 executable.
    [Show full text]
  • Project-Team CONVECS
    IN PARTNERSHIP WITH: Institut polytechnique de Grenoble Université Joseph Fourier (Grenoble) Activity Report 2016 Project-Team CONVECS Construction of verified concurrent systems IN COLLABORATION WITH: Laboratoire d’Informatique de Grenoble (LIG) RESEARCH CENTER Grenoble - Rhône-Alpes THEME Embedded and Real-time Systems Table of contents 1. Members :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 1 2. Overall Objectives :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 2 3. Research Program :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 2 3.1. New Formal Languages and their Concurrent Implementations2 3.2. Parallel and Distributed Verification3 3.3. Timed, Probabilistic, and Stochastic Extensions4 3.4. Component-Based Architectures for On-the-Fly Verification4 3.5. Real-Life Applications and Case Studies5 4. Application Domains ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::5 5. New Software and Platforms :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 6 5.1. The CADP Toolbox6 5.2. The TRAIAN Compiler8 6. New Results :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 6.1. New Formal Languages and their Implementations8 6.1.1. Translation from LNT to LOTOS8 6.1.2. Translation from LOTOS NT to C8 6.1.3. Translation from LOTOS to Petri nets and C9 6.1.4. NUPN 9 6.1.5. Translation from BPMN to LNT 10 6.1.6. Translation from GRL to LNT 10 6.1.7. Translation of Term Rewrite Systems 10 6.2. Parallel and Distributed Verification 11 6.2.1. Distributed State Space Manipulation 11 6.2.2. Distributed Code Generation for LNT 11 6.2.3. Distributed Resolution of Boolean Equation Systems 11 6.2.4. Stability of Communicating Systems 12 6.2.5. Debugging of Concurrent Systems 12 6.3. Timed, Probabilistic, and Stochastic Extensions 12 6.4. Component-Based Architectures for On-the-Fly Verification 13 6.4.1.
    [Show full text]
  • Technical Computing on the OS … That Is Not Linux! Or How to Leverage Everything You‟Ve Learned, on a Windows Box As Well
    Tools of the trade: Technical Computing on the OS … that is not Linux! Or how to leverage everything you‟ve learned, on a Windows box as well Sean Mortazavi & Felipe Ayora Typical situation with TC/HPC folks Why I have a Windows box How I use it It was in the office when I joined Outlook / Email IT forced me PowerPoint I couldn't afford a Mac Excel Because I LIKE Windows! Gaming It's the best gaming machine Technical/Scientific computing Note: Stats completely made up! The general impression “Enterprise community” “Hacker community” Guys in suits Guys in jeans Word, Excel, Outlook Emacs, Python, gmail Run prepackaged stuff Builds/runs OSS stuff Common complaints about Windows • I have a Windows box, but Windows … • Is hard to learn… • Doesn‟t have a good shell • Doesn‟t have my favorite editor • Doesn‟t have my favorite IDE • Doesn‟t have my favorite compiler or libraries • Locks me in • Doesn‟t play well with OSS • …. • In summary: (More like ) My hope … • I have a Windows box, and Windows … • Is easy to learn… • Has excellent shells • Has my favorite editor • Supports my favorite IDE • Supports my compilers and libraries • Does not lock me in • Plays well with OSS • …. • In summary: ( or at least ) How? • Recreating a Unix like veneer over windows to minimize your learning curve • Leverage your investment in know how & code • Showing what key codes already run natively on windows just as well • Kicking the dev tires using cross plat languages Objective is to: Help you ADD to your toolbox, not take anything away from it! At a high level… • Cygwin • SUA • Windowing systems “The Unix look & feel” • Standalone shell/utils • IDE‟s • Editors General purpose development • Compilers / languages / Tools • make • Libraries • CAS environments Dedicated CAS / IDE‟s And if there is time, a couple of demos… Cygwin • What is it? • A Unix like environment for Windows.
    [Show full text]
  • Perl on Windows
    BrokenBroken GlassGlass Perl on Windows Chris 'BinGOs' Williams “This is your last chance. After this, there is no turning back. You take the blue pill - the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill - you stay in Wonderland and I show you how deep the rabbit-hole goes.” A bit of history ● 5.003_24 - first Windows port ● 5.004 - first Win32 and Cygwin support, [MSVC++ and Borland C++] ● 5.005 - experimental threads, support for GCC and EGCS ● 5.6.0 - experimental fork() support ● 5.8.0 - proper ithreads, fork() support, 64bit Windows [Intel IA64] ● 5.8.1 - threads support for Cygwin ● 5.12.0 - AMD64 with Mingw gcc ● 5.16.0 - buh-bye Borland C++ Time for some real archaeology Windows NT 4.0 Resource Kit CDROM ActivePerl http://www.activestate.com/perl ● July 1998 - ActivePerl 5.005 Build 469 ● March 2000 - ActivePerl 5.6.0 Build 613 ● November 2002 - ActivePerl 5.8.0 Build 804 ● November 2005 - ActivePerl 5.8.7 Build 815 [Mingw compilation support] ● August 2006 - ActivePerl 5.8.8 Build 817 [64bit] ● June 2012 - ActivePerl 5.16.0 Build 1600 ● Built with MSVC++ ● Can install or use MinGW ● PPM respositories of popular modules ● Commercial support ● PerlScript – Active Scripting engine ● Perl ISAPI Strawberry Perl http://strawberryperl.com ● July 2006 - Strawberry Perl 5.8.8 Alpha 1 released ● April 2008 - Strawberry Perl 5.10.0.1 and 5.8.8.1 released ● January 2009 - first portable release ● April 2010 - 64bit and 32bit releases ● May 2012 - Strawberry Perl 5.16.0.1 released ● August
    [Show full text]
  • Libreoffice Magazine Brasil Diagramado No Libreoffice Draw EDITORIAL
    Magazine Ano 1 - Edição 1 Outubro de 2012 Caso de uso: LibreOffice na Secretaria de Segurança do Rio de Janeiro Light Proof a nova sensação Tutorial: do LibreOffice Desenvolvendo Entrevistas com Extensões Basic desenvolvedores do LibreOffice e e c c e e n n a a i i r r o o t t c c i Artigos | Dicas | Tutoriais | e muito mais... i V V LibreOffice Magazine Brasil Diagramado no LibreOffice Draw EDITORIAL Sobre partos e renascimentos Editores No mês de setembro comemoramos dois anos de criação da The Eliane Domingos de Sousa Document Foundation. Sinto-me particularmente agradecido por ter Olivier Hallot Vera Cavalcante embarcado em uma aventura de alto risco, mas com a convicção que era a coisa certa a ser feita em 2010. Com um capital intelectual Redação: vasto sobre uma tecnologia que estava ainda mostrando seus frutos, Ana Cristina Geyer Moraes fiquei receoso dos rumos tomados pela empresa que mantinha o Eliane Domingos de Sousa OpenOffice.org em uma camisa de força que o impedia de evoluir no José Carlos de Oliveira compasso que o mercado exigia de uma suíte office que almeja a Klaibson Ribeiro maturidade. Michael Meeks Na época, eu era membro eleito do Conselho da Comunidade, Noelson Alves Duarte composto por alguns representantes das comunidades mundo afora, Raimundo Santos Moura e uma maioria de funcionários do principal patrocinador. Na reunião Raul Pacheco da Silva anual do Conselho, com a participação do principal executivo do Swapnil Bhartiya projeto OpenOffice.org da empresa, soubemos que a participação da comunidade não era estratégica para os objetivos empresariais e que Tradução a condução do projeto seria feita pela empresa a revelia da David Jourdain comunidade.
    [Show full text]
  • Mobile Cloud Based Compiler : a Novel Framework for Academia
    International Journal of Advancements in Research & Technology, Volume 2, Issue4, April‐2013 445 ISSN 2278‐7763 Mobile Cloud based Compiler : A Novel Framework For Academia Mahendra Mehra, Kailas.k.Devadkar, Dhananjay Kalbande 1Computer Engineering, Sardar Patel Institute of Technology, Mumbai, India; 2 Computer Engineering, Sardar Patel Institute of Technology, Mum- bai, India. Email: [email protected], [email protected], [email protected] ABSTRACT Cloud computing is a rising technology which enables convenient, on-demand network access to a shared pool of configurable computing resources. Mobile cloud computing is the availability of cloud computing services in a mobile ecosystem. Mobile cloud computing shares with cloud computing the notion that services is provided by a cloud and accessed through mobile plat- forms. The paper aims to describe an online mobile cloud based compiler which helps to reduce the problems of portability and storage space and resource constraints by making use of the concept of mobile cloud computing. The ability to use compiler ap- plication on mobile devices allows a programmer to get easy access of the code and provides most convenient tool to compile the code and remove the errors. Moreover, a mobile cloud based compiler can be used remotely throughout any network con- nection (WI-FI/ GPRS) on any Smartphone. Thus, avoiding installation of compilers on computers and reducing the dependen- cy on computers to write and execute programs. Keywords: Mobile cloud computing; mobile web services; JASON; Compiler; Academia 1 INTRODUCTION The classroom is changing. From the time school bell rings to smartphones, and desktops. The cloud helps ensure that stu- study sessions that last well into the night, students and facul- dents, teachers, faculty, parents, and staff have on-demand ty are demanding more technology services from their access to critical information using any device from any- schools.
    [Show full text]
  • SPI Annual Report 2015
    Software in the Public Interest, Inc. 2015 Annual Report July 12, 2016 To the membership, board and friends of Software in the Public Interest, Inc: As mandated by Article 8 of the SPI Bylaws, I respectfully submit this annual report on the activities of Software in the Public Interest, Inc. and extend my thanks to all of those who contributed to the mission of SPI in the past year. { Martin Michlmayr, SPI Secretary 1 Contents 1 President's Welcome3 2 Committee Reports4 2.1 Membership Committee.......................4 2.1.1 Statistics...........................4 3 Board Report5 3.1 Board Members............................5 3.2 Board Changes............................6 3.3 Elections................................6 4 Treasurer's Report7 4.1 Income Statement..........................7 4.2 Balance Sheet............................. 13 5 Member Project Reports 16 5.1 New Associated Projects....................... 16 5.2 Updates from Associated Projects................. 16 5.2.1 0 A.D.............................. 16 5.2.2 Chakra............................ 16 5.2.3 Debian............................. 17 5.2.4 Drizzle............................. 17 5.2.5 FFmpeg............................ 18 5.2.6 GNU TeXmacs........................ 18 5.2.7 Jenkins............................ 18 5.2.8 LibreOffice.......................... 18 5.2.9 OFTC............................. 19 5.2.10 PostgreSQL.......................... 19 5.2.11 Privoxy............................ 19 5.2.12 The Mana World....................... 19 A About SPI 21 2 Chapter 1 President's Welcome SPI continues to focus on our core services, quietly and competently supporting the activities of our associated projects. A huge thank-you to everyone, particularly our board and other key volun- teers, whose various contributions of time and attention over the last year made continued SPI operations possible! { Bdale Garbee, SPI President 3 Chapter 2 Committee Reports 2.1 Membership Committee 2.1.1 Statistics On January 1, 2015 we had 512 contributing and 501 non-contributing mem- bers.
    [Show full text]
  • Creating Telephony Applications for Both Windows® and Linux
    Application Note Dialogic Research, Inc. Dual OS Applications Creating Telephony Applications for Both Windows® and Linux: Principles and Practice Application Note Creating Telephony Applications for Both Windows® and Linux: Principles and Practice Executive Summary To help architects and programmers who only have experience in a Windows® environment move their telephony applications to Linux, this application note provides information that aims to make the transition easier. At the same time, it takes into account that the original code for Windows may not be abandoned. The ultimate goal is to demonstrate how to create flexible OS-agnostic telephony applications that are easy to build, deploy, and maintain in either environment. Creating Telephony Applications for Both Windows® and Linux: Principles and Practice Application Note Table of Contents Introduction .......................................................................................................... 2 Moving to a Dual Operating System Environment ................................................. 2 CMAKE ......................................................................................................... 2 Boost Jam .................................................................................................... 2 Eclipse .......................................................................................................... 3 Visual SlickEdit ............................................................................................. 3 Using Open Source Portable
    [Show full text]
  • Install JDK, Mingw and Eclipse on Windows 7 and 10
    Install JDK, MinGW and Eclipse on Windows 7 and 10 1) Install Java Development Kit: a. Go to: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads- 2133151.html b. Download the Java SE Development Kit for your Operating System c. Once finished downloading, open the installer and follow the instructions to install the JDK and wait until it finishes installing 2) Install MinGW: a. Go to: http://sourceforge.net/projects/mingw/files/Installer/ b. Click and download mingw-get-setup.exe c. Once finished downloading, run mingw-get-setup.exe d. Click Run on the first window that pops up e. Then click Continue on the next window f. Click Continue again on the next window and it will starting downloading so items. g. After it finishes downloading, a new window will pop up named “MinGW Installation Manager” here you need to select mingw32-base, mingw32-gcc=g++, msys-base and Mark for selection each one. h. Click the “x” in the corner of the window to close it i. A pop up will appear and then click “Review Changes” j. A different window will popup and click “Apply” on it k. Wait for MinGW to finish installing l. After it finishes click “Close” 3) Set the Environment Variables: a. *** NOTE: If the following changes are not made correctly, you can brick/destroy your computer. Continue at your own risk. If you do not feel comfortable doing this portion by yourself, ask Deep in DBH 288 for help. *** b. Go to: Start Right click “Computer” Click “Properties” c.
    [Show full text]
  • Windows System Programming.Pdf
    Windows System Programming Fourth Edition ptg Johnson M. Hart Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no ex- pressed or implied warranty of any kind and assume no responsibility for errors or omis- sions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk pur- chases or special sales, which may include electronic versions and/or custom covers and con- tent particular to your business, training goals, marketing focus, and branding interests. For more information, please contact: U.S. Corporate and Government Sales (800) 382-3419 [email protected] For sales outside of the U.S., please contact: International Sales [email protected] Visit us on the Web: informit.com/aw Library of Congress Cataloging-in-Publication Data Hart, Johnson M. ptg Windows system programming / Johnson M. Hart. p. cm. Includes bibliographical references and index. ISBN 978-0-321-65774-9 (hardback : alk. paper) 1. Application software—Development. 2. Microsoft Windows (Computer file). 3. Applica- tion program interfaces (Computer software).
    [Show full text]
  • EPICS How-Tos
    EPICS How-Tos Sep 10, 2021 Contents 1 Installation on Linux/UNIX/DARWIN (Mac)1 1.1 What is EPICS about?..........................................1 1.2 Prepare your system...........................................1 1.3 Install EPICS...............................................1 1.4 Test EPICS................................................2 1.5 Create a demo/test ioc to test ca and pva.................................3 1.6 Add the asyn package..........................................4 1.7 Install StreamDevice (by Dirk Zimoch, PSI)..............................5 2 Packages required for EPICS on Centos 87 2.1 Overview.................................................7 2.2 Packages required to build EPICS base.................................8 2.3 Packages required by the sequencer...................................8 2.4 Packages required by epics-modules/asyn................................8 2.5 Packages required by the Canberra and Amptek support in epics-modules/mca............8 2.6 Packages required by the Linux drivers in epics-modules/measComp.................8 2.7 Packages required by areaDetector/ADSupport/GraphicsMagick....................8 2.8 Packages required by areaDetector/ADEiger..............................9 2.9 Packages required to build aravis 7.0.2 for areaDetector/ADAravis...................9 2.10 Packages required to build areaDetector/ADVimba...........................9 2.11 Packages required to build EDM.....................................9 2.12 Packages required to build MEDM...................................9
    [Show full text]