aboutsummaryrefslogblamecommitdiffstats
path: root/lib/inets/test/Makefile
blob: 1dd7a517173bfe5e3c85b4f50314e65135aef885 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                  


                                                       




                                                                     
 



                                                                        
 

















                                                                





                                                      



























































































































































                                                            

                                   

                                                 
                                           
                                         
 





                           
 





                                                                                    











                                                       
 


                                                      























































                                                                                                    












                                                                                







                                                                            












                                                                                   



                                                
                                                   












                                                              












                                                                                                                             
#
# %CopyrightBegin%
#
# Copyright Ericsson AB 1997-2010. All Rights Reserved.
#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
# compliance with the License. You should have received a copy of the
# Erlang Public License along with this software. If not, it can be
# retrieved online at http://www.erlang.org/.
#
# Software distributed under the License is distributed on an "AS IS"
# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
# the License for the specific language governing rights and limitations
# under the License.
#
# %CopyrightEnd%
#
#
# For an outline of how this all_SUITE_data stuff works, see the
# make file ../../ssl/test/Makefile.
#
include $(ERL_TOP)/make/target.mk

include $(ERL_TOP)/make/$(TARGET)/otp.mk

# ----------------------------------------------------
# Application version
# ----------------------------------------------------
include ../vsn.mk
VSN = $(INETS_VSN)


# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------
RELSYSDIR = $(RELEASE_PATH)/lib/$(APPLICATION)-$(VSN)


# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
INCLUDES = -I. \
	-I$(ERL_TOP)/lib/test_server/include/ \
	-I$(ERL_TOP)/lib/inets/src/inets_app \
	-I$(ERL_TOP)/lib/inets/src/http_lib \
	-I$(ERL_TOP)/lib/inets/src/http_client \
	-I$(ERL_TOP)/lib/inets/src/ftp

CP = cp

ifeq ($(TESTROOT_DIR),)
TESTROOT_DIR = /ldisk/tests/$(USER)/inets
endif

ifeq ($(INETS_DATA_DIR),)
INETS_DATA_DIR = $(TESTROOT_DIR)/data_dir
endif

ifeq ($(INETS_PRIV_DIR),)
INETS_PRIV_DIR = $(TESTROOT_DIR)/priv_dir
endif

INETS_FLAGS = -Dinets_data_dir='"$(INETS_DATA_DIR)"'       \
              -Dinets_priv_dir='"$(INETS_PRIV_DIR)"'


### 
### test suite debug flags
### 
ifeq ($(FTP_DEBUG_CLIENT),)
  FTP_DEBUG_CLIENT = y
endif

ifeq ($(FTP_DEBUG_CLIENT),)
  FTP_FLAGS += -Dftp_debug_client
endif

ifeq ($(FTP_TRACE_CLIENT),)
  FTP_DEBUG_CLIENT = y
endif

ifeq ($(FTP_TRACE_CLIENT),y)
  FTP_FLAGS += -Dftp_trace_client
endif

ifneq ($(FTP_DEBUG),)
  FTP_DEBUG = s
endif

ifeq ($(FTP_DEBUG),l)
  FTP_FLAGS += -Dftp_log
endif

ifeq ($(FTP_DEBUG),d)
  FTP_FLAGS += -Dftp_debug -Dftp_log
endif

ifeq ($(INETS_DEBUG),)
  INETS_DEBUG = d
endif

ifeq ($(INETS_DEBUG),l)
  INETS_FLAGS += -Dinets_log
endif

ifeq ($(INETS_DEBUG),d)
  INETS_FLAGS += -Dinets_debug -Dinets_log
endif


### 
### HTTPD verbosity flags
### 

ifneq ($(MANV),)
  INETS_FLAGS += -Dhttpd_manager_verbosity=$(MANV)
else
  INETS_FLAGS += -Dhttpd_manager_verbosity=trace
endif

ifneq ($(REQV),)
  INETS_FLAGS += -Dhttpd_request_handler_verbosity=$(REQV)
else
  INETS_FLAGS += -Dhttpd_request_handler_verbosity=trace
endif

ifneq ($(ACCV),)
  INETS_FLAGS += -Dhttpd_acceptor_verbosity=$(ACCV)
else
  INETS_FLAGS += -Dhttpd_acceptor_verbosity=trace
endif

ifneq ($(AUTHV),)
  INETS_FLAGS += -Dhttpd_auth_verbosity=$(AUTHV)
else
  INETS_FLAGS += -Dhttpd_auth_verbosity=log
endif

ifneq ($(SECV),)
  INETS_FLAGS += -Dhttpd_security_verbosity=$(SECV)
else
  INETS_FLAGS += -Dhttpd_security_verbosity=log
endif

INETS_ROOT = ../../inets

MODULES =                 		\
	inets_test_lib    		\
	ftp_SUITE 	  		\
	ftp_format_SUITE  		\
	ftp_solaris8_sparc_test		\
	ftp_solaris9_sparc_test		\
	ftp_solaris10_sparc_test	\
	ftp_solaris10_x86_test		\
	ftp_linux_x86_test		\
	ftp_linux_ppc_test		\
	ftp_macosx_x86_test		\
	ftp_macosx_ppc_test		\
	ftp_openbsd_x86_test		\
	ftp_freebsd_x86_test		\
	ftp_netbsd_x86_test		\
	ftp_windows_xp_test		\
	ftp_windows_2003_server_test	\
	ftp_suite_lib	  		\
	ftp_ticket_test			\
	http_format_SUITE 		\
	httpc_SUITE	  		\
	httpc_cookie_SUITE		\
	httpd_SUITE       		\
	httpd_basic_SUITE		\
	httpd_mod 	  		\
	httpd_block	  		\
	httpd_load        		\
	httpd_time_test	  		\
	httpd_1_1         		\
	httpd_test_lib    		\
	inets_sup_SUITE   		\
	inets_SUITE       		\
        inets_app_test    		\
        inets_appup_test  		\
        tftp_test_lib			\
        tftp_SUITE


EBIN = .

HRL_FILES = inets_test_lib.hrl \
	    inets_internal.hrl \
	    ftp_internal.hrl   \
            httpc_internal.hrl \
            http_internal.hrl \
            tftp_test_lib.hrl

ERL_FILES = $(MODULES:%=%.erl)

SOURCE = $(ERL_FILES) $(HRL_FILES) 

TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR))

INETS_SPECS = inets.spec inets.spec.vxworks
INETS_FILES = inets.config $(INETS_SPECS)

# SUB_SUITES = \
# 	inets_sup_suite \
# 	inets_httpd_suite \
# 	inets_httpc_suite \
# 	inets_ftp_suite \
# 	inets_tftp_suite

INETS_DATADIRS = inets_SUITE_data inets_sup_SUITE_data 
HTTPD_DATADIRS = httpd_test_data httpd_SUITE_data
HTTPC_DATADIRS = httpc_SUITE_data
FTP_DATADIRS   = ftp_SUITE_data  

DATADIRS     = $(INETS_DATADIRS) $(HTTPD_DATADIRS) $(HTTPC_DATADIRS) $(FTP_DATADIRS)

EMAKEFILE  = Emakefile
MAKE_EMAKE = $(wildcard $(ERL_TOP)/make/make_emakefile)

ifeq ($(MAKE_EMAKE),)
BUILDTARGET   = $(TARGET_FILES)
RELTEST_FILES = $(INETS_SPECS) $(SOURCE)
else
BUILDTARGET   = emakebuild
RELTEST_FILES = $(EMAKEFILE) $(INETS_SPECS) $(SOURCE)
endif


# ----------------------------------------------------
# Release directory specification
# ----------------------------------------------------

RELTESTSYSDIR        = $(RELEASE_PATH)/inets_test
RELTESTSYSALLDATADIR = $(RELTESTSYSDIR)/all_SUITE_data
RELTESTSYSBINDIR     = $(RELTESTSYSALLDATADIR)/bin

MAKEFILE_SRC = Makefile.src
INETS_SSL_LIB_DIR  = ../../ssl/usr/ssleay/


# ----------------------------------------------------
# FLAGS
# The path to the test_server ebin dir is needed when 
# running the target "targets".
# ----------------------------------------------------
ERL_COMPILE_FLAGS += -pa ../../../internal_tools/test_server/ebin \
                     $(INCLUDES) $(FTP_FLAGS) $(INETS_FLAGS)

# ----------------------------------------------------
# Targets
# erl -sname kalle -pa ../ebin
# If you intend to run the test suite locally (private), then
# there is some requirements:
# 1) INETS_PRIV_DIR must be created
# 2) INETS_SSL_LIB_DIR must be created with the same content as 
#    content comparable to all_SUITE_data/bin (see test-server).
# ----------------------------------------------------

tests debug opt: $(BUILDTARGET)

targets: $(TARGET_FILES)

.PHONY: emakebuild

emakebuild: $(EMAKEFILE)

$(EMAKEFILE): 
	$(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) '*_SUITE_make' | grep -v Warning > $(EMAKEFILE)
	$(MAKE_EMAKE) $(ERL_COMPILE_FLAGS) -o$(EBIN) $(MODULES) | grep -v Warning >> $(EMAKEFILE)

clean:
	rm -f $(EMAKEFILE)
	rm -f $(TARGET_FILES)
	rm -f core *~

docs:


# ----------------------------------------------------
# Release Target
# ---------------------------------------------------- 
include $(ERL_TOP)/make/otp_release_targets.mk

release_spec: opt
	$(INSTALL_DIR)  $(RELSYSDIR)/test
	$(INSTALL_DATA) $(HRL_FILES)   $(ERL_FILES) $(RELSYSDIR)/test
	$(INSTALL_DATA) $(INETS_FILES) $(RELSYSDIR)/test
	@for d in $(DATADIRS); do \
            echo "installing data dir $$d"; \
            echo $$d/TAR.exclude2 > $$d/TAR.exclude2; \
            cat $$d/TAR.exclude >> $$d/TAR.exclude2; \
            find $$d -name '*.contrib*'     >> $$d/TAR.exclude2; \
            find $$d -name '*.keep*'        >> $$d/TAR.exclude2; \
            find $$d -name '*.mkelem*'      >> $$d/TAR.exclude2; \
            find $$d -name '*~'             >> $$d/TAR.exclude2; \
            find $$d -name 'erl_crash.dump' >> $$d/TAR.exclude2; \
            find $$d -name 'core'           >> $$d/TAR.exclude2; \
            find $$d -name '.cmake.state'   >> $$d/TAR.exclude2; \
            tar cfX - $$d/TAR.exclude2 $$d | (cd $(RELSYSDIR)/test; tar xf -); \
        done

release_tests_spec: opt
	$(INSTALL_DIR) $(RELTESTSYSDIR)
	$(INSTALL_DATA) $(RELTEST_FILES) $(RELTESTSYSDIR)
	chmod -f -R u+w $(RELTESTSYSDIR)
	tar chf - $(DATADIRS) | (cd $(RELTESTSYSDIR); tar xf -)
	$(INSTALL_DIR) $(RELTESTSYSALLDATADIR)
	$(INSTALL_DATA) $(MAKEFILE_SRC) $(RELTESTSYSALLDATADIR)/Makefile.src
	$(INSTALL_DIR) $(RELTESTSYSBINDIR)
	chmod -f -R +x $(RELTESTSYSBINDIR)
	tar cf - -C $(INETS_SSL_LIB_DIR) . | (cd $(RELTESTSYSALLDATADIR); tar xf -)
	$(INSTALL_DIR) $(RELTESTSYSALLDATADIR)/win32/lib	
	tar cf - -C $(INETS_SSL_LIB_DIR)/win32/out32dll . | \
		(cd $(RELTESTSYSALLDATADIR)/win32/lib; tar xf -)

release_docs_spec:

info:
	@echo "MAKE_EMAKE        = $(MAKE_EMAKE)"
	@echo "EMAKEFILE         = $(EMAKEFILE)"
	@echo "BUILDTARGET       = $(BUILDTARGET)"
	@echo ""
	@echo "MODULES           = $(MODULES)"
	@echo "ERL_FILES         = $(ERL_FILES)"
	@echo "SOURCE            = $(SOURCE)"
	@echo "TARGET_FILES      = $(TARGET_FILES)"
	@echo ""
	@echo "INETS_SPECS       = $(INETS_SPECS)"
	@echo "INETS_FILES       = $(INETS_FILES)"
	@echo ""
	@echo "RELEASE_PATH      = $(RELEASE_PATH)"
	@echo "RELSYSDIR         = $(RELSYSDIR)"
	@echo "RELTESTSYSDIR     = $(RELTESTSYSDIR)"
	@echo "RELTESTSYSALLDATADIR = $(RELTESTSYSALLDATADIR)"
	@echo "RELTESTSYSBINDIR     = $(RELTESTSYSBINDIR)"
	@echo ""
	@echo "DATADIRS          = $(DATADIRS)"
	@echo "REL_DATADIRS      = $(REL_DATADIRS)"
	@echo ""
	@echo "INETS_DATA_DIR    = $(INETS_DATA_DIR)"
	@echo "INETS_PRIV_DIR    = $(INETS_PRIV_DIR)"
	@echo "INETS_SSL_LIB_DIR = $(INETS_SSL_LIB_DIR)"
	@echo "INETS_ROOT        = $(INETS_ROOT)"
	@echo "INETS_FLAGS       = $(INETS_FLAGS)"
	@echo "FTP_FLAGS         = $(FTP_FLAGS)"

tftp:
	erlc $(ERL_COMPILE_FLAGS) tftp_test_lib.erl tftp_SUITE.erl && erl -pa ../../inets/ebin -s tftp_SUITE t -s erlang halt

tftp_work:
	echo "tftp_test_lib:t([{tftp_SUITE, all}])."
	erlc $(ERL_COMPILE_FLAGS) tftp_test_lib.erl tftp_SUITE.erl && erl -pa ../../inets/ebin