packages/lang/jamvm/Makefile
Rosen Penev 07f47d6ea5
jamvm: Add host build
Needed for classpath. GCJ is also needed but that can be dealt with
separately.

Fix compilation with musl by defining _GNU_SOURCE. What's funny here is
that if __USE_GNU gets replaced, the host build fails. The man page says
_GNU_SOURCE for pthread_getattr_np but glibc violates that statement.

Removed classpath dependency. classpaths must select jamvm, not the other
way around.

Removed target whitelist. Switched to blacklist.

Fixed License information.

Various other cleanups.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry-picked from 2972cc98eb)
2019-09-26 19:36:22 -07:00

70 lines
1.8 KiB
Makefile

#
# Copyright (C) 2006-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=jamvm
PKG_VERSION:=2.0.0
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/$(PKG_NAME)
PKG_HASH:=76428e96df0ae9dd964c7a7c74c1e9a837e2f312c39e9a357fa8178f7eff80da
PKG_MAINTAINER:=Dana H. Myers <k6jq@comcast.net>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
PKG_FIXUP:=autoreconf
PKG_INSTALL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/host-build.mk
define Package/jamvm
SUBMENU:=Java
SECTION:=lang
CATEGORY:=Languages
TITLE:=A compact Java Virtual Machine
URL:=http://jamvm.sourceforge.net/
DEPENDS:=+zlib +libpthread +librt +CONFIG_powerpc64:libffi @!arc
endef
define Package/jamvm/description
JamVM is a Java Virtual Machine which conforms to the JVM
specification version 2 (a.k.a, 1.2). In comparison to most other VM's (free
and commercial) it is extremely small. However, unlike other small VMs
(e.g. KVM) it is designed to support the full specification, and includes
support for object finalisation, Soft/Weak/Phantom References, the Java
Native Interface (JNI) and the Reflection API.
endef
CONFIGURE_ARGS += \
--with-java-runtime-library=gnuclasspath \
--with-classpath-install-dir=/usr \
--disable-int-inlining \
--disable-shared \
--without-pic
MAKE_FLAGS += \
GLIBJ_ZIP=$(STAGING_DIR)/usr/share/classpath/glibj.zip
define Package/jamvm/install
$(INSTALL_DIR) $(1)/usr
$(CP) \
$(PKG_INSTALL_DIR)/usr/bin \
$(PKG_INSTALL_DIR)/usr/share \
$(1)/usr/
endef
define Build/InstallDev
$(CP) $(PKG_INSTALL_DIR)/* $(1)/
endef
$(eval $(call BuildPackage,jamvm))
$(eval $(call HostBuild))