I started working on the pd autotools build mainly because I had already used autotools before and it seemed like the easiest way to get Pd to build on macOS again. So far, we've moved forward with it in general, but at this point I wonder if a re-examination makes sense.
Some points:
1. ./configure && make are great for users -> The more people who can easily build Pd, the more help we can get for all sorts of things. I think we've been seeing that the last 6 months or so.
2. Built-in support for gettext processing, standard install targets, etc allow for translations and package management (Debian)
3. *Maintaining* the configure.ac & Makefile.am files makes maintaining the build system relatively easy, if you understand it (see next point).
4. *Developing* the autotools build system is a PITA. There are a lot of details and basic understanding required in order to both make sense and use it effectively. Once everything works, it's *great* (point 1), but sometimes getting there takes a while. Also, fewer people are willing to help with it because of the overhead.
Pd is in some ways both a simple and a complex project to build. Simple in that C is easy to build anywhere and TCL just needs things in the right place. It's complex in that Pd builds and runs on a variety of platforms, each with it's own peculiarities.
The original makefile build system works relatively well for the simple cases while the autotools build system works for the complexities (while requiring complexity). The makefiles are straightforward and easy to understand at a loss in flexibility while ./configure et al are black boxes that support lots of configuration options and hopefully work most of the time.
When I did the overhaul last year, I went through and added documentation to the various Makefile.ams and the configure.ac to help in understanding things, but I think that it's still down to IOhannes and I to do any sort of work on the setup as it is. I'm not sure if that is healthy in the long run.
I'm thinking now about about different approaches to simplify what is there:
1. non-recursive automake: a single large Makefile.am without the various files in subfolders. There are a number of advantages to this including build speed, putting things in one place, etc.
2. hybrid autoconf/makefile: If we want, we can use regular makefile rules in automake files or our own makefiles instead of automake and simply use the configuration variables for autoconf. This would allow for exposing more of the core build information in a readable way at the expense of perhaps higher maintenance.
The autotools are definitely useful but I admit can be a bit of a beast (but this guide helps a great deal: https://autotools.io/index.html <https://autotools.io/index.html>). OTOH I would argue that *any* build system can be a beast, especially for a cross-platform project. In either case, I don't think we want to end up with a "non-understandable black box mess" and I'm thinking of ways to make things easy to work with for both Pd users *and* developers.
--------
Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>
Hello pd-list!
We have just announced two open positions at the CMC: one is for the
Assistant Director of the CMC, and the other is a faculty search for the
Director of our Sound Art program. I've included the announcements
below. Please pass these along to anyone you think might be interested.
Thanks!
Brad Garton
Columbia University Music Department
Director, CMC
-------------------------------------------------
Assistant Director, Computer Music Center and Sound Art Program (Officer
Grade 12)
Close Date: Open Until Filled
to apply: jobs.columbia.edu/applicants/Central?quickFind=166090
Job Summary
Reporting to the Director of the Computer Music Center (CMC) the assistant
director is responsible for supervising and managing the operation of a
complex array of uniquely configured computer-music systems necessary to
undergraduate and graduate course offerings, and to faculty or visiting
researchers and composers.
Computer Music Center (CMC)
The assistant director is directly responsible for the efficient operation
of all CMC studios and spaces. The assistant director uses his or her
expertise in subject matter as well as experience managing similar
functional spaces to assess user needs and present proposals to CMC
Director for selection and purchase of appropriate new hardware and
software.
Sound Art Program
Work with Visual Arts administration in the School of the Arts to schedule
Sound Art classes. Work with deans of School of the Arts, to promote and
manage the administration and operations of the Sound Art program. Act as a
primary point of contact and coordinates activities and purchases with
related entities including CMC/Music/Visual Arts to ensure smooth,
efficient and cost-effective operations.
Operations Management CMC and Sound Art Program
Manage and maintain all CMC and Sound Art equipment; this includes managing
current checkout system for equipment, room scheduling, and the maintenance
of existing equipment. Requests and schedules needed summer maintenance;
oversees and ensures the completion of necessary tasks such as cleaning and
painting the walls and floors of the project spaces, and the restocking of
supplies for the common areas and offices used by the CMC and the Sound Art
program.
Financial Management CMC and Sound Art Program:
Financial, budgets, and purchasing: The assistant director is responsible
for creating and managing budgets, endowments, and grants for the CMC. This
includes approving CMC transactions, performing regular reconciliation,
developing and adjusting budgets and reports as needed. Responsible for
purchasing supplies and equipment and processing all paperwork processed to
Purchasing and to the Office of the Controller. S/he is responsible for
trouble-shooting and resolving financial issues. Works closely with the
Music Department’s administration to complete year-end and budgeting
activities as needed.
Supervises work-study and casual employees as related to maintenance and
operation.
Preferred qualifications:
Advanced degree in Music/Audio with specialized knowledge in computer
music.
Knowledge of ARC, Budgeting Tool and other Columbia financial systems.
Columbia University is an Equal Opportunity/Affirmative Action employer.
Columbia University is committed to the hiring of qualified local residents.
-------------------------------------------------
-------------------------------------------------
Assistant /Associate Professor in Visual Arts (Sound Art), tenure-track
or
Assistant /Associate Professor of Professional Practice in Visual Arts
(Sound Art)
The Visual Arts Program of the School of the Arts, in collaboration with
the Department of Music, seek to fill the position of Assistant or
Associate Professor of the Arts or Assistant or Associate Professor of
Professional Practice of the Arts in the School of the Arts, Columbia
University, effective 1 July 2018.
The successful candidate will have a vibrant studio practice in sound art
with a demonstrated ability to teach and mentor graduate students. The
incumbent will oversee the Sound Art Program working closely with faculty
in the Department of Music's Center for Computer Music and the Visual Arts
faculty in the School of the Arts.
Candidates may be appointed on professional practice or tenure track at the
discretion of the Dean.
Candidates for Assistant/Associate Professor of the Arts (tenure-track)
must have a demonstrated capacity for creative work and exhibit the
potential for continuing to make influential professional or artistic
contributions, as well as significant contributions to their areas of
pedagogy. Graduate teaching experience required.
Candidates for Assistant/Associate Professor of Professional Practice of
the Arts must have a demonstrated capacity for creative work and exhibit
the potential for continuing to make significant contributions to their
areas of professional practice and accompanying pedagogy. Graduate teaching
experience required.
A bachelors degree or equivalent is required. MFA/DMA or advanced degree is
preferred.
The school is especially interested in qualified candidates whose record of
achievement will contribute to the diversity goals of the institution.
For more information and to apply for this position, please visit our
online site at:
https://academicjobs.columbia.edu/applicants/Central?quickFind=65509
Review of applications will begin 15 January 2018 and continue until the
position is filled.
Columbia University is an Equal Opportunity/Affirmative Action employer.
-------------------------------------------------