Last active
January 2, 2018 17:21
-
-
Save m1tk4/48ddd3248129481516a4c5576c70b9a6 to your computer and use it in GitHub Desktop.
Embedding PHP , Python and NodeJS code in makefiles
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Embedding languages in makefiles | |
# | |
# Try making targets in this makefile! | |
# | |
# Make variable for testing | |
MAKE_VARIABLE = 45678 | |
all: php node python | |
# PHP | |
define PHP_CODE | |
<? | |
echo "Hello World!\n"; | |
$$php_variable = 12345; | |
echo "My own variable \$$php_variable is $$php_variable.\n"; | |
echo "Makefile variable MAKE_VARIABLE, inlined, is $(MAKE_VARIABLE)\n"; | |
echo "I got " . ($$argc-1) ." command line parameters, and they are: '". | |
implode("', '", array_slice($$argv,1) )."'\n"; | |
?> | |
endef | |
export PHP_CODE | |
php: | |
@echo $$PHP_CODE | php -- param1 param2 three | |
# Node | |
define NODE_CODE | |
console.log('Hello World!'); | |
node_variable = 12345; | |
console.log('My own variable node_variable is ' + node_variable +'.'); | |
console.log('Makefile variable MAKE_VARIABLE, inlined, is $(MAKE_VARIABLE)'); | |
var a = process.argv.slice(2); | |
console.log('I got ' + a.length + ' command line parameters, and they are: \'' + a.join("', '") + "'"); | |
endef | |
export NODE_CODE | |
node: | |
@T=`mktemp -t XXXXXXXXXXXXXX.js` && echo $$NODE_CODE>$$T && node $$T param1 param2 three; rm -f $$T | |
# this won't support command line parameters but will work! | |
node-stdin: | |
@echo $$NODE_CODE | node | |
define PYTHON_CODE | |
print "Hello World!" | |
python_variable = 12345 | |
print "My own variable python_variable is %s" % python_variable | |
print "Makefile variable MAKE_VARIABLE, inlined, is $(MAKE_VARIABLE)" | |
import sys | |
print "I got %d command line parameters, and they are: %s" % (len(sys.argv)-1 ,str(sys.argv[1::])[1:-1]) | |
endef | |
export PYTHON_CODE | |
python: | |
@echo "$$PYTHON_CODE" | python - param1 param2 three | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment