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 = $(TFTP_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/tftp/src 45 46CP = cp 47 48ifeq ($(TESTROOT_DIR),) 49TESTROOT_DIR = /ldisk/tests/$(USER)/tftp 50endif 51 52ifeq ($(TFTP_DATA_DIR),) 53TFTP_DATA_DIR = $(TESTROOT_DIR)/data_dir 54endif 55 56ifeq ($(TFTP_PRIV_DIR),) 57TFTP_PRIV_DIR = $(TESTROOT_DIR)/priv_dir 58endif 59 60TFTP_FLAGS = -Dtftp__data_dir='"$(TFTP_DATA_DIR)"' \ 61 -Dtftp_priv_dir='"$(TFTP_PRIV_DIR)"' 62 63 64### 65### test suite debug flags 66### 67ifeq ($(TFTP_DEBUG_CLIENT),) 68 TFTP_DEBUG_CLIENT = y 69endif 70 71ifeq ($(TFTP_DEBUG_CLIENT),) 72 TFTP_FLAGS += -Dtftp_debug_client 73endif 74 75ifeq ($(TFTP_TRACE_CLIENT),) 76 TFTP_DEBUG_CLIENT = y 77endif 78 79ifeq ($(TFTP_TRACE_CLIENT),y) 80 TFTP_FLAGS += -Dtftp_trace_client 81endif 82 83ifneq ($(TFTP_DEBUG),) 84 TFTP_DEBUG = s 85endif 86 87ifeq ($(TFTP_DEBUG),l) 88 TFTP_FLAGS += -Dtftp_log 89endif 90 91ifeq ($(TFTP_DEBUG),d) 92 TFTP_FLAGS += -Dtftp_debug -Dtftp_log 93endif 94 95 96TFTP_FLAGS += -pa ../tftp/ebin 97 98TFTP_ROOT = ../tftp 99 100MODULES = \ 101 tftp_SUITE \ 102 tftp_test_lib 103 104 105EBIN = . 106 107HRL_FILES = \ 108 ../src/tftp.hrl \ 109 tftp_test_lib.hrl 110 111ERL_FILES = $(MODULES:%=%.erl) 112 113SOURCE = $(ERL_FILES) $(HRL_FILES) 114 115TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) 116 117TFTP_SPECS = tftp.spec 118COVER_FILE = tftp.cover 119TFTP_FILES = tftp.config $(TFTP_SPECS) 120 121 122TFTP_DATADIRS = tftp_SUITE_data 123 124DATADIRS = $(TFTP_DATADIRS) 125 126EMAKEFILE = Emakefile 127MAKE_EMAKE = $(wildcard $(ERL_TOP)/make/make_emakefile) 128 129ifeq ($(MAKE_EMAKE),) 130BUILDTARGET = $(TARGET_FILES) 131RELTEST_FILES = $(COVER_FILE) $(TFTP_SPECS) $(SOURCE) 132else 133BUILDTARGET = emakebuild 134RELTEST_FILES = $(EMAKEFILE) $(COVER_FILE) $(TFTP_SPECS) $(SOURCE) 135endif 136 137 138# ---------------------------------------------------- 139# Release directory specification 140# ---------------------------------------------------- 141 142RELTESTSYSDIR = "$(RELEASE_PATH)/tftp_test" 143RELTESTSYSALLDATADIR = $(RELTESTSYSDIR)/all_SUITE_data 144RELTESTSYSBINDIR = $(RELTESTSYSALLDATADIR)/bin 145 146 147# ---------------------------------------------------- 148# FLAGS 149# The path to the test_server ebin dir is needed when 150# running the target "targets". 151# ---------------------------------------------------- 152ERL_COMPILE_FLAGS += \ 153 $(INCLUDES) \ 154 $(TFTP_FLAGS) 155 156# ---------------------------------------------------- 157# Targets 158# erl -sname kalle -pa ../ebin 159# If you intend to run the test suite locally (private), then 160# there is some requirements: 161# 1) TFTP_PRIV_DIR must be created 162# ---------------------------------------------------- 163 164tests debug opt: $(BUILDTARGET) 165 166targets: $(TARGET_FILES) 167 168.PHONY: emakebuild 169 170emakebuild: $(EMAKEFILE) 171 172$(EMAKEFILE): 173 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' | grep -v Warning > $(EMAKEFILE) 174 $(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) | grep -v Warning >> $(EMAKEFILE) 175 176clean: 177 rm -f $(EMAKEFILE) 178 rm -f $(TARGET_FILES) 179 rm -f core *~ 180 181docs: 182 183 184# ---------------------------------------------------- 185# Release Target 186# ---------------------------------------------------- 187include $(ERL_TOP)/make/otp_release_targets.mk 188 189release_spec: opt 190 $(INSTALL_DIR) "$(RELSYSDIR)/test" 191 $(INSTALL_DATA) $(HRL_FILES) $(ERL_FILES) "$(RELSYSDIR)/test" 192 $(INSTALL_DATA) $(TFTP_FILES) "$(RELSYSDIR)/test" 193 @for d in $(DATADIRS); do \ 194 echo "installing data dir $$d"; \ 195 if test -f $$d/TAR.exclude; then \ 196 echo $$d/TAR.exclude2 > $$d/TAR.exclude2; \ 197 cat $$d/TAR.exclude >> $$d/TAR.exclude2; \ 198 find $$d -name '*.contrib*' >> $$d/TAR.exclude2; \ 199 find $$d -name '*.keep*' >> $$d/TAR.exclude2; \ 200 find $$d -name '*.mkelem*' >> $$d/TAR.exclude2; \ 201 find $$d -name '*~' >> $$d/TAR.exclude2; \ 202 find $$d -name 'erl_crash.dump' >> $$d/TAR.exclude2; \ 203 find $$d -name 'core' >> $$d/TAR.exclude2; \ 204 find $$d -name '.cmake.state' >> $$d/TAR.exclude2; \ 205 tar cfX - $$d/TAR.exclude2 $$d | (cd "$(RELSYSDIR)/test"; tar xf -); \ 206 else \ 207 tar cf - $$d | (cd "$(RELSYSDIR)/test"; tar xf -); \ 208 fi; \ 209 done 210 211release_tests_spec: opt 212 $(INSTALL_DIR) $(RELTESTSYSDIR) 213 $(INSTALL_DATA) $(RELTEST_FILES) $(RELTESTSYSDIR) 214 chmod -R u+w $(RELTESTSYSDIR) 215 tar chf - $(DATADIRS) | (cd $(RELTESTSYSDIR); tar xf -) 216 $(INSTALL_DIR) $(RELTESTSYSALLDATADIR) 217 $(INSTALL_DIR) $(RELTESTSYSBINDIR) 218 chmod -R +x $(RELTESTSYSBINDIR) 219 $(INSTALL_DIR) $(RELTESTSYSALLDATADIR)/win32/lib 220 221release_docs_spec: 222 223info: 224 @echo "MAKE_EMAKE = $(MAKE_EMAKE)" 225 @echo "EMAKEFILE = $(EMAKEFILE)" 226 @echo "BUILDTARGET = $(BUILDTARGET)" 227 @echo "" 228 @echo "MODULES = $(MODULES)" 229 @echo "ERL_FILES = $(ERL_FILES)" 230 @echo "SOURCE = $(SOURCE)" 231 @echo "TARGET_FILES = $(TARGET_FILES)" 232 @echo "" 233 @echo "TFTP_SPECS = $(TFTP_SPECS)" 234 @echo "TFTP_FILES = $(TFTP_FILES)" 235 @echo "" 236 @echo "RELEASE_PATH = "$(RELEASE_PATH)"" 237 @echo "RELSYSDIR = "$(RELSYSDIR)"" 238 @echo "RELTESTSYSDIR = $(RELTESTSYSDIR)" 239 @echo "RELTESTSYSALLDATADIR = $(RELTESTSYSALLDATADIR)" 240 @echo "RELTESTSYSBINDIR = $(RELTESTSYSBINDIR)" 241 @echo "" 242 @echo "DATADIRS = $(DATADIRS)" 243 @echo "REL_DATADIRS = $(REL_DATADIRS)" 244 @echo "" 245 @echo "TFTP_DATA_DIR = $(TFTP_DATA_DIR)" 246 @echo "TFTP_PRIV_DIR = $(TFTP_PRIV_DIR)" 247 @echo "TFTP_ROOT = $(TFTP_ROOT)" 248 @echo "TFTP_FLAGS = $(TFTP_FLAGS)" 249 250 251