Skip to main content


Showing posts from February, 2013

Updated list of my GNU Make articles

CM Crossroads has reorganized their site recently. To ensure that all the latest URLs are available for my article here's an updated list. You could buy a copy of The GNU Make Book which contains all the articles (and more!), or you could use the following list (which I've newly updated): May 2008: Usman's Law March 2008: GNU Make user-defined functions, part 2 February 2008: GNU Make user-defined functions, part 1 December 2007: GNU Make path handling October 2007: GMSL 1.09: A look inside the tweaks and updates September 2007: Makefile Debugging: An introduction to remake July 2007: GNU Make escaping: a walk on the wild side June 2007: Painless non-recursive Make May 2007: Atomic Rules in GNU Make April 2007: GNU Make meets file names with spaces in them February 2007: GNU Make's $(shell)/environment gotcha December 2006: Makefile Optimization $(eval) and macro caching November 2006: The pitfalls and benefits of GNU Make parallelization October 200

How to fix a corrupted JavaScriptCore.framework on Mac OS X 10.7.5

If /System/Library/Framework/JavaScriptCore.framework gets deleted or corrupted on Mac OS X you are in serious trouble. You can't run a browser, you can't start Preview, and more. But restoring it is possible. To save anyone else the pain of figuring this stuff out here's how I got myself out of this situation. This blog post is boring until you have this problem and end up here because you searched for a solution. Welcome! First you need to find the 'Client Combo' from Apple for your operating system. In my case that was the OS X Lion Update 10.7.5 (Client Combo) . It contains a fresh copy of the JavaScriptCore.framework that just requires extracting and copying into place. Note that you can't just install the combo from the .dmg file because the Apple package manager relies on  JavaScriptCore.framework . You have to do everything at the terminal. Step 1. Download the combo and get it on your machine. For that you need to open Terminal (which you can g