1#
2# Copyright (C) 2004, Ericsson Telecommunications
3# Authors: Richard Carlsson, Bertil Karlsson
4#
5include $(ERL_TOP)/make/target.mk
6include $(ERL_TOP)/make/$(TARGET)/otp.mk
7
8# ----------------------------------------------------
9# Application version
10# ----------------------------------------------------
11include ../vsn.mk
12VSN=$(SYNTAX_TOOLS_VSN)
13
14# ----------------------------------------------------
15# Release directory specification
16# ----------------------------------------------------
17RELSYSDIR = $(RELEASE_PATH)/lib/syntax_tools-$(VSN)
18
19
20#
21# Common Macros
22#
23
24EBIN = ../ebin
25INCLUDE=../include
26
27ERL_COMPILE_FLAGS += -pa $(EBIN) -pa ./ -I$(INCLUDE)
28
29ERL_COMPILE_FLAGS += +nowarn_shadow_vars +warn_unused_import #-Werror # +warn_missing_spec +warn_untyped_record
30
31SOURCES=erl_syntax.erl erl_prettypr.erl erl_syntax_lib.erl	\
32	erl_comment_scan.erl erl_recomment.erl epp_dodger.erl	\
33	prettypr.erl merl.erl merl_transform.erl
34
35INCLUDE_FILES = merl.hrl
36
37OBJECTS=$(SOURCES:%.erl=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET) $(APPUP_TARGET)
38
39INCLUDE_DELIVERABLES = $(INCLUDE_FILES:%=$(INCLUDE)/%)
40
41APP_FILE= syntax_tools.app
42APP_SRC= $(APP_FILE).src
43APP_TARGET= $(EBIN)/$(APP_FILE)
44
45APPUP_FILE= syntax_tools.appup
46APPUP_SRC= $(APPUP_FILE).src
47APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
48
49# ----------------------------------------------------
50# Targets
51# ----------------------------------------------------
52
53debug opt: $(OBJECTS)
54
55all: $(OBJECTS)
56
57
58clean:
59	rm -f ./merl_transform.beam
60	rm -f $(OBJECTS)
61	rm -f core *~
62
63docs:
64
65distclean: clean
66
67realclean: clean
68
69$(EBIN)/%.$(EMULATOR):%.erl
70	$(erlc_verbose)erlc -W $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
71
72# special rules and dependencies to apply the transform to itself
73$(EBIN)/merl_transform.beam: $(EBIN)/merl.beam ./merl_transform.beam \
74			../include/merl.hrl $(EBIN)/erl_comment_scan.beam \
75			$(EBIN)/erl_syntax.beam $(EBIN)/erl_syntax_lib.beam
76./merl_transform.beam: ./merl_transform.erl $(EBIN)/merl.beam \
77			../include/merl.hrl
78	$(V_ERLC) -DMERL_NO_TRANSFORM $(ERL_COMPILE_FLAGS) -o ./ $<
79
80
81# ----------------------------------------------------
82# Special Build Targets
83# ----------------------------------------------------
84
85$(APP_TARGET): $(APP_SRC) ../vsn.mk
86	$(vsn_verbose)sed -e 's;%VSN%;$(VSN);' $< > $@
87
88$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk
89	$(vsn_verbose)sed -e 's;%VSN%;$(VSN);' $< > $@
90
91# ----------------------------------------------------
92# Release Target
93# ----------------------------------------------------
94include $(ERL_TOP)/make/otp_release_targets.mk
95
96release_spec: opt
97	$(INSTALL_DIR) "$(RELSYSDIR)/ebin"
98	$(INSTALL_DATA) $(OBJECTS) "$(RELSYSDIR)/ebin"
99	$(INSTALL_DIR) "$(RELSYSDIR)/src"
100	$(INSTALL_DATA) $(SOURCES) "$(RELSYSDIR)/src"
101	$(INSTALL_DIR) "$(RELSYSDIR)/include"
102	$(INSTALL_DATA) $(INCLUDE_DELIVERABLES) "$(RELSYSDIR)/include"
103
104release_docs_spec:
105
106