Skip to content
This repository has been archived by the owner on Nov 24, 2020. It is now read-only.

Commit

Permalink
apply transform to itself through makefile trickery
Browse files Browse the repository at this point in the history
  • Loading branch information
Richard Carlsson committed Mar 4, 2012
1 parent 27ac39c commit 7885197
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 7 deletions.
14 changes: 10 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
# simple Makefile
VSN=0.9
ERLC_FLAGS=-pa ./ebin
ERLC_FLAGS=
SOURCES=$(wildcard src/*.erl)
HEADERS=$(wildcard src/*.hrl)
OBJECTS=$(SOURCES:src/%.erl=ebin/%.beam)
DOC_OPTS={def,{version,\"$(VSN)\"}}

all: $(OBJECTS) test
ebin/%.beam: src/%.erl $(HEADERS) Makefile
erlc $(ERLC_FLAGS) -o ebin/ $<
erlc -pz ./priv -pa ./ebin $(ERLC_FLAGS) -o ebin/ $<

# special dependencies due to parse transform
# additional dependencies due to the parse transform
ebin/merl_tests.beam ebin/merl_build.beam: \
ebin/merl_transform.beam ebin/merl.beam

# special rules and dependencies to apply the transform to itself
ebin/merl_transform.beam: ebin/merl.beam priv/merl_transform.beam
priv/merl_transform.beam: src/merl_transform.erl $(HEADERS) Makefile
erlc -DMERL_NO_TRANSFORM $(ERLC_FLAGS) -o priv/ $<

clean:
-rm $(OBJECTS)
-rm -f priv/merl_transform.beam
-rm -f $(OBJECTS)

test:
erl -noshell -pa ebin \
-eval 'eunit:test("ebin",[])' \
Expand Down
1 change: 1 addition & 0 deletions priv/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.beam
3 changes: 0 additions & 3 deletions src/merl_transform.erl
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,9 @@

-export([parse_transform/2]).

-define(MERL_NO_TRANSFORM, true).
-include("../include/merl.hrl").


%% TODO: apply to self at compile time, one way or another

parse_transform(Forms, _Options) ->
erl_syntax:revert_forms(
erl_syntax_lib:map(fun (T) -> transform(T) end,
Expand Down

0 comments on commit 7885197

Please sign in to comment.