Hope everyone is doing well
I am having a problem with make files in erlang on windows. I can’t seem to get the following code to work.
.SUFFIXES: .erl .beam
.erl.beam:
erlc -W $<
ERL = erl -boot start_clean
MODS = main send get loops
all: compile
${ERL} -pa 'G:\Documents and Settings\Administrador' -s main start
compile: ${MODS:%=%.beam}
clean:
rm -rf *.beam erl_crash.dump
The files I am trying to compile are main.erl send.erl get.erl loops.erl
I save the make file as an .exe
And the type
make [main]
into the windows shell
All it gives me is a wierd popup error. Is the make [main] command correct?
And is my actual code right?
Thanks for the help,
-B
Several errors here:
The indented "ERL=" line won’t work right. Leading tabs are special to make. You do not have complete formatting freedom, as with some other languages.
The make file should be saved as
Makefile, no extensions. Case may or may not matter to your particular "make" program. All versions of make acceptMakefile, however.The brackets on your command line will never work. I assume you’re cut-and-pasting them from somewhere, but they were probably using "[main]" as an example text you’re supposed to replace, including the brackets.
"make main" will also fail because you don’t have a "main" target in this Makefile. "make all", "make clean" and "make compile" will work, as will several implicit targets, like "make loops.beam".
You really should get a book on make, if you’re going to continue to use it. I like O’Reilly’s Managing Projects with GNU Make, 3/e by Mecklenburg, available for free online or in dead tree form. The GNU make manual is also available online and as dead trees.
You probably shouldn’t be using traditional "make" here, however. For purely Erlang projects, Emakefiles are shorter, clearer, and just overall better. They’re not so great for building other things along side your Erlang project, but you can always do both: the Makefile uses "erl -make" to kick off the Erlang build, and does everything else itself.