Blame view

buildroot/buildroot-2016.08.1/package/openssl/openssl.mk 5.09 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
  ################################################################################
  #
  # openssl
  #
  ################################################################################
  
  OPENSSL_VERSION = 1.0.2h
  OPENSSL_SITE = http://www.openssl.org/source
  OPENSSL_LICENSE = OpenSSL or SSLeay
  OPENSSL_LICENSE_FILES = LICENSE
  OPENSSL_INSTALL_STAGING = YES
  OPENSSL_DEPENDENCIES = zlib
  HOST_OPENSSL_DEPENDENCIES = host-zlib
  OPENSSL_TARGET_ARCH = generic32
  OPENSSL_CFLAGS = $(TARGET_CFLAGS)
  OPENSSL_PATCH = \
  	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2d-parallel-build.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d \
  	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d \
  	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d \
  	https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-libs/openssl/files/openssl-1.0.2a-parallel-symlinking.patch?id=c8abcbe8de5d3b6cdd68c162f398c011ff6e2d9d
  
  # relocation truncated to fit: R_68K_GOT16O
  ifeq ($(BR2_m68k_cf),y)
  OPENSSL_CFLAGS += -mxgot
  endif
  
  ifeq ($(BR2_USE_MMU),)
  OPENSSL_CFLAGS += -DHAVE_FORK=0
  endif
  
  ifeq ($(BR2_PACKAGE_CRYPTODEV_LINUX),y)
  OPENSSL_CFLAGS += -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS
  OPENSSL_DEPENDENCIES += cryptodev-linux
  endif
  
  ifeq ($(BR2_PACKAGE_OCF_LINUX),y)
  OPENSSL_CFLAGS += -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS
  OPENSSL_DEPENDENCIES += ocf-linux
  endif
  
  # Some architectures are optimized in OpenSSL
  # Doesn't work for thumb-only (Cortex-M?)
  ifeq ($(BR2_ARM_CPU_HAS_ARM),y)
  OPENSSL_TARGET_ARCH = armv4
  endif
  ifeq ($(ARCH),aarch64)
  OPENSSL_TARGET_ARCH = aarch64
  endif
  ifeq ($(ARCH),powerpc)
  # 4xx cores seem to have trouble with openssl's ASM optimizations
  ifeq ($(BR2_powerpc_401)$(BR2_powerpc_403)$(BR2_powerpc_405)$(BR2_powerpc_405fp)$(BR2_powerpc_440)$(BR2_powerpc_440fp),)
  OPENSSL_TARGET_ARCH = ppc
  endif
  endif
  ifeq ($(ARCH),powerpc64)
  OPENSSL_TARGET_ARCH = ppc64
  endif
  ifeq ($(ARCH),powerpc64le)
  OPENSSL_TARGET_ARCH = ppc64le
  endif
  ifeq ($(ARCH),x86_64)
  OPENSSL_TARGET_ARCH = x86_64
  endif
  
  define HOST_OPENSSL_CONFIGURE_CMDS
  	(cd $(@D); \
  		$(HOST_CONFIGURE_OPTS) \
  		./config \
  		--prefix=$(HOST_DIR)/usr \
  		--openssldir=$(HOST_DIR)/etc/ssl \
  		--libdir=/lib \
  		shared \
  		zlib-dynamic \
  	)
  	$(SED) "s#-O[0-9]#$(HOST_CFLAGS)#" $(@D)/Makefile
  endef
  
  define OPENSSL_CONFIGURE_CMDS
  	(cd $(@D); \
  		$(TARGET_CONFIGURE_ARGS) \
  		$(TARGET_CONFIGURE_OPTS) \
  		./Configure \
  			linux-$(OPENSSL_TARGET_ARCH) \
  			--prefix=/usr \
  			--openssldir=/etc/ssl \
  			--libdir=/lib \
  			$(if $(BR2_TOOLCHAIN_HAS_THREADS),threads,no-threads) \
  			$(if $(BR2_STATIC_LIBS),no-shared,shared) \
  			no-rc5 \
  			enable-camellia \
  			enable-mdc2 \
  			enable-tlsext \
  			$(if $(BR2_STATIC_LIBS),zlib,zlib-dynamic) \
  			$(if $(BR2_STATIC_LIBS),no-dso) \
  	)
  	$(SED) "s#-march=[-a-z0-9] ##" -e "s#-mcpu=[-a-z0-9] ##g" $(@D)/Makefile
  	$(SED) "s#-O[0-9]#$(OPENSSL_CFLAGS)#" $(@D)/Makefile
  	$(SED) "s# build_tests##" $(@D)/Makefile
  endef
  
  # libdl is not available in a static build, and this is not implied by no-dso
  ifeq ($(BR2_STATIC_LIBS),y)
  define OPENSSL_FIXUP_STATIC_MAKEFILE
  	$(SED) 's#-ldl##g' $(@D)/Makefile
  endef
  OPENSSL_POST_CONFIGURE_HOOKS += OPENSSL_FIXUP_STATIC_MAKEFILE
  endif
  
  define HOST_OPENSSL_BUILD_CMDS
  	$(MAKE) -C $(@D)
  endef
  
  define OPENSSL_BUILD_CMDS
  	$(MAKE) -C $(@D)
  endef
  
  define OPENSSL_INSTALL_STAGING_CMDS
  	$(MAKE) -C $(@D) INSTALL_PREFIX=$(STAGING_DIR) install
  endef
  
  define HOST_OPENSSL_INSTALL_CMDS
  	$(MAKE) -C $(@D) install
  endef
  
  define OPENSSL_INSTALL_TARGET_CMDS
  	$(MAKE) -C $(@D) INSTALL_PREFIX=$(TARGET_DIR) install
  	rm -rf $(TARGET_DIR)/usr/lib/ssl
  	rm -f $(TARGET_DIR)/usr/bin/c_rehash
  endef
  
  # libdl has no business in a static build
  ifeq ($(BR2_STATIC_LIBS),y)
  define OPENSSL_FIXUP_STATIC_PKGCONFIG
  	$(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/libcrypto.pc
  	$(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/libssl.pc
  	$(SED) 's#-ldl##' $(STAGING_DIR)/usr/lib/pkgconfig/openssl.pc
  endef
  OPENSSL_POST_INSTALL_STAGING_HOOKS += OPENSSL_FIXUP_STATIC_PKGCONFIG
  endif
  
  ifneq ($(BR2_STATIC_LIBS),y)
  # libraries gets installed read only, so strip fails
  define OPENSSL_INSTALL_FIXUPS_SHARED
  	chmod +w $(TARGET_DIR)/usr/lib/engines/lib*.so
  	for i in $(addprefix $(TARGET_DIR)/usr/lib/,libcrypto.so.* libssl.so.*); \
  	do chmod +w $$i; done
  endef
  OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_INSTALL_FIXUPS_SHARED
  endif
  
  ifeq ($(BR2_PACKAGE_PERL),)
  define OPENSSL_REMOVE_PERL_SCRIPTS
  	$(RM) -f $(TARGET_DIR)/etc/ssl/misc/{CA.pl,tsget}
  endef
  OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_PERL_SCRIPTS
  endif
  
  ifeq ($(BR2_PACKAGE_OPENSSL_BIN),)
  define OPENSSL_REMOVE_BIN
  	$(RM) -f $(TARGET_DIR)/usr/bin/openssl
  	$(RM) -f $(TARGET_DIR)/etc/ssl/misc/{CA.*,c_*}
  endef
  OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_BIN
  endif
  
  ifneq ($(BR2_PACKAGE_OPENSSL_ENGINES),y)
  define OPENSSL_REMOVE_OPENSSL_ENGINES
  	rm -rf $(TARGET_DIR)/usr/lib/engines
  endef
  OPENSSL_POST_INSTALL_TARGET_HOOKS += OPENSSL_REMOVE_OPENSSL_ENGINES
  endif
  
  $(eval $(generic-package))
  $(eval $(host-generic-package))