Manually Building Emscripten on macOS

This page contains basic instructions on how to manually build and configure Emscripten from source on a clean macOS box (tested on macOS version 10.8.2).


The instructions clone from the main Emscripten repository ( Contributors should instead clone from their own Emscripten fork, and submit changes as pull requests.


You can also build Emscripten from source using the SDK. This is recommended if you need easily switch between SDK and source builds.

What you’ll need

The specific versions of tools that are needed are listed in the Emscripten Toolchain Requirements.

Installing required tools

These instructions explain how to install all the required tools. You can test whether some of these are already installed on the platform and skip those steps.

  1. Install the Xcode Command Line Tools. These include the toolchain to build Fastcomp, and are a precondition for git.

    • Install Xcode from the macOS App Store.
    • In Xcode | Preferences | Downloads, install Command Line Tools.
  2. Install git:

  3. Install CMake if you do not have it yet:

    • Download and install CMake, and make sure it is available in PATH after installation.
  4. Install node.js from

  5. Build Fastcomp (LLVM + Clang) from source using these instructions.

  6. Clone the emscripten-core/emscripten repository from GitHub. This repository contains the main compiler tool for compiling C/C++ programs to JavaScript:

    • Create a directory (with no spaces in the name) to contain the clone.

    • Enter the following command into the terminal:

      git clone

Configuring Emscripten settings

Almost all the compiler settings used by Emscripten are defined in the compiler configuration file (~/.emscripten), a user-specific file located in the user’s home directory.

Instructions for creating and manually configuring up this file are given in Configuring Emscripten Settings when Manually Building from Source.

Validating the environment

The best way to validate the environment is to build some code. Open the terminal in your Emscripten directory (where emcc is located) and enter:

./emcc tests/hello_world.cpp

If this builds a.out.js in the current directory, and you don’t see any build errors in the terminal, Emscripten is good to go!

There are additional validation and troubleshooting instructions in the topic: Verifying the Emscripten Development Environment.