# $Id: Makefile,v 1.3 2004/08/13 16:35:59 mlogan Exp $ # include ../build/otp.mk include ../build/colors.mk include ../build/buildtargets.mk # ---------------------------------------------------- # Application version # ---------------------------------------------------- include ../vsn.mk APP_NAME=thrift PFX=thrift VSN=$(THRIFT_VSN) # ---------------------------------------------------- # Install directory specification # WARNING: INSTALL_DIR the command to install a directory. # INSTALL_DST is the target directory # ---------------------------------------------------- INSTALL_DST = $(ERLANG_OTP)/lib/$(APP_NAME)-$(VSN) # ---------------------------------------------------- # Target Specs # ---------------------------------------------------- MODULES = $(shell find . -name \*.erl | sed 's:^\./::' | sed 's/\.erl//') MODULES_STRING_LIST = $(shell find . -name \*.erl | sed 's:^\./:":' | sed 's/\.erl/",/') HRL_FILES= INTERNAL_HRL_FILES= $(APP_NAME).hrl ERL_FILES= $(MODULES:%=%.erl) DOC_FILES=$(ERL_FILES) APP_FILE= $(APP_NAME).app APPUP_FILE= $(APP_NAME).appup APP_SRC= $(APP_FILE).src APPUP_SRC= $(APPUP_FILE).src APP_TARGET= $(EBIN)/$(APP_FILE) APPUP_TARGET= $(EBIN)/$(APPUP_FILE) BEAMS= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) TARGET_FILES= $(BEAMS) $(APP_TARGET) $(APPUP_TARGET) WEB_TARGET=/var/yaws/www/$(APP_NAME) # ---------------------------------------------------- # FLAGS # ---------------------------------------------------- ERL_FLAGS += ERL_INCLUDE = -I../include -I../../fslib/include -I../../system_status/include ERL_COMPILE_FLAGS += $(ERL_INCLUDE) +native # ---------------------------------------------------- # Targets # ---------------------------------------------------- all debug opt: $(EBIN) $(TARGET_FILES) #$(EBIN)/rm_logger.beam: $(APP_NAME).hrl include ../build/docs.mk # Note: In the open-source build clean must not destroy the preloaded # beam files. clean: rm -f $(TARGET_FILES) rm -f *~ rm -f core rm -rf $(EBIN) rm -rf *html $(EBIN): mkdir $(EBIN) dialyzer: $(TARGET_FILES) dialyzer --src -r . $(ERL_INCLUDE) # ---------------------------------------------------- # Special Build Targets # ---------------------------------------------------- $(APP_TARGET): $(APP_SRC) ../vsn.mk $(BEAMS) sed -e 's;%VSN%;$(VSN);' \ -e 's;%PFX%;$(PFX);' \ -e 's;%APP_NAME%;$(APP_NAME);' \ -e 's;%MODULES%;%MODULES%$(MODULES_STRING_LIST);' \ $< > $<".tmp" sed -e 's/%MODULES%\(.*\),/\1/' \ $<".tmp" > $@ rm $<".tmp" $(APPUP_TARGET): $(APPUP_SRC) ../vsn.mk sed -e 's;%VSN%;$(VSN);' $< > $@ $(WEB_TARGET): ../markup/* rm -rf $(WEB_TARGET) mkdir $(WEB_TARGET) cp -r ../markup/ $(WEB_TARGET) cp -r ../skins/ $(WEB_TARGET) # ---------------------------------------------------- # Install Target # ---------------------------------------------------- install: all $(WEB_TARGET) # $(INSTALL_DIR) $(INSTALL_DST)/src # $(INSTALL_DATA) $(ERL_FILES) $(INSTALL_DST)/src # $(INSTALL_DATA) $(INTERNAL_HRL_FILES) $(INSTALL_DST)/src # $(INSTALL_DIR) $(INSTALL_DST)/include # $(INSTALL_DATA) $(HRL_FILES) $(INSTALL_DST)/include # $(INSTALL_DIR) $(INSTALL_DST)/ebin # $(INSTALL_DATA) $(TARGET_FILES) $(INSTALL_DST)/ebin