Makefile (8844B)
1 # 2 # Copyright (C) 2009-2015 OpenWrt.org 3 # 4 # This is free software, licensed under the GNU General Public License v2. 5 # See /LICENSE for more information. 6 # 7 8 include $(TOPDIR)/rules.mk 9 10 PKG_NAME:=erlang 11 PKG_VERSION:=17.5 12 PKG_RELEASE:=3 13 14 PKG_SOURCE:=otp_src_$(PKG_VERSION).tar.gz 15 PKG_SOURCE_URL:= http://www.erlang.org/download/ \ 16 http://erlang.mirror.su.se/ 17 PKG_MD5SUM:=346dd0136bf1cc28cebc140e505206bb 18 19 PKG_LICENSE:=ErlPL-1.1 20 PKG_LICENSE_FILES:=EPLICENCE 21 PKG_MAINTAINER:=Nicolas Thill <nico@openwrt.org> 22 23 PKG_BUILD_DEPENDS:=erlang/host openssl 24 PKG_USE_MIPS16:=0 25 26 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/otp_src_$(PKG_VERSION) 27 PKG_BUILD_DIR:=$(BUILD_DIR)/otp_src_$(PKG_VERSION) 28 29 include $(INCLUDE_DIR)/host-build.mk 30 include $(INCLUDE_DIR)/package.mk 31 32 define Package/erlang/Default 33 SUBMENU:=Erlang 34 SECTION:=lang 35 CATEGORY:=Languages 36 TITLE:=Erlang/OTP programming language 37 URL:=http://www.erlang.org/ 38 endef 39 40 define Package/erlang/Default/description 41 Erlang/OTP is a general-purpose programming language and runtime 42 environment. Erlang has built-in support for concurrency, distribution 43 and fault tolerance. 44 endef 45 46 define Package/erlang 47 $(call Package/erlang/Default) 48 DEPENDS+= +libncurses +librt +zlib 49 PROVIDES:= erlang-erts=6.4 erlang-kernel=3.2 erlang-sasl=2.4.1 erlang-stdlib=2.4 50 endef 51 52 define Package/erlang/description 53 $(call Package/erlang/Default/description) 54 . 55 This package contains the runtime implementation and a minimal set of 56 modules (erts, kernel, sasl & stdlib). 57 endef 58 59 60 define Package/erlang-asn1 61 $(call Package/erlang/Default) 62 TITLE:=Abstract Syntax Notation One (ASN.1) support 63 VERSION:=3.0.4 64 DEPENDS+= +erlang +erlang-syntax-tools 65 endef 66 67 define Package/erlang-asn1/description 68 $(call Package/erlang/Default/description) 69 . 70 This Erlang/OTP package provides Abstract Syntax Notation One (ASN.1) 71 support. 72 endef 73 74 75 define Package/erlang-compiler 76 $(call Package/erlang/Default) 77 TITLE:=Byte code compiler 78 VERSION:=5.0.4 79 DEPENDS+= +erlang +erlang-hipe 80 endef 81 82 define Package/erlang-compiler/description 83 $(call Package/erlang/Default/description) 84 . 85 This Erlang/OTP package provides a byte code compiler for Erlang which 86 produces highly compact code. 87 endef 88 89 90 define Package/erlang-crypto 91 $(call Package/erlang/Default) 92 TITLE:=Cryptography support 93 VERSION:=3.5 94 DEPENDS+= +erlang +libopenssl 95 endef 96 97 define Package/erlang-crypto/description 98 $(call Package/erlang/Default/description) 99 . 100 This Erlang/OTP package provides functions for computation of message 101 digests, and encryption and decryption functions. 102 endef 103 104 105 define Package/erlang-hipe 106 $(call Package/erlang/Default) 107 TITLE:=High Performance Erlang 108 VERSION:=3.11.3 109 DEPENDS+= +erlang 110 endef 111 112 define Package/erlang-hipe/description 113 $(call Package/erlang/Default/description) 114 . 115 This Erlang/OTP package provides HiPE (High Performance Erlang) 116 support. 117 endef 118 119 120 define Package/erlang-inets 121 $(call Package/erlang/Default) 122 TITLE:=Internet clients and servers 123 VERSION:=5.10.6 124 DEPENDS+= +erlang 125 endef 126 127 define Package/erlang-inets/description 128 $(call Package/erlang/Default/description) 129 . 130 This Erlang/OTP package provides a container for Internet clients and 131 servers. Currently a FTP client, a HTTP client and server, and a tftp 132 client and server have been incorporated in Inets. 133 endef 134 135 136 define Package/erlang-mnesia 137 $(call Package/erlang/Default) 138 TITLE:=Distributed database 139 VERSION:=4.12.5 140 DEPENDS+= +erlang 141 endef 142 143 define Package/erlang-mnesia/description 144 $(call Package/erlang/Default/description) 145 . 146 This Erlang/OTP package provides a distributed DataBase Management 147 System (DBMS), appropriate for telecommunications applications and 148 other Erlang applications which require continuous operation and 149 exhibit soft real-time properties. 150 endef 151 152 153 define Package/erlang-runtime-tools 154 $(call Package/erlang/Default) 155 TITLE:=Low-profile debugging/tracing tools 156 VERSION:=1.8.16 157 DEPENDS+= +erlang 158 endef 159 160 define Package/erlang-runtime-tools/description 161 $(call Package/erlang/Default/description) 162 . 163 This Erlang/OTP package provides low footprint tracing/debugging tools 164 suitable for inclusion in a production system. 165 endef 166 167 168 define Package/erlang-snmp 169 $(call Package/erlang/Default) 170 TITLE:=Simple Network Management Protocol (SNMP) support 171 VERSION:=5.1.1 172 DEPENDS+= +erlang +erlang-asn1 173 endef 174 175 define Package/erlang-snmp/description 176 $(call Package/erlang/Default/description) 177 . 178 This Erlang/OTP package provides Simple Network Management Protocol 179 (SNMP) support including a MIB compiler and tools for creating SNMP 180 agents. 181 endef 182 183 184 define Package/erlang-ssh 185 $(call Package/erlang/Default) 186 TITLE:=Secure Shell (SSH) support 187 VERSION:=3.2 188 DEPENDS+= +erlang +erlang-crypto 189 endef 190 191 define Package/erlang-ssh/description 192 $(call Package/erlang/Default/description) 193 . 194 This Erlang/OTP package provides an implementation of the Secure Shell 195 protocol, with SSH & SFTP support. 196 endef 197 198 199 define Package/erlang-ssl 200 $(call Package/erlang/Default) 201 TITLE:=Secure Sockets Layer (SSL) support 202 VERSION:=6.0 203 DEPENDS+= +erlang +erlang-crypto 204 endef 205 206 define Package/erlang-ssl/description 207 $(call Package/erlang/Default/description) 208 . 209 This Erlang/OTP package provides support for secure communication over 210 sockets. 211 endef 212 213 214 define Package/erlang-syntax-tools 215 $(call Package/erlang/Default) 216 TITLE:=Abstract Erlang syntax trees handling support 217 VERSION:=1.6.18 218 DEPENDS+= +erlang 219 endef 220 221 define Package/erlang-syntax-tools/description 222 $(call Package/erlang/Default/description) 223 . 224 This Erlang/OTP package provides support for handling abstract Erlang 225 syntax trees. 226 endef 227 228 229 # Host 230 231 HOST_CONFIGURE_ARGS += \ 232 --disable-hipe \ 233 --disable-smp-support \ 234 --without-javac 235 236 HOST_CFLAGS += -D_GNU_SOURCE 237 238 define Host/Compile 239 $(MAKE) -C $(HOST_BUILD_DIR) all 240 endef 241 242 define Host/Install 243 $(MAKE) -C $(HOST_BUILD_DIR) install 244 endef 245 246 247 # Target 248 249 CONFIGURE_ARGS += \ 250 --disable-hipe \ 251 --disable-smp-support \ 252 --without-javac \ 253 --enable-dynamic-ssl-lib 254 255 CONFIGURE_VARS += \ 256 SHLIB_LD="$(TARGET_CC)" \ 257 TARGET_ARCH="$(TARGET_ARCH)" \ 258 ac_cv_func_mmap_fixed_mapped=yes \ 259 ac_cv_path_WX_CONFIG_PATH=no \ 260 erl_xcomp_getaddrinfo=no \ 261 erl_xcomp_sysroot="$(STAGING_DIR)" 262 263 EXTRA_CFLAGS+=-D_GNU_SOURCE 264 EXTRA_LDFLAGS+=-lz 265 266 define Build/Compile 267 $(MAKE) -C $(PKG_BUILD_DIR) \ 268 noboot 269 $(MAKE) -C $(PKG_BUILD_DIR) \ 270 INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ 271 install 272 endef 273 274 define Package/erlang/install 275 $(INSTALL_DIR) $(1)/usr/bin 276 for f in epmd erl erlc escript run_erl; do \ 277 $(CP) $(PKG_INSTALL_DIR)/usr/bin/$$$$f $(1)/usr/bin/ ; \ 278 done 279 $(INSTALL_DIR) $(1)/usr/lib/erlang/bin 280 for f in erl erlc escript run_erl start start.boot start.script start_clean.boot start_erl start_sasl.boot to_erl; do \ 281 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/bin/$$$$f $(1)/usr/lib/erlang/bin/ ; \ 282 done 283 $(INSTALL_DIR) $(1)/usr/lib/erlang/lib 284 for m in erts kernel sasl stdlib; do \ 285 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$m-* $(1)/usr/lib/erlang/lib/ ; \ 286 rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/examples ; \ 287 rm -rf $(1)/usr/lib/erlang/lib/$$$$m-*/src ; \ 288 done 289 $(INSTALL_DIR) $(1)/usr/lib/erlang 290 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/erts-* $(1)/usr/lib/erlang/ 291 rm -rf $(1)/usr/lib/erlang/erts-*/{doc,include,lib,man,src} 292 rm -rf $(1)/usr/lib/erlang/erts-*/bin/*.src 293 $(INSTALL_DIR) $(1)/usr/lib/erlang/releases 294 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/releases/* $(1)/usr/lib/erlang/releases/ 295 $(SED) 's,%ERL_ROOT%,/usr/lib/erlang,g' \ 296 $(1)/usr/lib/erlang/releases/RELEASES.src 297 mv -f $(1)/usr/lib/erlang/releases/RELEASES.src \ 298 $(1)/usr/lib/erlang/releases/RELEASES 299 for f in bin/erl bin/start erts-*/bin/erl erts-*/bin/start; do \ 300 $(SED) 's,^\(ROOTDIR\)=.*,\1=/usr/lib/erlang,g' \ 301 $(1)/usr/lib/erlang/$$$$f ; \ 302 done 303 endef 304 305 define Build/InstallDev 306 $(INSTALL_DIR) $(1)/usr/lib 307 $(CP) $(PKG_BUILD_DIR)/lib/erl_interface/obj/*/*.a $(1)/usr/lib/ 308 $(INSTALL_DIR) $(1)/usr/include 309 $(CP) $(PKG_BUILD_DIR)/lib/erl_interface/include/*.h $(1)/usr/include/ 310 endef 311 312 define BuildModule 313 314 define Package/erlang-$(1)/install 315 $(INSTALL_DIR) $$(1)/usr/lib/erlang/lib 316 for m in $(2); do \ 317 $(CP) $(PKG_INSTALL_DIR)/usr/lib/erlang/lib/$$$$$$$$m-* $$(1)/usr/lib/erlang/lib/ ; \ 318 rm -rf $$(1)/usr/lib/erlang/lib/$$$$$$$$m-*/{examples,priv/obj,src} ; \ 319 done 320 endef 321 322 $$(eval $$(call BuildPackage,erlang-$(1))) 323 324 endef 325 326 327 $(eval $(call HostBuild)) 328 $(eval $(call BuildPackage,erlang)) 329 $(eval $(call BuildModule,asn1,asn1)) 330 $(eval $(call BuildModule,compiler,compiler)) 331 $(eval $(call BuildModule,crypto,crypto)) 332 $(eval $(call BuildModule,hipe,hipe)) 333 $(eval $(call BuildModule,inets,inets)) 334 $(eval $(call BuildModule,mnesia,mnesia)) 335 $(eval $(call BuildModule,runtime-tools,runtime_tools)) 336 $(eval $(call BuildModule,snmp,snmp)) 337 $(eval $(call BuildModule,ssh,ssh)) 338 $(eval $(call BuildModule,ssl,ssl)) 339 $(eval $(call BuildModule,syntax-tools,syntax_tools))