diff --git a/ide/emacs/android-common.el b/ide/emacs/android-common.el
new file mode 100644
index 0000000..a4cd1e5
--- /dev/null
+++ b/ide/emacs/android-common.el
@@ -0,0 +1,51 @@
+;;;
+;;; Copyright (C) 2009 The Android Open Source Project
+;;;
+;;; Licensed under the Apache License, Version 2.0 (the "License");
+;;; you may not use this file except in compliance with the License.
+;;; You may obtain a copy of the License at
+;;;
+;;;      http://www.apache.org/licenses/LICENSE-2.0
+;;;
+;;; Unless required by applicable law or agreed to in writing, software
+;;; distributed under the License is distributed on an "AS IS" BASIS,
+;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+;;; See the License for the specific language governing permissions and
+;;; limitations under the License.
+
+;;; Variables to customize and common function for the android build
+;;; support in Emacs.
+
+(defgroup android nil
+  "Support for android development in Emacs."
+  :group 'tools)
+
+;;;###autoload
+(defcustom android-compilation-jobs 2
+  "Number of jobs used to do a compilation (-j option of make)."
+  :type 'integer
+  :group 'android)
+
+(defun android-find-build-tree-root ()
+  "Ascend the current path until the root of the android build tree is found.
+Similarly to the shell functions in envsetup.sh, for the root both ./Makefile
+and ./build/core/envsetup.mk are exiting files.
+Return the root of the build tree. Signal an error if not found."
+  (let ((default-directory default-directory))
+    (while (and (> (length default-directory) 2)
+                (not (file-exists-p (concat default-directory "Makefile")))
+                (not (file-exists-p (concat default-directory "build/core/envsetup.mk"))))
+      (setq default-directory
+            (substring default-directory 0
+                       (string-match "[^/]+/$" default-directory))))
+    (if (> (length default-directory) 2)
+        default-directory
+      (error "Not in a valid android tree."))))
+
+(defun android-project-p ()
+"Return nil if not in an android build tree."
+  (condition-case nil
+      (android-find-build-tree-root)
+    (error nil)))
+
+(provide 'android-common)
diff --git a/ide/emacs/android-compile.el b/ide/emacs/android-compile.el
index f6b0a09..7abe83a 100644
--- a/ide/emacs/android-compile.el
+++ b/ide/emacs/android-compile.el
@@ -25,22 +25,7 @@
 ;; TODO: Maybe we could cache the result of the compile function in buffer local vars.
 
 (require 'compile)
-
-(defun android-find-build-tree-root ()
-  "Ascend the current path until the root of the android build tree is found.
-Similarly to the shell functions in envsetup.sh, for the root both ./Makefile
-and ./build/core/envsetup.mk are exiting files.
-Return the root of the build tree. Signal an error if not found."
-  (let ((default-directory default-directory))
-    (while (and (> (length default-directory) 2)
-                (not (file-exists-p (concat default-directory "Makefile")))
-                (not (file-exists-p (concat default-directory "build/core/envsetup.mk"))))
-      (setq default-directory
-            (substring default-directory 0
-                       (string-match "[^/]+/$" default-directory))))
-    (if (> (length default-directory) 2)
-        default-directory
-      (error "Not in a valid android tree."))))
+(require 'android-common)
 
 (defun android-find-makefile (topdir)
   "Ascend the current path until an Android makefile is found.
@@ -69,30 +54,28 @@
                            (length topdir) nil) nil)
         (error "Not in a valid android tree.")))))
 
-(defun android-project-p ()
-"Return nil if not in an android build tree."
-  (condition-case nil
-      (android-find-build-tree-root)
-    (error nil)))
-
-;; TODO: Cannot pass additional flags (e.g -j4).
 (defun android-compile ()
   "Elisp equivalent of mm shell function.
 Walk up the path until a makefile is found and build it.
-You need to have a proper buildspec.mk in your top dir."
+You need to have a proper buildspec.mk in your top dir.
+
+Use `android-compilation-jobs' to control the number of jobs used
+in a compilation."
   (interactive)
   (if (android-project-p)
       (let* ((topdir (android-find-build-tree-root))
-             (makefile (android-find-makefile topdir)))
+             (makefile (android-find-makefile topdir))
+             (options
+              (concat " -j " (number-to-string android-compilation-jobs))))
         (if (not (file-exists-p (concat topdir "buildspec.mk")))
             (error "buildspec.mk missing in %s." topdir))
         (set (make-local-variable 'compile-command)
              (if (cadr makefile)
                  ;; The root Makefile is not invoked using ONE_SHOT_MAKEFILE.
-                 (concat "make -C " topdir " files ")
+                 (concat "make -C " topdir options " files ")
                (concat "ONE_SHOT_MAKEFILE=" (car makefile)
-                       " make -C " topdir " files ")))
+                       " make -C " topdir options " files ")))
         (if (interactive-p)
-            (compile compile-command)))))
+            (call-interactively 'compile)))))
 
 (provide 'android-compile)
