When i make an external, i usually duplicate an existing one. I got really tired of going through and doing find and replace in multiple files for Xcode and Visual Studio, so i decided to make a bash script and folder layout (with template projects) to automate the process.
To duplicate a project you simply have to open a terminal window, cd to your max external projects folder and type:
sh duplicate.sh [inputprojectname] [outputprojectname]
oliver-larkins-macbook-pro-15:MaxBuild oli$ sh duplicate.sh mb.msp~ ol.mynewmspexternal~
The script copies your project and then goes through all the files and substitutes the old project name for the new one you specify, both in the file name and inside the files. When making changes inside the c or cpp files, the class/function/struct names etc. are substituted but tildes and dots are removed where they would cause problems for the compiler. It includes the following template externals, which have VS2008 express and Xcode 3.1 projects:
- mb.max – a basic vanila max external
- mb.maxobex – a basic max object with obex for pattr/attribute functionality
- mb.maxcpp – a basic c++ max external (with obex)
- mb.msp~ a basic vanilla msp external
- mb.mspobex~ a basic msp object with obex for pattr/attribute functionality
- mb.mspcpp~ a basic c++ msp external (with obex)
Thanks to Graham Wakefield for the C++ templates.
I develop Max externals first on OSX, so it made sense to do the script in bash. I expect you could do a similar thing in Windows too, maybe using cygwin or something similar.
there’s a readme with instructions. At the moment this is set up for the MaxUB sdk (4.6). I will add support for the 5.x sdk in the next version.
I would be interested to know how people get on with it.
i noticed that the xcode projects are building to the wrong place…will fix this in the next version
This sounds great. Thanks for sharing this Oli!