current/latest tools+SDK for building C++ Max externals???
Hello Max dev community!
I've been out of the Max game for quite a long while and looking to set up my current dev machine (Mac Mini M4, OS 15.x) for building Max 9 compatible externals, coding in C++. My target platform will be MacOS only. I intend to figure out RNBO export some other day.
The dev documentation I'm finding seems fairly stale. Written in 2022, it's talking about "new" support for M1 silicon and MacOS 10.15 (!). Hoping some kindly soul would respond here with fresh advice on the latest/greatest supported (i.e. C74 friendly) versions of the various related tools. Or simply point to more recent docs in case I've overlooked them somewhere.
Specifically:
XCode -- documentation mentions XCode 12. Current version on Apple Store is XCode 16.4. What's the latest version anyone is actually using successfully for Max external development? Any specific need to hunt down a legacy version?
CMake -- same questions again. Documentation refers to CMake 3.19; current stable release is 4.0.3. Any known incompatibilities introduced with 4.x?
Max SDK -- C74 dev page points to version 8.2.0 on GitHub, released in 2021. Could someone verify whether this is indeed the latest stable SDK release (and any known compatibility issues with more recent XCode/CMake versions above)?
Min-DevKit -- if I'm going to code in C++, is Min-DevKit (last significant update to docs in 2022) still the way to go? Necessary?
I have to assume that someone out there is happily and successfully building stuff on current generation MacOS + hardware. Will be most grateful if such person wants to save me (and any future travelers) a bunch of needless trial and error on this :-)
-Ben
Hi!
My advice would be to just give it a go. Start by building the examples in min-devkit or max-sdk with whatever version of the tools you have installed. I wouldn't expect you to have any compatibility issues. For me, everything runs just fine on an M2 MBP14 / MacOS 15.2 / CLion 2025.1.3 / CMake 3.31.6 (bundled, haven't updated to 4.x yet). I haven't tried Xcode in years, so I can't give you any pointers there unfortunately
As you say, both the max-sdk and min-devkit are rather stale (we're still waiting for access to features released in Max 8.6 / jan 2024) but the C74 devs are occasionally fixing bugs, so I'd recommend using the main branch of the corresponding repo rather than the dated releases!
If your goal is to code in C++, min-devkit is the way to go. Unless you're highly proficient in git and cmake and want to set up your own repo from scratch, the package creation script is probably a good starting point to start developing your own externals See Rob's reply below for way better package templates (the min template can be found here)
echo the above with the additional suggestion that the package template is a great way to start https://github.com/Cycling74/max-package-template
there's one for min too.
would also add that min is not required for c++ development, but is worth checking out.
@Rob: Didn't know about these, thanks for sharing!
Hi JBG and Rob,
Greatly appreciate these prompt and helpful responses. I hope this thread may be useful for others as well.
Especially happy to hear that XCode seems unnecessary for the single task of building Max externals. I'm not committed to any particular IDE at this point. I'll see if I can persuade CMake to generate for my current default IDE (VS Code), otherwise might give CLion a try. Expect I'm really just using the IDE for code editing anyhow, running builds directly on command line. Only reason I was asking about XCode at all was because the docs mentioned no alternative as far as I could tell. I have no plans to build anything else whatsoever for the Apple ecosystem, so thrilled to bypass XCode bloat for now.
I think my next step will be to hunt down completed C++ source code for someone else's Max external (ideally something which gives the SDK a good workout) and get that to build/load/execute in Max 9 successfully. Then I'll follow Rob's suggestions re the C74 max-package-template or min-package-template as base for my own C++ project.
Thanks again folks!
Are the instructions anywhere for setting this all up? It'd be wonderful to have a guide for setting up CMAKE, the SDK, and get started working with the template.
Regardless, this thread came at the perfect time! I was just thinking of porting a couple of plugins as Max externals to share with folks.