Parallel make: set -j8 comme option par défaut

Je peux définir le nombre de threads pour le processus de construction en utilisant l’argument -j . Par exemple, j’ai 4 cœurs +4 virtuels. Quand j’écris: make -j8 la vitesse augmente 4 fois.

Est-il possible de définir cette valeur par défaut? (Par exemple, sous Linux Gentoo, dans le fichier de configuration, il est possible de définir cette valeur par défaut).

ps j’ai Arch Linux

Votre question ne concerne pas les threads, mais les processus (jobs) exécutés par make.

Le moyen simple de définir ceci, lorsque make est utilisé depuis la console, est d’append:

 alias make="/usr/bin/make -j 8" 

à votre fichier .profile .

Vous pouvez également utiliser setenv MAKEFLAGS '-j 8' , mais MAKEFLAGS peut ignorer ce paramètre dans certains scénarios, car conserver le nombre de processus souhaité nécessite de communiquer avec des appels de communication récursifs. Heureusement, cette méthode fonctionne avec les versions actuelles de GNU Make .

 setenv MAKEFLAGS '-j8' 

J’espère que cela t’aides!

Voici comment je l’ai fait:

 CORES ?= $(shell sysctl -n hw.ncpu || echo 1) all:; @$(MAKE) _all -j$(CORES) _all: install lint test .PHONY: all _all … 

J’ai essentiellement “aliasé” ma cible par défaut à un “privé” _all . La commande pour déterminer le nombre de cœurs est spécifique à OSX, AFAIK, de sorte que vous pouvez simplement l’améliorer pour avoir plus de plateforme si vous voulez. Et à cause de l’affectation ?= , Nous pouvons simplement la remplacer par une variable et env si / si nécessaire.

MODIFIER:

Vous pouvez également append à votre MAKEFLAGS partir du MAKEFLAGS lui-même, comme ceci:

 CPUS ?= $(shell sysctl -n hw.ncpu || echo 1) MAKEFLAGS += --jobs=$(CPUS) …