lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

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))