i'm new makefiles i'm having bit of trouble distinguishing target path versus make file exists
here's makefile
babel-ready: make babel-install-preset module=es2015 make babel-install-preset module=stage-2 babel-install-preset: npm install --save-dev babel-preset-$(module) ${curdir}/node_modules/.bin/json -i -f package.json -e 'if (!this.babel) this.babel = {}' ;\ ${curdir}/node_modules/.bin/json -i -f package.json -e 'if (!this.babel.presets) this.babel.presets = []' ;\ ${curdir}/node_modules/.bin/json -i -f package.json -e 'this.babel.presets.push("'$(module)'")' ;\
here's dir structure:
- node_modules - .bin/ - json - makefile - packages/ - my-package/ - package.json - package.json
i'd use makefile in 3 ways.
one specify target this.
./ $ make babel-ready package=my-package
two run on root package.json.
./ $ make babel-ready
third in package , run command.
./packages/my-package $ make -c ../../ babel-ready
i'd if 3 use same base code well.
i keep using cd
change directory within commands keeps messing me up, because once cd
loose access make command, , have use make -c ${curdir}
loose access correct package.json
file, seems can't work.
you seem looking make -f ../../makefile babel-ready
in last example. -c
option loses current directory, discovered.
(unclear me whether commands correctly use ${curdir}
, might need additional tweaks.)