1# 2# %CopyrightBegin% 3# 4# Copyright Ericsson AB 1997-2018. All Rights Reserved. 5# 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18# %CopyrightEnd% 19# 20# 21# For an outline of how this all_SUITE_data stuff works, see the 22# make file ../../ssl/test/Makefile. 23# 24include $(ERL_TOP)/make/target.mk 25include $(ERL_TOP)/make/$(TARGET)/otp.mk 26 27# ---------------------------------------------------- 28# Application version 29# ---------------------------------------------------- 30include ../vsn.mk 31VSN = $(FTP_VSN) 32 33 34# ---------------------------------------------------- 35# Release directory specification 36# ---------------------------------------------------- 37RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN) 38 39 40# ---------------------------------------------------- 41# Target Specs 42# ---------------------------------------------------- 43INCLUDES = -I. \ 44 -I$(ERL_TOP)/lib/ftp/src 45 46CP = cp 47 48ifeq ($(TESTROOT_DIR),) 49TESTROOT_DIR = /ldisk/tests/$(USER)/ftp 50endif 51 52ifeq ($(FTP_DATA_DIR),) 53FTP_DATA_DIR = $(TESTROOT_DIR)/data_dir 54endif 55 56ifeq ($(FTP_PRIV_DIR),) 57FTP_PRIV_DIR = $(TESTROOT_DIR)/priv_dir 58endif 59 60FTP_FLAGS = -Dftp__data_dir='"$(FTP_DATA_DIR)"' \ 61 -Dftp_priv_dir='"$(FTP_PRIV_DIR)"' 62 63 64### 65### test suite debug flags 66### 67ifeq ($(FTP_DEBUG_CLIENT),) 68 FTP_DEBUG_CLIENT = y 69endif 70 71ifeq ($(FTP_DEBUG_CLIENT),) 72 FTP_FLAGS += -Dftp_debug_client 73endif 74 75ifeq ($(FTP_TRACE_CLIENT),) 76 FTP_DEBUG_CLIENT = y 77endif 78 79ifeq ($(FTP_TRACE_CLIENT),y) 80 FTP_FLAGS += -Dftp_trace_client 81endif 82 83ifneq ($(FTP_DEBUG),) 84 FTP_DEBUG = s 85endif 86 87ifeq ($(FTP_DEBUG),l) 88 FTP_FLAGS += -Dftp_log 89endif 90 91ifeq ($(FTP_DEBUG),d) 92 FTP_FLAGS += -Dftp_debug -Dftp_log 93endif 94 95 96FTP_FLAGS += -pa ../ftp/ebin 97 98FTP_ROOT = ../ftp 99 100MODULES = \ 101 erl_make_certs \ 102 ftp_SUITE \ 103 ftp_format_SUITE \ 104 ftp_test_lib 105 106 107EBIN = . 108 109HRL_FILES = \ 110 ftp_internal.hrl 111 112ERL_FILES = $(MODULES:%=%.erl) 113 114SOURCE = $(ERL_FILES) $(HRL_FILES) 115 116TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) 117 118FTP_SPECS = ftp.spec ftp_bench.spec 119COVER_FILE = ftp.cover 120FTP_FILES = ftp.config $(FTP_SPECS) 121 122 123FTP_DATADIRS = ftp_SUITE_data 124 125DATADIRS = $(FTP_DATADIRS) 126 127EMAKEFILE = Emakefile 128MAKE_EMAKE = $(wildcard $(ERL_TOP)/make/make_emakefile) 129 130ifeq ($(MAKE_EMAKE),) 131BUILDTARGET = $(TARGET_FILES) 132RELTEST_FILES = $(COVER_FILE) $(FTP_SPECS) $(SOURCE) 133else 134BUILDTARGET = emakebuild 135RELTEST_FILES = $(EMAKEFILE) $(COVER_FILE) $(FTP_SPECS) $(SOURCE) 136endif 137 138 139# ---------------------------------------------------- 140# Release directory specification 141# ---------------------------------------------------- 142 143RELTESTSYSDIR = "$(RELEASE_PATH)/ftp_test" 144RELTESTSYSALLDATADIR = $(RELTESTSYSDIR)/all_SUITE_data 145RELTESTSYSBINDIR = $(RELTESTSYSALLDATADIR)/bin 146 147 148# ---------------------------------------------------- 149# FLAGS 150# The path to the test_server ebin dir is needed when 151# running the target "targets". 152# ---------------------------------------------------- 153ERL_COMPILE_FLAGS += \ 154 $(INCLUDES) \ 155 $(FTP_FLAGS) 156 157# ---------------------------------------------------- 158# Targets 159# erl -sname kalle -pa ../ebin 160# If you intend to run the test suite locally (private), then 161# there is some requirements: 162# 1) FTP_PRIV_DIR must be created 163# ---------------------------------------------------- 164 165tests debug opt: $(BUILDTARGET) 166 167targets: $(TARGET_FILES) 168 169.PHONY: emakebuild 170 171emakebuild: $(EMAKEFILE) 172 173$(EMAKEFILE): 174 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' | grep -v Warning > $(EMAKEFILE) 175 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) | grep -v Warning >> $(EMAKEFILE) 176 177clean: 178 rm -f $(EMAKEFILE) 179 rm -f $(TARGET_FILES) 180 rm -f core *~ 181 182docs: 183 184 185# ---------------------------------------------------- 186# Release Target 187# ---------------------------------------------------- 188include $(ERL_TOP)/make/otp_release_targets.mk 189 190release_spec: opt 191 $(INSTALL_DIR) "$(RELSYSDIR)/test" 192 $(INSTALL_DATA) $(HRL_FILES) $(ERL_FILES) "$(RELSYSDIR)/test" 193 $(INSTALL_DATA) $(FTP_FILES) "$(RELSYSDIR)/test" 194 @for d in $(DATADIRS); do \ 195 echo "installing data dir $$d"; \ 196 if test -f $$d/TAR.exclude; then \ 197 echo $$d/TAR.exclude2 > $$d/TAR.exclude2; \ 198 cat $$d/TAR.exclude >> $$d/TAR.exclude2; \ 199 find $$d -name '*.contrib*' >> $$d/TAR.exclude2; \ 200 find $$d -name '*.keep*' >> $$d/TAR.exclude2; \ 201 find $$d -name '*.mkelem*' >> $$d/TAR.exclude2; \ 202 find $$d -name '*~' >> $$d/TAR.exclude2; \ 203 find $$d -name 'erl_crash.dump' >> $$d/TAR.exclude2; \ 204 find $$d -name 'core' >> $$d/TAR.exclude2; \ 205 find $$d -name '.cmake.state' >> $$d/TAR.exclude2; \ 206 tar cfX - $$d/TAR.exclude2 $$d | (cd "$(RELSYSDIR)/test"; tar xf -); \ 207 else \ 208 tar cf - $$d | (cd "$(RELSYSDIR)/test"; tar xf -); \ 209 fi; \ 210 done 211 212release_tests_spec: opt 213 $(INSTALL_DIR) $(RELTESTSYSDIR) 214 $(INSTALL_DATA) $(RELTEST_FILES) $(RELTESTSYSDIR) 215 chmod -R u+w $(RELTESTSYSDIR) 216 tar chf - $(DATADIRS) | (cd $(RELTESTSYSDIR); tar xf -) 217 $(INSTALL_DIR) $(RELTESTSYSALLDATADIR) 218 $(INSTALL_DIR) $(RELTESTSYSBINDIR) 219 chmod -R +x $(RELTESTSYSBINDIR) 220 $(INSTALL_DIR) $(RELTESTSYSALLDATADIR)/win32/lib 221 222release_docs_spec: 223 224info: 225 @echo "MAKE_EMAKE = $(MAKE_EMAKE)" 226 @echo "EMAKEFILE = $(EMAKEFILE)" 227 @echo "BUILDTARGET = $(BUILDTARGET)" 228 @echo "" 229 @echo "MODULES = $(MODULES)" 230 @echo "ERL_FILES = $(ERL_FILES)" 231 @echo "SOURCE = $(SOURCE)" 232 @echo "TARGET_FILES = $(TARGET_FILES)" 233 @echo "" 234 @echo "FTP_SPECS = $(FTP_SPECS)" 235 @echo "FTP_FILES = $(FTP_FILES)" 236 @echo "" 237 @echo "RELEASE_PATH = "$(RELEASE_PATH)"" 238 @echo "RELSYSDIR = "$(RELSYSDIR)"" 239 @echo "RELTESTSYSDIR = $(RELTESTSYSDIR)" 240 @echo "RELTESTSYSALLDATADIR = $(RELTESTSYSALLDATADIR)" 241 @echo "RELTESTSYSBINDIR = $(RELTESTSYSBINDIR)" 242 @echo "" 243 @echo "DATADIRS = $(DATADIRS)" 244 @echo "REL_DATADIRS = $(REL_DATADIRS)" 245 @echo "" 246 @echo "FTP_DATA_DIR = $(FTP_DATA_DIR)" 247 @echo "FTP_PRIV_DIR = $(FTP_PRIV_DIR)" 248 @echo "FTP_ROOT = $(FTP_ROOT)" 249 @echo "FTP_FLAGS = $(FTP_FLAGS)" 250 251 252