00001 # Prerequisite: COMMON_TOP must be set. 00002 00003 00004 # Project section. 00005 00006 # PROJECT_NAME should be defined on a per-project basis. 00007 ifndef PROJECT_NAME 00008 PROJECT_NAME = Ceylan-common 00009 endif 00010 00011 00012 # PROJECT_VERSION should be defined on a per-project basis. 00013 ifndef PROJECT_VERSION 00014 PROJECT_VERSION = 0.1 00015 endif 00016 00017 00018 ARCHIVE_ROOT := $$HOME/Archive/$(PROJECT_NAME) 00019 00020 00021 ARCHIVE_FILE := $(ARCHIVE_ROOT)/`date +'%Y%m%d'`-$(PROJECT_NAME).tar.bz2 00022 00023 00024 ARCHIVE_BRANCH_FILE = $(ARCHIVE_ROOT)/`date +'%Y%m%d'`-$(PROJECT_NAME)-branch-$(shell basename `pwd`).tar.bz2 00025 00026 00027 00028 SNAPSHOT_ARCHIVE_FILE := $(ARCHIVE_ROOT)/`date +'%Y%m%d'`-$(PROJECT_NAME)-snapshot.tar.bz2 00029 00030 00031 PROJECT_RELEASE_BASE := $(PROJECT_NAME)-$(PROJECT_VERSION) 00032 00033 PROJECT_RELEASE_ARCHIVE_ZIP := $(PROJECT_RELEASE_BASE).zip 00034 PROJECT_RELEASE_ARCHIVE_BZ2 := $(PROJECT_RELEASE_BASE).tar.bz2 00035 00036 00037 00038 00039 # Source section. 00040 COMMON_SRC := $(COMMON_TOP)/src 00041 00042 # BEAM path section. 00043 COMMON_BEAM := $(COMMON_TOP)/src 00044 00045 # Include path section. 00046 COMMON_INC = -I$(COMMON_SRC) 00047 00048 00049 INC += -I. $(COMMON_INC) 00050 00051 00052 # Erlang environment section. 00053 00054 ERLANG_ROOT := ~/Software/Erlang/Erlang-current-install 00055 00056 ERLANG_COMPILER := `PATH=$(ERLANG_ROOT)/bin:$$PATH which erlc` 00057 00058 00059 WARNING_LEVEL := 2 00060 00061 ERLANG_COMPILER_OPT_DEBUG := +debug_info 00062 00063 00064 00065 ERLANG_INTERPRETER := `PATH=$(ERLANG_ROOT)/bin:$$PATH which erl` 00066 00067 ERLANG_INTERPRETER_OPT_DEBUG := -init_debug -smp auto 00068 00069 00070 ifndef FQDN 00071 00072 #FQDN := `host \`hostname\` | awk '{ print $$1 }' | head -n 1` 00073 FQDN := `hostname -f` 00074 00075 endif 00076 00077 00078 ifndef VM_TEST_NAME 00079 00080 VM_NAME := ceylan_debug 00081 00082 endif 00083 00084 00085 ifndef VM_TEST_NAME 00086 00087 VM_TEST_NAME := ceylan_test 00088 00089 endif 00090 00091 00092 #DISTRIBUTED_NODE_OPT := -sname $(VM_NAME) -setcookie $(PROJECT_NAME) 00093 DISTRIBUTED_NODE_OPT := -name $(VM_NAME)@$(FQDN) -setcookie $(PROJECT_NAME) 00094 00095 00096 STARTUP_FUNCTION := run 00097 00098 BEAM_DIRS += . $(COMMON_BEAM) 00099 00100 00101 ERL_LAUNCHER = $(COMMON_SRC)/launch-erl.sh 00102 00103 00104 # Add '+native' if native-code compilation is supported: 00105 ERLANG_COMPILER_OPT := -b beam $(INC) -v -W$(WARNING_LEVEL) \ 00106 $(ERLANG_COMPILER_OPT_DEBUG) 00107 00108 00109 # +v (verbose) option removed, as only active if the interpreter has been 00110 # compiled in debug mode (otherwise a warning is displayed at each execution). 00111 # (note: variable generally not used, as using the ERL_LAUNCHER script instead) 00112 ERLANG_INTERPRETER_OPT := -pz $(BEAM_DIRS) $(DISTRIBUTED_NODE_OPT) 00113 00114 00115 00116 # 'BEAM_PATH_OPT = --beam-paths $(BEAM_DIRS)' would be shorter, but would 00117 # prevent adding other options to the launcher afterwards: 00118 BEAM_PATH_OPT = $(foreach dir,$(BEAM_DIRS),--beam-dir $(dir)) 00119 00120 00121 ERL_PARAMETERIZED_LAUNCHER = $(ERL_LAUNCHER) -v -c $(PROJECT_NAME) --ln $(VM_TEST_NAME) --fqdn $(FQDN) $(BEAM_PATH_OPT) 00122