xref: /OK3568_Linux_fs/buildroot/package/irrlicht/irrlicht.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# irrlicht
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunIRRLICHT_VERSION_MAJOR = 1.8
8*4882a593SmuzhiyunIRRLICHT_VERSION = $(IRRLICHT_VERSION_MAJOR).4
9*4882a593SmuzhiyunIRRLICHT_SOURCE = irrlicht-$(IRRLICHT_VERSION).zip
10*4882a593SmuzhiyunIRRLICHT_SITE = https://downloads.sourceforge.net/project/irrlicht/Irrlicht%20SDK/$(IRRLICHT_VERSION_MAJOR)/$(IRRLICHT_VERSION)
11*4882a593SmuzhiyunIRRLICHT_INSTALL_STAGING = YES
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun# Bundled libraries: bzip2, libaesGladman, libpng, lzma, zlib,
14*4882a593Smuzhiyun# The handcrafted Makefile can only use bundled libraries.
15*4882a593SmuzhiyunIRRLICHT_LICENSE = Zlib (irrlicht), BSD-3-Clause (libaesGladman), bzip2-1.0.5 (bzip2), IJG (libjpeg), Libpng (libpng)
16*4882a593SmuzhiyunIRRLICHT_LICENSE_FILES = \
17*4882a593Smuzhiyun	doc/aesGladman.txt \
18*4882a593Smuzhiyun	doc/bzip2-license.txt \
19*4882a593Smuzhiyun	doc/irrlicht-license.txt \
20*4882a593Smuzhiyun	doc/jpglib-license.txt \
21*4882a593Smuzhiyun	doc/libpng-license.txt
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunIRRLICHT_SUBDIR = source/Irrlicht
24*4882a593Smuzhiyun
25*4882a593SmuzhiyunIRRLICHT_DEPENDENCIES = libgl xlib_libXxf86vm
26*4882a593Smuzhiyun
27*4882a593Smuzhiyundefine IRRLICHT_EXTRACT_CMDS
28*4882a593Smuzhiyun	$(UNZIP) -d $(@D) $(IRRLICHT_DL_DIR)/$(IRRLICHT_SOURCE)
29*4882a593Smuzhiyun	mv $(@D)/irrlicht-$(IRRLICHT_VERSION)/* $(@D)
30*4882a593Smuzhiyun	$(RM) -r $(@D)/irrlicht-$(IRRLICHT_VERSION)
31*4882a593Smuzhiyunendef
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunIRRLICHT_CONF_OPTS = $(TARGET_CONFIGURE_OPTS)
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# Build a static library OR a shared library, otherwise we need to compile with -fPIC
36*4882a593Smuzhiyun# "relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC"
37*4882a593Smuzhiyunifeq ($(BR2_STATIC_LIBS),)
38*4882a593SmuzhiyunIRRLICHT_CONF_OPTS += sharedlib
39*4882a593Smuzhiyunendif
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun# Irrlicht fail to detect properly the NEON support on aarch64 or ARM with NEON FPU support.
42*4882a593Smuzhiyun# While linking an application with libIrrlicht.so, we get an undefined reference to
43*4882a593Smuzhiyun# png_init_filter_functions_neon.
44*4882a593Smuzhiyun# Some files are missing in the libpng bundled in Irrlicht, in particular arm/arm_init.c,
45*4882a593Smuzhiyun# so disable NEON support completely.
46*4882a593SmuzhiyunIRRLICHT_CONF_OPTS += CPPFLAGS="$(TARGET_CPPFLAGS) -DPNG_ARM_NEON_OPT=0"
47*4882a593Smuzhiyun
48*4882a593Smuzhiyundefine IRRLICHT_BUILD_CMDS
49*4882a593Smuzhiyun	$(TARGET_MAKE_ENV)
50*4882a593Smuzhiyun		$(MAKE) -C $(@D)/$(IRRLICHT_SUBDIR) $(IRRLICHT_CONF_OPTS)
51*4882a593Smuzhiyunendef
52*4882a593Smuzhiyun
53*4882a593Smuzhiyundefine IRRLICHT_INSTALL_STAGING_CMDS
54*4882a593Smuzhiyun	$(TARGET_MAKE_ENV) $(MAKE) \
55*4882a593Smuzhiyun		INSTALL_DIR=$(STAGING_DIR)/usr/lib \
56*4882a593Smuzhiyun		-C $(@D)/$(IRRLICHT_SUBDIR) install
57*4882a593Smuzhiyunendef
58*4882a593Smuzhiyun
59*4882a593Smuzhiyundefine IRRLICHT_INSTALL_TARGET_CMDS
60*4882a593Smuzhiyun	$(TARGET_MAKE_ENV) $(MAKE) \
61*4882a593Smuzhiyun		INSTALL_DIR=$(TARGET_DIR)/usr/lib \
62*4882a593Smuzhiyun		-C $(@D)/$(IRRLICHT_SUBDIR) install
63*4882a593Smuzhiyunendef
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun$(eval $(generic-package))
66