How to set child process' environment variable in Makefile
environment-variables, makefile, shell, target
Solution
Make variables are not exported into the environment of processes make invokes... by default. However you can use make's `export` to force them to do so. Change:
test: NODE_ENV = test
to this:
test: export NODE_ENV = test
(assuming you have a sufficiently modern version of GNU make >= 3.77 ).
Problem
I would like to change this Makefile: ``` SHELL := /bin/bash PATH := node_modules/.bin:$(PATH) boot: @supervisor \ --harmony \ --watch etc,lib \ --extensions js,json \ --no-restart-on error \ lib test: NODE_ENV=test mocha \ --harmony \ --reporter spec \ test clean: @rm -rf node_modules .PHONY: test clean ``` to: ``` SHELL := /bin/bash PATH := node_modules/.bin:$(PATH) boot: @supervisor \ --harmony \ --watch etc,lib \ --extensions js,json \ --no-restart-on error \ lib test: NODE_ENV=test test: mocha \ --harmony \ --reporter spec \ test clean: @rm -rf node_modules .PHONY: test clean ``` Unfortunately the second one does not work (the node process still runs with the default `NODE_ENV`. What did I miss?