1############################################################################# 2# Software Testing Automation Framework (STAF) # 3# (C) Copyright IBM Corp. 2001, 2005, 2008 # 4# # 5# This software is licensed under the Eclipse Public License (EPL) V1.0. # 6############################################################################# 7 8LIB_STAFTCP = $(subst Name,STAFTCP,$(DLL)) 9 10staf_connprov_tcp_targets += $(REL)/lib/$(LIB_STAFTCP) 11 12Targets += $(staf_connprov_tcp_targets) \ 13 $(REL)/bin/CAList.crt \ 14 $(REL)/bin/STAFDefault.crt \ 15 $(REL)/bin/STAFDefault.key 16 17ifdef STAF_USE_SSL 18 ifndef OPENSSL_ROOT 19 $(error You must set OPENSSL_ROOT to the full pathname where you installed OpenSSL) 20 endif 21 22 ifeq ($(OS_NAME),win32) 23 OPENSSL_LIBDIRS ?= $(OPENSSL_ROOT:/=)/bin 24 SSL_LIB1 = ssleay32 25 SSL_LIB2 = libeay32 26 LIB_SSL_V = $(subst Name,$(SSL_LIB1),$(DLL)) 27 LIB_CRYPTO_V = $(subst Name,$(SSL_LIB2),$(DLL)) 28 else 29 OPENSSL_LIBDIRS ?= $(OPENSSL_ROOT:/=)/lib 30 SSL_LIB1 = ssl 31 SSL_LIB2 = crypto 32 33 # Determine the version used in the OpenSSL library names 34 ifeq ($(OS_NAME),macosx) 35 LIB_SSL_PART1 = $(OPENSSL_LIBDIRS)/lib$(SSL_LIB1). 36 LIB_SSL_PART2 = $(subst $(LIB_SSL_PART1),,$(shell ls $(LIB_SSL_PART1)*.dylib)) 37 OPENSSL_VERSION ?= $(subst .dylib,,$(LIB_SSL_PART2)) 38 LIB_SSL_V = $(subst Name,$(SSL_LIB1).$(OPENSSL_VERSION),$(DLL)) 39 LIB_CRYPTO_V = $(subst Name,$(SSL_LIB2).$(OPENSSL_VERSION),$(DLL)) 40 else 41 LIB_SSL_PART1 = $(OPENSSL_LIBDIRS)/$(subst Name,$(SSL_LIB1),$(DLL)). 42 OPENSSL_VERSION ?= $(subst $(LIB_SSL_PART1),,$(shell ls $(LIB_SSL_PART1)*)) 43 LIB_SSL_V = $(subst Name,$(SSL_LIB1),$(DLL)) 44 LIB_CRYPTO_V = $(subst Name,$(SSL_LIB2),$(DLL)) 45 endif 46 endif 47 48 # Verify that the two OpenSSL libraries required exist 49 ifneq ($(OPENSSL_LIBDIRS)/$(LIB_SSL_V), $(shell find $(OPENSSL_LIBDIRS)/$(LIB_SSL_V) -print)) 50 $(info find $(OPENSSL_LIBDIRS)/$(LIB_SSL_V) -print) 51 $(error Could not find file $(LIB_SSL_V) in directory $(OPENSSL_LIBDIRS).\ 52 Check your settings for OPENSSL_ROOT, OPENSSL_VERSION, and STAF_USE_SSL.\ 53 You may also have to set OPENSSL_LIBDIRS to the directory containing file $(LIB_SSL_V).) 54 endif 55 ifneq ($(OPENSSL_LIBDIRS)/$(LIB_CRYPTO_V), $(shell find $(OPENSSL_LIBDIRS)/$(LIB_CRYPTO_V) -print)) 56 $(info find $(OPENSSL_LIBDIRS)/$(LIB_CRYPTO_V) -print) 57 $(error Could not find file $(LIB_CRYPTO_V) in directory $(OPENSSL_LIBDIRS).\ 58 Check your settings for OPENSSL_ROOT, OPENSSL_VERSION, and STAF_USE_SSL.\ 59 You may also have to set OPENSSL_LIBDIRS to the directory containing file $(LIB_CRYPTO_V).) 60 endif 61 62 ifneq ($(filter aix aix64,$(OS_NAME)),) 63 # On aix and aix64, don't include the version number in the OpenSSL library names shipped with STAF 64 LIB_SSL = $(subst Name,$(SSL_LIB1),$(DLL)) 65 LIB_CRYPTO = $(subst Name,$(SSL_LIB2),$(DLL)) 66 else 67 LIB_SSL = $(LIB_SSL_V) 68 LIB_CRYPTO = $(LIB_CRYPTO_V) 69 endif 70 71 OPENSSL_INCLUDEDIRS ?= $(OPENSSL_ROOT:/=)/include 72endif 73 74CleanupTargets += cleanup_staf_connprov_tcp 75 76$(staf_connprov_tcp_targets): SUBSYS_REL := connproviders/tcp 77SUBSYS_REL := connproviders/tcp 78 79#===================================================================== 80# C/C++ Info Flags 81#===================================================================== 82ifdef STAF_USE_IPV6 83 CC_CFLAGS += -DSTAF_USE_IPV6 84endif 85ifdef STAF_USE_SSL 86 CC_CFLAGS += -DSTAF_USE_SSL 87endif 88 89$(staf_connprov_tcp_targets): LIBS = STAF $(OS_SOCKET_LIB) 90$(staf_connprov_tcp_targets): CFLAGS := $(CC_EXPORT_SHARED_LIB_SYMBOLS) 91$(REL)/lib/$(LIB_STAFTCP) : OBJS = $(staf_connprov_tcp_objs) 92ifdef STAF_USE_SSL 93 $(staf_connprov_tcp_targets): INCLUDEDIRS := $(OPENSSL_INCLUDEDIRS) 94endif 95 96staf_connprov_tcp_objs :=\ 97 STAFTCPConnProvider 98 99staf_connprov_tcp_objs := $(foreach obj,$(staf_connprov_tcp_objs),$(O)/connproviders/tcp/$(obj)$(OS_OE)) 100staf_connprov_tcp_dependents := $(staf_connprov_tcp_objs:$(OS_OE)=.d) 101 102ifeq ($(OS_NAME),win32) 103 ifdef STAF_USE_IPV6 104 $(staf_connprov_tcp_targets): CC_INCLUDEDIRS := $(MSSDKDIR)\INCLUDE + $(CC_INCLUDEDIRS) 105 ifneq ($(CC_TYPE),MVC-SDK-IA64) 106 $(staf_connprov_tcp_targets): CC_LIBDIRS := $(MSSDKDIR)\LIB + $(CC_LIBDIRS) 107 endif 108 endif 109 staf_connprov_tcp_objs += $(SR_SRC)/STAFTCP.def 110 $(staf_connprov_tcp_targets): LIBS = STAF $(OS_SOCKET_LIB) WS2_32 $(if $(STAF_USE_SSL),$(SSL_LIB1) $(SSL_LIB2)) 111else 112 $(staf_connprov_tcp_targets): LIBS = STAF $(OS_SOCKET_LIB) $(if $(STAF_USE_SSL),$(SSL_LIB1) $(SSL_LIB2)) 113endif 114 115ifdef STAF_USE_SSL 116 LIBDIRS += $(OPENSSL_ROOT)/lib 117 CC_INCLUDEDIRS += $(OPENSSL_INCLUDEDIRS) 118endif 119 120# Include dependencies 121ifneq ($(InCleanup), "1") 122 include $(staf_connprov_tcp_dependents) 123endif 124 125# Include inference rules 126include $(InferenceRules) 127 128# STAF TCP connection provider targets 129 130$(REL)/lib/$(LIB_STAFTCP): $(staf_connprov_tcp_objs) $(LIB_STAF_FP) $(MAKEFILE_NAME) 131 $(SHARED_LIB_IT) 132 133$(REL)/bin/CAList.crt: $(SRC)/$(SUBSYS_REL)/CAList.crt 134 $(COPY_FILE) 135 136$(REL)/bin/STAFDefault.crt: $(SRC)/$(SUBSYS_REL)/STAFDefault.crt 137 $(COPY_FILE) 138 139$(REL)/bin/STAFDefault.key: $(SRC)/$(SUBSYS_REL)/STAFDefault.key 140 $(COPY_FILE) 141 142cleanup_staf_connprov_tcp: 143 -@$(DEL) $(O)/connproviders/tcp/* $(OUT_ERR_TO_DEV_NULL) 144 -@$(DEL) $(REL)/lib/$(LIB_STAFTCP) $(OUT_ERR_TO_DEV_NULL) 145