replace sablevm and sablevm-classpath with sablevm-sdk, add a sablevm-mini package...
[openwrt/svn-archive/archive.git] / lang / sablevm-sdk / Makefile
1 #
2 # Copyright (C) 2006,2007 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # $Id$
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=sablevm-sdk
12 PKG_VERSION:=1.13
13 PKG_RELEASE:=1
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=@SF/sablevm
17 PKG_MD5SUM:=18a7c1a92b0748a206f9767a76a6b3bb
18 PKG_CAT:=zcat
19
20 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
21 PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Package/sablevm
26 SECTION:=lang
27 CATEGORY:=Languages
28 DEPENDS:=+libltdl +libpopt +libpthread +zlib
29 TITLE:=A Java Virtual Machine (JVM) implementation
30 DESCRIPTION:=\
31 SableVM is a robust, extremely portable, efficient, and specifications-\\\
32 -compliant Java virtual machine that aims to be easy to maintain and to \\\
33 extend. It features a state-of-the-art and efficient interpreter engine.\\\
34 Its source code is very accessible and easy to understand. It also has \\\
35 many robustness features that have been the object of careful design.
36 URL:=http://sablevm.org/
37 endef
38
39 define Package/sablevm-mini
40 $(call Package/sablevm)
41 TITLE+= (minimal)
42 DESCRIPTION+=\\\
43 This package contains only the minimal set of Java classes needed to \\\
44 run a simple "HelloWorld" program (included in this package).
45 endef
46
47
48 define Build/Configure
49 $(call Build/Configure/Default, \
50 --disable-cp-tools \
51 --disable-gjdoc \
52 )
53 $(call Build/Configure/Default, \
54 --srcdir=./../sablevm \
55 --with-fastjar=/usr/bin/fastjar \
56 --with-jikes=/usr/bin/jikes \
57 --with-internal-libffi=yes \
58 --with-internal-libpopt=no \
59 , \
60 LIBS=" -lltdl -lpopt -lz " \
61 ,
62 sablevm \
63 )
64 $(call Build/Configure/Default, \
65 --srcdir=./../sablevm-classpath \
66 --with-fastjar=/usr/bin/fastjar \
67 --with-jikes=/usr/bin/jikes \
68 --disable-gtk-peer \
69 --disable-gtk-cairo \
70 --without-x \
71 , \
72 , \
73 sablevm-classpath \
74 )
75 endef
76
77 define Build/Compile
78 $(MAKE) -C $(PKG_BUILD_DIR) \
79 EARLY_CONFIGURE= \
80 EXTRA_CONFIGURE= \
81 DESTDIR="$(PKG_INSTALL_DIR)" \
82 all install
83 $(CP) ./files/mini.classlist $(PKG_BUILD_DIR)/sablevm-classpath/lib/
84 ( cd $(PKG_BUILD_DIR)/sablevm-classpath/lib; \
85 fastjar -Mcf mini.jar -@ < mini.classlist; \
86 )
87 mkdir -p $(PKG_INSTALL_DIR)/usr/share/sablevm/examples
88 $(CP) ./files/*.java $(PKG_INSTALL_DIR)/usr/share/sablevm/examples/
89 ( cd $(PKG_INSTALL_DIR)/usr/share/sablevm/examples; \
90 jikes -bootclasspath "../../sablevm-classpath:../../sablevm-classpath/libclasspath.jar:../../sablevm-classpath/resources.jar" *.java; \
91 )
92 endef
93
94 define Package/sablevm/install
95 $(INSTALL_DIR) $(1)/usr/bin
96 $(CP) $(PKG_INSTALL_DIR)/usr/bin/{java-,}sablevm $(1)/usr/bin/
97 $(INSTALL_DIR) $(1)/usr/lib
98 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsablevm-*.so $(1)/usr/lib/
99 $(INSTALL_DIR) $(1)/usr/lib/sablevm-classpath
100 $(CP) $(PKG_INSTALL_DIR)/usr/lib/sablevm-classpath/libjava*.so $(1)/usr/lib/sablevm-classpath/
101 $(INSTALL_DIR) $(1)/usr/lib/security
102 $(CP) $(PKG_INSTALL_DIR)/usr/lib/security/classpath.security $(1)/usr/lib/security/
103 $(INSTALL_DIR) $(1)/usr/share/sablevm-classpath
104 $(CP) $(PKG_INSTALL_DIR)/usr/share/sablevm-classpath/{libclasspath,resources}.jar \
105 $(1)/usr/share/sablevm-classpath/
106 endef
107
108 define Package/sablevm-mini/install
109 $(call Package/sablevm/install,$(1))
110 rm -f $(1)/usr/lib/security/classpath.security
111 rm -f $(1)/usr/share/sablevm-classpath/resources.jar
112 $(CP) $(PKG_BUILD_DIR)/sablevm-classpath/lib/mini.jar \
113 $(1)/usr/share/sablevm-classpath/libclasspath.jar
114 $(INSTALL_DIR) $(1)/usr/share/sablevm/examples
115 $(CP) $(PKG_INSTALL_DIR)/usr/share/sablevm/examples/* \
116 $(1)/usr/share/sablevm/examples/
117 endef
118
119 $(eval $(call BuildPackage,sablevm))
120 $(eval $(call BuildPackage,sablevm-mini))
121
122 $(foreach command, jikes fastjar, \
123 $(eval $(call RequireCommand,$(command), \
124 $(PKG_NAME) requires $(command). \
125 )) \
126 )