Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make "make" default to "make -j 8"

Is there a way that I can make

$ make

default to:

$ make -j 8

?

like image 733
anon Avatar asked Jan 28 '10 01:01

anon


3 Answers

Set the environment variable MAKEFLAGS to -j 8. If you are using csh or tcsh, you can do this with setenv MAKEFLAGS '-j 8'. If you are using bash, you can do this with export MAKEFLAGS='-j 8'. You might wish to put this command in your shell's start-up file, such as .cshrc or .bashrc (in your home directory).

Caution: Setting a default like this will apply to all invocations of make, including when you "make" a project other than your own or run a script that invokes make. If the project was not well designed, it might have problems when it is built with multiple jobs executing in parallel.

like image 143
Eric Postpischil Avatar answered Oct 16 '22 10:10

Eric Postpischil


The answers suggesting alias make='make -j 8' are fine responses to your question.

However, I would recommend against doing that!

By all means, use an alias to save typing - but call it something other than make.

It might be OK for whatever project you're currently working on; but it's quite possible to write makefiles with missing dependencies which do not quite work properly with -j, and if you encounter such a thing, you'll be left wondering why the build fails in a mysterious way for you but works fine for other people.

(That said, if you do alias make, you can get bash to ignore the alias by typing \make.)

like image 38
Matthew Slattery Avatar answered Oct 16 '22 10:10

Matthew Slattery


alias make="make -j 8", assuming bash shell

like image 40
Anycorn Avatar answered Oct 16 '22 09:10

Anycorn