blob: 980af81228751bd4ec9dbffa258b1bc0ef02345c [file] [log] [blame]
Gavin McDonald0b75e1a2010-10-28 02:12:01 +00001# $Id: Makefile,v 1.3 2004/08/13 16:35:59 mlogan Exp $
2#
3include ../build/otp.mk
4include ../build/colors.mk
5include ../build/buildtargets.mk
6
7# ----------------------------------------------------
8# Application version
9# ----------------------------------------------------
10
11include ../vsn.mk
12APP_NAME=thrift
13PFX=thrift
14VSN=$(THRIFT_VSN)
15
16# ----------------------------------------------------
17# Install directory specification
18# WARNING: INSTALL_DIR the command to install a directory.
19# INSTALL_DST is the target directory
20# ----------------------------------------------------
21INSTALL_DST = $(ERLANG_OTP)/lib/$(APP_NAME)-$(VSN)
22
23# ----------------------------------------------------
24# Target Specs
25# ----------------------------------------------------
26
27
28MODULES = $(shell find . -name \*.erl | sed 's:^\./::' | sed 's/\.erl//')
29MODULES_STRING_LIST = $(shell find . -name \*.erl | sed 's:^\./:":' | sed 's/\.erl/",/')
30
31HRL_FILES=
32INTERNAL_HRL_FILES= $(APP_NAME).hrl
33ERL_FILES= $(MODULES:%=%.erl)
34DOC_FILES=$(ERL_FILES)
35
36APP_FILE= $(APP_NAME).app
37APPUP_FILE= $(APP_NAME).appup
38
39APP_SRC= $(APP_FILE).src
40APPUP_SRC= $(APPUP_FILE).src
41
42APP_TARGET= $(EBIN)/$(APP_FILE)
43APPUP_TARGET= $(EBIN)/$(APPUP_FILE)
44
45BEAMS= $(MODULES:%=$(EBIN)/%.$(EMULATOR))
46TARGET_FILES= $(BEAMS) $(APP_TARGET) $(APPUP_TARGET)
47
48WEB_TARGET=/var/yaws/www/$(APP_NAME)
49
50# ----------------------------------------------------
51# FLAGS
52# ----------------------------------------------------
53
54ERL_FLAGS +=
55ERL_INCLUDE = -I../include -I../../fslib/include -I../../system_status/include
56ERL_COMPILE_FLAGS += $(ERL_INCLUDE)
57
58# ----------------------------------------------------
59# Targets
60# ----------------------------------------------------
61
62all debug opt: $(EBIN) $(TARGET_FILES)
63
64#$(EBIN)/rm_logger.beam: $(APP_NAME).hrl
65include ../build/docs.mk
66
67# Note: In the open-source build clean must not destroy the preloaded
68# beam files.
69clean:
70 rm -f $(TARGET_FILES)
71 rm -f *~
72 rm -f core
73 rm -rf $(EBIN)
74 rm -rf *html
75
76$(EBIN):
77 mkdir $(EBIN)
78
79dialyzer: $(TARGET_FILES)
80 dialyzer --src -r . $(ERL_INCLUDE)
81
82# ----------------------------------------------------
83# Special Build Targets
84# ----------------------------------------------------
85
86$(APP_TARGET): $(APP_SRC) ../vsn.mk $(BEAMS)
87 sed -e 's;%VSN%;$(VSN);' \
88 -e 's;%PFX%;$(PFX);' \
89 -e 's;%APP_NAME%;$(APP_NAME);' \
90 -e 's;%MODULES%;%MODULES%$(MODULES_STRING_LIST);' \
91 $< > $<".tmp"
92 sed -e 's/%MODULES%\(.*\),/\1/' \
93 $<".tmp" > $@
94 rm $<".tmp"
95
96$(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk
97 sed -e 's;%VSN%;$(VSN);' $< > $@
98
99$(WEB_TARGET): ../markup/*
100 rm -rf $(WEB_TARGET)
101 mkdir $(WEB_TARGET)
102 cp -r ../markup/ $(WEB_TARGET)
103 cp -r ../skins/ $(WEB_TARGET)
104
105# ----------------------------------------------------
106# Install Target
107# ----------------------------------------------------
108
109install: all $(WEB_TARGET)
110# $(INSTALL_DIR) $(INSTALL_DST)/src
111# $(INSTALL_DATA) $(ERL_FILES) $(INSTALL_DST)/src
112# $(INSTALL_DATA) $(INTERNAL_HRL_FILES) $(INSTALL_DST)/src
113# $(INSTALL_DIR) $(INSTALL_DST)/include
114# $(INSTALL_DATA) $(HRL_FILES) $(INSTALL_DST)/include
115# $(INSTALL_DIR) $(INSTALL_DST)/ebin
116# $(INSTALL_DATA) $(TARGET_FILES) $(INSTALL_DST)/ebin