aboutsummaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorMiles Macklin <[email protected]>2017-06-09 13:41:15 +1200
committerMiles Macklin <[email protected]>2017-06-09 13:41:15 +1200
commit688b5f42e9bfe498d7af7075d4d8f4429867f3a3 (patch)
tree7e0d0e7c95298f0418723abd92f61ac6e16b055e /extensions
parentUpdate README.md (diff)
downloadflex-688b5f42e9bfe498d7af7075d4d8f4429867f3a3.tar.xz
flex-688b5f42e9bfe498d7af7075d4d8f4429867f3a3.zip
1.2.0.beta.11.2.0.beta.1
Diffstat (limited to 'extensions')
-rw-r--r--extensions/compiler/makeandroid/Makefile19
-rw-r--r--extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk48
-rw-r--r--extensions/compiler/makeandroid_aarch64/Makefile202
-rw-r--r--extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk227
-rw-r--r--extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk207
-rw-r--r--extensions/compiler/vc12win32/vc120.pdbbin487424 -> 528384 bytes
-rw-r--r--extensions/compiler/vc12win64/vc120.pdbbin479232 -> 528384 bytes
-rw-r--r--extensions/compiler/vc14win32/vc140.pdbbin0 -> 405504 bytes
-rw-r--r--extensions/compiler/xpj/flexExtCUDA.xpj44
-rw-r--r--extensions/compiler/xpj/flexExtD3D12.xpj170
-rw-r--r--extensions/dx/flexExt.cpp2
-rw-r--r--extensions/flexExtContainer.cpp86
-rw-r--r--extensions/flexExtRigid.cpp51
-rw-r--r--extensions/flexExtSoft.cpp66
14 files changed, 1027 insertions, 95 deletions
diff --git a/extensions/compiler/makeandroid/Makefile b/extensions/compiler/makeandroid/Makefile
index e03f411..865fd94 100644
--- a/extensions/compiler/makeandroid/Makefile
+++ b/extensions/compiler/makeandroid/Makefile
@@ -2,11 +2,11 @@
# Makefile generated by XPJ for android
DEPSDIR = .deps
-NDKROOT = "$(NDK_ROOT)"/"$(NDK_VERSION)"
-NDK_BIN_DIR = "$(NDK_ROOT)"/"$(NDK_VERSION)"/toolchains/"$(NDK_TOOLCHAIN)"/prebuilt/"linux-x86_64"/bin
+NDKROOT = ./../../../../../../external/android-ndk/android-ndk-r10e-linux
+NDK_BIN_DIR = ./../../../../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin
NDK_PREFIX = arm-linux-androideabi-
-JAVA_HOME = ./../xpj/"$(JAVA_HOME)"
-ANT_TOOL = ./../xpj/"$(ANT_HOME}"/bin/ant
+JAVA_HOME = ./../../../../../../external/java/jdk1.8.0_20
+ANT_TOOL = ./../../../../../../external/ant/apache-ant-1.8.2/bin/ant
#default defines
OBJS_DIR = build
RMDIR = rm -fr
@@ -23,22 +23,23 @@ OBJCOPY = $(NDK_BIN_DIR)/$(NDK_PREFIX)objcopy
all: debug release
-debug: build_flexExtCUDA_debug
+debug: build_flexCUDA_debug build_flexExtCUDA_debug
-release: build_flexExtCUDA_release
+release: build_flexCUDA_release build_flexExtCUDA_release
-clean: clean_flexExtCUDA_release clean_flexExtCUDA_debug
+clean: clean_flexCUDA_release clean_flexCUDA_debug clean_flexExtCUDA_release clean_flexExtCUDA_debug
rm -rf $(DEPSDIR)
-clean_release: clean_flexExtCUDA_release
+clean_release: clean_flexCUDA_release clean_flexExtCUDA_release
rm -rf $(DEPSDIR)
-clean_debug: clean_flexExtCUDA_debug
+clean_debug: clean_flexCUDA_debug clean_flexExtCUDA_debug
rm -rf $(DEPSDIR)
+include Makefile.flexCUDA.mk
include Makefile.flexExtCUDA.mk
diff --git a/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk b/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk
index f8bf780..cffe816 100644
--- a/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk
+++ b/extensions/compiler/makeandroid/Makefile.flexExtCUDA.mk
@@ -24,28 +24,32 @@ flexExtCUDA_debug_dep = $(flexExtCUDA_cpp_debug_dep) $(flexExtCUDA_cc_debug
-include $(flexExtCUDA_debug_dep)
flexExtCUDA_release_hpaths :=
flexExtCUDA_release_hpaths += ./../../..
-flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include
-flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport
-flexExtCUDA_release_hpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/include
+flexExtCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include
+flexExtCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport
+flexExtCUDA_release_hpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include
flexExtCUDA_release_lpaths :=
-flexExtCUDA_release_lpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/lib
+flexExtCUDA_release_lpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/lib
+flexExtCUDA_release_lpaths += ./../../../lib/android
+flexExtCUDA_release_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/libs/armeabi-v7a
flexExtCUDA_release_lpaths += ./../../../lib/android
-flexExtCUDA_release_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/libs/armeabi-v7a
flexExtCUDA_release_defines := $(flexExtCUDA_custom_defines)
flexExtCUDA_release_defines += android
flexExtCUDA_release_defines += ANDROID=1
flexExtCUDA_release_defines += ANDROID_PLAT=1
flexExtCUDA_release_defines += DISABLE_IMPORTGL
flexExtCUDA_release_libraries :=
+flexExtCUDA_release_libraries += NvFlexReleaseCUDA_armv7l
flexExtCUDA_release_libraries += ./../../../lib/android/libNvFlexRelease_armv7l.a
flexExtCUDA_release_common_cflags := $(flexExtCUDA_custom_cflags)
flexExtCUDA_release_common_cflags += -MMD
flexExtCUDA_release_common_cflags += $(addprefix -D, $(flexExtCUDA_release_defines))
flexExtCUDA_release_common_cflags += $(addprefix -I, $(flexExtCUDA_release_hpaths))
-flexExtCUDA_release_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
-flexExtCUDA_release_common_cflags += -O3 -ffast-math
flexExtCUDA_release_cflags := $(flexExtCUDA_release_common_cflags)
+flexExtCUDA_release_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexExtCUDA_release_cflags += -O3 -ffast-math
flexExtCUDA_release_cppflags := $(flexExtCUDA_release_common_cflags)
+flexExtCUDA_release_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexExtCUDA_release_cppflags += -O3 -ffast-math
flexExtCUDA_release_lflags := $(flexExtCUDA_custom_lflags)
flexExtCUDA_release_lflags += $(addprefix -L, $(flexExtCUDA_release_lpaths))
flexExtCUDA_release_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_release_libraries)) -Wl,--end-group
@@ -68,15 +72,15 @@ postbuild_flexExtCUDA_release: mainbuild_flexExtCUDA_release
mainbuild_flexExtCUDA_release: prebuild_flexExtCUDA_release $(flexExtCUDA_release_bin)
prebuild_flexExtCUDA_release:
-$(flexExtCUDA_release_bin): $(flexExtCUDA_release_obj)
+$(flexExtCUDA_release_bin): $(flexExtCUDA_release_obj) build_flexCUDA_release
mkdir -p `dirname ./../../../lib/android/libflexExt_cuda_release_armv7l.a`
@$(AR) rcs $(flexExtCUDA_release_bin) $(flexExtCUDA_release_obj)
$(ECHO) building $@ complete!
$(flexExtCUDA_release_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu)
@mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o`
- $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o"
- "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o"
+ $(ECHO) "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o"
+ "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o"
flexExtCUDA_release_DEPDIR = $(dir $(@))/$(*F)
$(flexExtCUDA_release_cpp_o): $(flexExtCUDA_release_objsdir)/%.o:
@@ -111,28 +115,32 @@ $(flexExtCUDA_release_c_o): $(flexExtCUDA_release_objsdir)/%.o:
flexExtCUDA_debug_hpaths :=
flexExtCUDA_debug_hpaths += ./../../..
-flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include
-flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport
-flexExtCUDA_debug_hpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/include
+flexExtCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include
+flexExtCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport
+flexExtCUDA_debug_hpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include
flexExtCUDA_debug_lpaths :=
-flexExtCUDA_debug_lpaths += $(CUDA_PATH)/targets/armv7-linux-androideabi/lib
+flexExtCUDA_debug_lpaths += ./../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/lib
+flexExtCUDA_debug_lpaths += ./../../../lib/android
+flexExtCUDA_debug_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/libs/armeabi-v7a
flexExtCUDA_debug_lpaths += ./../../../lib/android
-flexExtCUDA_debug_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/libs/armeabi-v7a
flexExtCUDA_debug_defines := $(flexExtCUDA_custom_defines)
flexExtCUDA_debug_defines += android
flexExtCUDA_debug_defines += ANDROID=1
flexExtCUDA_debug_defines += ANDROID_PLAT=1
flexExtCUDA_debug_defines += DISABLE_IMPORTGL
flexExtCUDA_debug_libraries :=
+flexExtCUDA_debug_libraries += NvFlexDebugCUDA_armv7l
flexExtCUDA_debug_libraries += ./../../../lib/android/libNvFlexDebug_armv7l.a
flexExtCUDA_debug_common_cflags := $(flexExtCUDA_custom_cflags)
flexExtCUDA_debug_common_cflags += -MMD
flexExtCUDA_debug_common_cflags += $(addprefix -D, $(flexExtCUDA_debug_defines))
flexExtCUDA_debug_common_cflags += $(addprefix -I, $(flexExtCUDA_debug_hpaths))
-flexExtCUDA_debug_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
-flexExtCUDA_debug_common_cflags += -g -O0
flexExtCUDA_debug_cflags := $(flexExtCUDA_debug_common_cflags)
+flexExtCUDA_debug_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexExtCUDA_debug_cflags += -g -O0
flexExtCUDA_debug_cppflags := $(flexExtCUDA_debug_common_cflags)
+flexExtCUDA_debug_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexExtCUDA_debug_cppflags += -g -O0
flexExtCUDA_debug_lflags := $(flexExtCUDA_custom_lflags)
flexExtCUDA_debug_lflags += $(addprefix -L, $(flexExtCUDA_debug_lpaths))
flexExtCUDA_debug_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_debug_libraries)) -Wl,--end-group
@@ -155,15 +163,15 @@ postbuild_flexExtCUDA_debug: mainbuild_flexExtCUDA_debug
mainbuild_flexExtCUDA_debug: prebuild_flexExtCUDA_debug $(flexExtCUDA_debug_bin)
prebuild_flexExtCUDA_debug:
-$(flexExtCUDA_debug_bin): $(flexExtCUDA_debug_obj)
+$(flexExtCUDA_debug_bin): $(flexExtCUDA_debug_obj) build_flexCUDA_debug
mkdir -p `dirname ./../../../lib/android/libflexExt_cuda_debug_armv7l.a`
@$(AR) rcs $(flexExtCUDA_debug_bin) $(flexExtCUDA_debug_obj)
$(ECHO) building $@ complete!
$(flexExtCUDA_debug_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu)
@mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o`
- $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o"
- "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/armv7-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/stlport/stlport" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-15/arch-arm/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o"
+ $(ECHO) "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o"
+ "../../../../../../external/CUDA/cuda-6.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ -target-cpu-arch=ARM -m32 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-6.0-linux/targets/armv7-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/stlport/stlport" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-15/arch-arm/usr/include" --compile "../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o"
flexExtCUDA_debug_DEPDIR = $(dir $(@))/$(*F)
$(flexExtCUDA_debug_cpp_o): $(flexExtCUDA_debug_objsdir)/%.o:
diff --git a/extensions/compiler/makeandroid_aarch64/Makefile b/extensions/compiler/makeandroid_aarch64/Makefile
new file mode 100644
index 0000000..c8cd55c
--- /dev/null
+++ b/extensions/compiler/makeandroid_aarch64/Makefile
@@ -0,0 +1,202 @@
+#!/usr/bin/make
+# Makefile generated by XPJ for android_aarch64
+
+DEPSDIR = .deps
+NDKROOT = "$(NDK_ROOT)"/"$(NDK_VERSION)"
+NDK_BIN_DIR = "$(NDK_ROOT)"/"$(NDK_VERSION)"/toolchains/"$(NDK_TOOLCHAIN)"/prebuilt/"linux-x86_64"/bin
+NDK_PREFIX = aarch64-linux-android-
+JAVA_HOME = ./../xpj/"$(JAVA_HOME)"
+ANT_TOOL = ./../xpj/"$(ANT_HOME}"/bin/ant
+#default defines
+OBJS_DIR = build
+RMDIR = rm -fr
+ECHO = echo
+CCLD = $(NDK_BIN_DIR)/$(NDK_PREFIX)g++
+CXX = $(NDK_BIN_DIR)/$(NDK_PREFIX)g++
+CC = $(NDK_BIN_DIR)/$(NDK_PREFIX)gcc
+RANLIB = $(NDK_BIN_DIR)/$(NDK_PREFIX)ranlib
+AR = $(NDK_BIN_DIR)/$(NDK_PREFIX)ar
+STRIP = $(NDK_BIN_DIR)/$(NDK_PREFIX)strip
+OBJDUMP = $(NDK_BIN_DIR)/$(NDK_PREFIX)objdump
+OBJCOPY = $(NDK_BIN_DIR)/$(NDK_PREFIX)objcopy
+-include Makedefs.ANDROID.mk
+
+all: debug release
+
+debug: build_flexExtCUDA_debug
+
+release: build_flexExtCUDA_release
+
+clean: clean_flexExtCUDA_release clean_flexExtCUDA_debug
+ rm -rf $(DEPSDIR)
+
+
+clean_release: clean_flexExtCUDA_release
+ rm -rf $(DEPSDIR)
+
+
+clean_debug: clean_flexExtCUDA_debug
+ rm -rf $(DEPSDIR)
+
+
+include Makefile.flexExtCUDA.mk
+
+
+# Disable implicit rules to speedup build
+.SUFFIXES:
+SUFFIXES :=
+%.out:
+%.a:
+%.ln:
+%.o:
+%: %.o
+%.c:
+%: %.c
+%.ln: %.c
+%.o: %.c
+%.cc:
+%: %.cc
+%.o: %.cc
+%.C:
+%: %.C
+%.o: %.C
+%.cpp:
+%: %.cpp
+%.o: %.cpp
+%.p:
+%: %.p
+%.o: %.p
+%.f:
+%:
+ %.f%.o: %.f
+%.F:
+%: %.F
+%.o: %.F
+%.f: %.F
+%.r:
+%: %.r
+%.o: %.r
+%.f: %.r
+%.y:
+%.ln: %.y
+%.c: %.y
+%.l:
+%.ln: %.l
+%.c: %.l
+%.r: %.l
+%.s:
+%: %.s
+%.o: %.s
+%.S:
+%: %.S
+%.o: %.S
+%.s: %.S
+%.mod:
+%: %.mod
+%.o: %.mod
+%.sym:
+%.def:
+%.sym: %.def
+%.h:
+%.info:
+%.dvi:
+%.tex:
+%.dvi: %.tex
+%.texinfo:
+%.info: %.texinfo
+%.dvi: %.texinfo
+%.texi:
+%.info: %.texi
+%.dvi: %.texi
+%.txinfo:
+%.info: %.txinfo
+%.dvi: %.txinfo
+%.w:
+%.c: %.w
+%.tex: %.w
+%.ch:
+%.web:
+%.p: %.web
+%.tex: %.web
+%.sh:
+%: %.sh
+%.elc:
+%.el:
+(%): %
+%.out: %
+%.c: %.w %.ch
+%.tex: %.w %.ch
+%: %,v
+%: RCS/%,v
+%: RCS/%
+%: s.%
+%: SCCS/s.%
+.web.p:
+.l.r:
+.dvi:
+.F.o:
+.l:
+.y.ln:
+.o:
+.y:
+.def.sym:
+.p.o:
+.p:
+.txinfo.dvi:
+.a:
+.l.ln:
+.w.c:
+.texi.dvi:
+.sh:
+.cc:
+.cc.o:
+.def:
+.c.o:
+.r.o:
+.r:
+.info:
+.elc:
+.l.c:
+.out:
+.C:
+.r.f:
+.S:
+.texinfo.info:
+.c:
+.w.tex:
+.c.ln:
+.s.o:
+.s:
+.texinfo.dvi:
+.el:
+.texinfo:
+.y.c:
+.web.tex:
+.texi.info:
+.DEFAULT:
+.h:
+.tex.dvi:
+.cpp.o:
+.cpp:
+.C.o:
+.ln:
+.texi:
+.txinfo:
+.tex:
+.txinfo.info:
+.ch:
+.S.s:
+.mod:
+.mod.o:
+.F.f:
+.w:
+.S.o:
+.F:
+.web:
+.sym:
+.f:
+.f.o:
+export VERBOSE
+ifndef VERBOSE
+.SILENT:
+endif
diff --git a/extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk b/extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk
new file mode 100644
index 0000000..bdfb113
--- /dev/null
+++ b/extensions/compiler/makeandroid_aarch64/Makefile.flexCUDA.mk
@@ -0,0 +1,227 @@
+# Makefile generated by XPJ for android_aarch64
+-include Makefile.custom
+ProjectName = flexCUDA
+flexCUDA_cppfiles += ./../../../src/cuda/util.cpp
+flexCUDA_cuda_src_cuda_bvh_cu += ./../../../src/cuda/bvh.cu
+flexCUDA_cuda_src_cuda_flex_cu += ./../../../src/cuda/flex.cu
+flexCUDA_cuda_src_cuda_sort_cu += ./../../../src/cuda/sort.cu
+
+flexCUDA_cpp_release_dep = $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexCUDA_cppfiles)))))
+flexCUDA_cc_release_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.release.P, $(flexCUDA_ccfiles)))))
+flexCUDA_c_release_dep = $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexCUDA_cfiles)))))
+flexCUDA_release_dep = $(flexCUDA_cpp_release_dep) $(flexCUDA_cc_release_dep) $(flexCUDA_c_release_dep)
+-include $(flexCUDA_release_dep)
+flexCUDA_cpp_debug_dep = $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexCUDA_cppfiles)))))
+flexCUDA_cc_debug_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.debug.P, $(flexCUDA_ccfiles)))))
+flexCUDA_c_debug_dep = $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexCUDA_cfiles)))))
+flexCUDA_debug_dep = $(flexCUDA_cpp_debug_dep) $(flexCUDA_cc_debug_dep) $(flexCUDA_c_debug_dep)
+-include $(flexCUDA_debug_dep)
+flexCUDA_release_hpaths :=
+flexCUDA_release_hpaths += ./../../..
+flexCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include
+flexCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include
+flexCUDA_release_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include
+flexCUDA_release_hpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include
+flexCUDA_release_lpaths :=
+flexCUDA_release_lpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/lib
+flexCUDA_release_lpaths += ./../../../lib/android
+flexCUDA_release_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a
+flexCUDA_release_defines := $(flexCUDA_custom_defines)
+flexCUDA_release_defines += android
+flexCUDA_release_defines += ANDROID=1
+flexCUDA_release_defines += ANDROID_PLAT=1
+flexCUDA_release_defines += DISABLE_IMPORTGL
+flexCUDA_release_libraries :=
+flexCUDA_release_common_cflags := $(flexCUDA_custom_cflags)
+flexCUDA_release_common_cflags += -MMD
+flexCUDA_release_common_cflags += $(addprefix -D, $(flexCUDA_release_defines))
+flexCUDA_release_common_cflags += $(addprefix -I, $(flexCUDA_release_hpaths))
+flexCUDA_release_cflags := $(flexCUDA_release_common_cflags)
+flexCUDA_release_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexCUDA_release_cflags += -O3 -ffast-math
+flexCUDA_release_cppflags := $(flexCUDA_release_common_cflags)
+flexCUDA_release_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexCUDA_release_cppflags += -O3 -ffast-math
+flexCUDA_release_lflags := $(flexCUDA_custom_lflags)
+flexCUDA_release_lflags += $(addprefix -L, $(flexCUDA_release_lpaths))
+flexCUDA_release_lflags += -Wl,--start-group $(addprefix -l, $(flexCUDA_release_libraries)) -Wl,--end-group
+flexCUDA_release_objsdir = $(OBJS_DIR)/flexCUDA_release
+flexCUDA_release_cpp_o = $(addprefix $(flexCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexCUDA_cppfiles)))))
+flexCUDA_release_cc_o = $(addprefix $(flexCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexCUDA_ccfiles)))))
+flexCUDA_release_c_o = $(addprefix $(flexCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexCUDA_cfiles)))))
+flexCUDA_release_cuda_src_cuda_bvh_cu_o += $(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o
+flexCUDA_release_cuda_src_cuda_flex_cu_o += $(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o
+flexCUDA_release_cuda_src_cuda_sort_cu_o += $(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o
+flexCUDA_release_obj = $(flexCUDA_release_cpp_o) $(flexCUDA_release_cc_o) $(flexCUDA_release_c_o) $(flexCUDA_release_cuda_src_cuda_bvh_cu_o) $(flexCUDA_release_cuda_src_cuda_flex_cu_o) $(flexCUDA_release_cuda_src_cuda_sort_cu_o)
+flexCUDA_release_bin := ./../../../lib/android_aarch64/libNvFlexReleaseCUDA_aarch64.a
+
+clean_flexCUDA_release:
+ @$(ECHO) clean flexCUDA release
+ @$(RMDIR) $(flexCUDA_release_objsdir)
+ @$(RMDIR) $(flexCUDA_release_bin)
+ @$(RMDIR) $(DEPSDIR)/flexCUDA/release
+
+build_flexCUDA_release: postbuild_flexCUDA_release
+postbuild_flexCUDA_release: mainbuild_flexCUDA_release
+mainbuild_flexCUDA_release: prebuild_flexCUDA_release $(flexCUDA_release_bin)
+prebuild_flexCUDA_release:
+
+$(flexCUDA_release_bin): $(flexCUDA_release_obj)
+ mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexReleaseCUDA_aarch64.a`
+ @$(AR) rcs $(flexCUDA_release_bin) $(flexCUDA_release_obj)
+ $(ECHO) building $@ complete!
+
+$(flexCUDA_release_cuda_src_cuda_bvh_cu_o): $(flexCUDA_cuda_src_cuda_bvh_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o`
+ $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o"
+ "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudabvh.o"
+
+$(flexCUDA_release_cuda_src_cuda_flex_cu_o): $(flexCUDA_cuda_src_cuda_flex_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o`
+ $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o"
+ "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudaflex.o"
+
+$(flexCUDA_release_cuda_src_cuda_sort_cu_o): $(flexCUDA_cuda_src_cuda_sort_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o`
+ $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o"
+ "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_release/cuda/src/cudasort.o"
+
+flexCUDA_release_DEPDIR = $(dir $(@))/$(*F)
+$(flexCUDA_release_cpp_o): $(flexCUDA_release_objsdir)/%.o:
+ $(ECHO) flexCUDA: compiling release $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexCUDA_release_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))))))
+ cp $(flexCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \
+ rm -f $(flexCUDA_release_DEPDIR).d
+
+$(flexCUDA_release_cc_o): $(flexCUDA_release_objsdir)/%.o:
+ $(ECHO) flexCUDA: compiling release $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexCUDA_release_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles)) -o $@
+ mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))))))
+ cp $(flexCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))))).release.P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_ccfiles))))).release.P; \
+ rm -f $(flexCUDA_release_DEPDIR).d
+
+$(flexCUDA_release_c_o): $(flexCUDA_release_objsdir)/%.o:
+ $(ECHO) flexCUDA: compiling release $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))...
+ mkdir -p $(dir $(@))
+ $(CC) $(flexCUDA_release_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))))))
+ cp $(flexCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_release_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \
+ rm -f $(flexCUDA_release_DEPDIR).d
+
+flexCUDA_debug_hpaths :=
+flexCUDA_debug_hpaths += ./../../..
+flexCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include
+flexCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include
+flexCUDA_debug_hpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include
+flexCUDA_debug_hpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include
+flexCUDA_debug_lpaths :=
+flexCUDA_debug_lpaths += ./../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/lib
+flexCUDA_debug_lpaths += ./../../../lib/android
+flexCUDA_debug_lpaths += ./../../../../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a
+flexCUDA_debug_defines := $(flexCUDA_custom_defines)
+flexCUDA_debug_defines += android
+flexCUDA_debug_defines += ANDROID=1
+flexCUDA_debug_defines += ANDROID_PLAT=1
+flexCUDA_debug_defines += DISABLE_IMPORTGL
+flexCUDA_debug_libraries :=
+flexCUDA_debug_common_cflags := $(flexCUDA_custom_cflags)
+flexCUDA_debug_common_cflags += -MMD
+flexCUDA_debug_common_cflags += $(addprefix -D, $(flexCUDA_debug_defines))
+flexCUDA_debug_common_cflags += $(addprefix -I, $(flexCUDA_debug_hpaths))
+flexCUDA_debug_cflags := $(flexCUDA_debug_common_cflags)
+flexCUDA_debug_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexCUDA_debug_cflags += -g -O0
+flexCUDA_debug_cppflags := $(flexCUDA_debug_common_cflags)
+flexCUDA_debug_cppflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexCUDA_debug_cppflags += -g -O0
+flexCUDA_debug_lflags := $(flexCUDA_custom_lflags)
+flexCUDA_debug_lflags += $(addprefix -L, $(flexCUDA_debug_lpaths))
+flexCUDA_debug_lflags += -Wl,--start-group $(addprefix -l, $(flexCUDA_debug_libraries)) -Wl,--end-group
+flexCUDA_debug_objsdir = $(OBJS_DIR)/flexCUDA_debug
+flexCUDA_debug_cpp_o = $(addprefix $(flexCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexCUDA_cppfiles)))))
+flexCUDA_debug_cc_o = $(addprefix $(flexCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexCUDA_ccfiles)))))
+flexCUDA_debug_c_o = $(addprefix $(flexCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexCUDA_cfiles)))))
+flexCUDA_debug_cuda_src_cuda_bvh_cu_o += $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o
+flexCUDA_debug_cuda_src_cuda_flex_cu_o += $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o
+flexCUDA_debug_cuda_src_cuda_sort_cu_o += $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o
+flexCUDA_debug_obj = $(flexCUDA_debug_cpp_o) $(flexCUDA_debug_cc_o) $(flexCUDA_debug_c_o) $(flexCUDA_debug_cuda_src_cuda_bvh_cu_o) $(flexCUDA_debug_cuda_src_cuda_flex_cu_o) $(flexCUDA_debug_cuda_src_cuda_sort_cu_o)
+flexCUDA_debug_bin := ./../../../lib/android_aarch64/libNvFlexDebugCUDA_aarch64.a
+
+clean_flexCUDA_debug:
+ @$(ECHO) clean flexCUDA debug
+ @$(RMDIR) $(flexCUDA_debug_objsdir)
+ @$(RMDIR) $(flexCUDA_debug_bin)
+ @$(RMDIR) $(DEPSDIR)/flexCUDA/debug
+
+build_flexCUDA_debug: postbuild_flexCUDA_debug
+postbuild_flexCUDA_debug: mainbuild_flexCUDA_debug
+mainbuild_flexCUDA_debug: prebuild_flexCUDA_debug $(flexCUDA_debug_bin)
+prebuild_flexCUDA_debug:
+
+$(flexCUDA_debug_bin): $(flexCUDA_debug_obj)
+ mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexDebugCUDA_aarch64.a`
+ @$(AR) rcs $(flexCUDA_debug_bin) $(flexCUDA_debug_obj)
+ $(ECHO) building $@ complete!
+
+$(flexCUDA_debug_cuda_src_cuda_bvh_cu_o): $(flexCUDA_cuda_src_cuda_bvh_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o`
+ $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o"
+ "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/bvh.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudabvh.o"
+
+$(flexCUDA_debug_cuda_src_cuda_flex_cu_o): $(flexCUDA_cuda_src_cuda_flex_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o`
+ $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o"
+ "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/flex.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudaflex.o"
+
+$(flexCUDA_debug_cuda_src_cuda_sort_cu_o): $(flexCUDA_cuda_src_cuda_sort_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o`
+ $(ECHO) "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o"
+ "../../../../../../external/CUDA/cuda-7.0-linux/bin/nvcc" -ccbin /home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"../../../../../../external/CUDA/cuda-7.0-linux/targets/aarch64-linux-androideabi/include" -I"../../.." -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"/home/mmacklin/swhost/devrel/libdev/flex/dev/main/../../../external/android-ndk/android-ndk-r10e-linux/platforms/android-21/arch-arm64/usr/include" --compile "../../../src/cuda/sort.cu" -o "$(OBJS_DIR)/flexCUDA_debug/cuda/src/cudasort.o"
+
+flexCUDA_debug_DEPDIR = $(dir $(@))/$(*F)
+$(flexCUDA_debug_cpp_o): $(flexCUDA_debug_objsdir)/%.o:
+ $(ECHO) flexCUDA: compiling debug $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))))))
+ cp $(flexCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cppfiles))))).P; \
+ rm -f $(flexCUDA_debug_DEPDIR).d
+
+$(flexCUDA_debug_cc_o): $(flexCUDA_debug_objsdir)/%.o:
+ $(ECHO) flexCUDA: compiling debug $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles)) -o $@
+ mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))))))
+ cp $(flexCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))))).debug.P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_ccfiles))))).debug.P; \
+ rm -f $(flexCUDA_debug_DEPDIR).d
+
+$(flexCUDA_debug_c_o): $(flexCUDA_debug_objsdir)/%.o:
+ $(ECHO) flexCUDA: compiling debug $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))...
+ mkdir -p $(dir $(@))
+ $(CC) $(flexCUDA_debug_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))))))
+ cp $(flexCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexCUDA_debug_objsdir),, $@))), $(flexCUDA_cfiles))))).P; \
+ rm -f $(flexCUDA_debug_DEPDIR).d
+
+clean_flexCUDA: clean_flexCUDA_release clean_flexCUDA_debug
+ rm -rf $(DEPSDIR)
+
+export VERBOSE
+ifndef VERBOSE
+.SILENT:
+endif
diff --git a/extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk b/extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk
new file mode 100644
index 0000000..6f5c84a
--- /dev/null
+++ b/extensions/compiler/makeandroid_aarch64/Makefile.flexExtCUDA.mk
@@ -0,0 +1,207 @@
+# Makefile generated by XPJ for android_aarch64
+-include Makefile.custom
+ProjectName = flexExtCUDA
+flexExtCUDA_cppfiles += ./../../flexExtCloth.cpp
+flexExtCUDA_cppfiles += ./../../flexExtContainer.cpp
+flexExtCUDA_cppfiles += ./../../flexExtMovingFrame.cpp
+flexExtCUDA_cppfiles += ./../../flexExtRigid.cpp
+flexExtCUDA_cppfiles += ./../../flexExtSoft.cpp
+flexExtCUDA_cuda_cuda_flexExt_cu += ./../../cuda/flexExt.cu
+flexExtCUDA_cppfiles += ./../../../core/sdf.cpp
+flexExtCUDA_cppfiles += ./../../../core/voxelize.cpp
+flexExtCUDA_cppfiles += ./../../../core/maths.cpp
+flexExtCUDA_cppfiles += ./../../../core/aabbtree.cpp
+
+flexExtCUDA_cpp_release_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexExtCUDA_cppfiles)))))
+flexExtCUDA_cc_release_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.release.P, $(flexExtCUDA_ccfiles)))))
+flexExtCUDA_c_release_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexExtCUDA_cfiles)))))
+flexExtCUDA_release_dep = $(flexExtCUDA_cpp_release_dep) $(flexExtCUDA_cc_release_dep) $(flexExtCUDA_c_release_dep)
+-include $(flexExtCUDA_release_dep)
+flexExtCUDA_cpp_debug_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.P, $(flexExtCUDA_cppfiles)))))
+flexExtCUDA_cc_debug_dep = $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.debug.P, $(flexExtCUDA_ccfiles)))))
+flexExtCUDA_c_debug_dep = $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.P, $(flexExtCUDA_cfiles)))))
+flexExtCUDA_debug_dep = $(flexExtCUDA_cpp_debug_dep) $(flexExtCUDA_cc_debug_dep) $(flexExtCUDA_c_debug_dep)
+-include $(flexExtCUDA_debug_dep)
+flexExtCUDA_release_hpaths :=
+flexExtCUDA_release_hpaths += ./../../..
+flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include
+flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include
+flexExtCUDA_release_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include
+flexExtCUDA_release_hpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/include
+flexExtCUDA_release_lpaths :=
+flexExtCUDA_release_lpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/lib
+flexExtCUDA_release_lpaths += ./../../../lib/android
+flexExtCUDA_release_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a
+flexExtCUDA_release_defines := $(flexExtCUDA_custom_defines)
+flexExtCUDA_release_defines += android
+flexExtCUDA_release_defines += ANDROID=1
+flexExtCUDA_release_defines += ANDROID_PLAT=1
+flexExtCUDA_release_defines += DISABLE_IMPORTGL
+flexExtCUDA_release_libraries :=
+flexExtCUDA_release_libraries += ./../../../lib/android_aarch64/libNvFlexRelease_aarch64.a
+flexExtCUDA_release_common_cflags := $(flexExtCUDA_custom_cflags)
+flexExtCUDA_release_common_cflags += -MMD
+flexExtCUDA_release_common_cflags += $(addprefix -D, $(flexExtCUDA_release_defines))
+flexExtCUDA_release_common_cflags += $(addprefix -I, $(flexExtCUDA_release_hpaths))
+flexExtCUDA_release_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexExtCUDA_release_common_cflags += -O3 -ffast-math
+flexExtCUDA_release_cflags := $(flexExtCUDA_release_common_cflags)
+flexExtCUDA_release_cppflags := $(flexExtCUDA_release_common_cflags)
+flexExtCUDA_release_lflags := $(flexExtCUDA_custom_lflags)
+flexExtCUDA_release_lflags += $(addprefix -L, $(flexExtCUDA_release_lpaths))
+flexExtCUDA_release_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_release_libraries)) -Wl,--end-group
+flexExtCUDA_release_objsdir = $(OBJS_DIR)/flexExtCUDA_release
+flexExtCUDA_release_cpp_o = $(addprefix $(flexExtCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexExtCUDA_cppfiles)))))
+flexExtCUDA_release_cc_o = $(addprefix $(flexExtCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexExtCUDA_ccfiles)))))
+flexExtCUDA_release_c_o = $(addprefix $(flexExtCUDA_release_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexExtCUDA_cfiles)))))
+flexExtCUDA_release_cuda_cuda_flexExt_cu_o += $(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o
+flexExtCUDA_release_obj = $(flexExtCUDA_release_cpp_o) $(flexExtCUDA_release_cc_o) $(flexExtCUDA_release_c_o) $(flexExtCUDA_release_cuda_cuda_flexExt_cu_o)
+flexExtCUDA_release_bin := ./../../../lib/android_aarch64/libNvFlexExtReleaseCUDA_aarch64.a
+
+clean_flexExtCUDA_release:
+ @$(ECHO) clean flexExtCUDA release
+ @$(RMDIR) $(flexExtCUDA_release_objsdir)
+ @$(RMDIR) $(flexExtCUDA_release_bin)
+ @$(RMDIR) $(DEPSDIR)/flexExtCUDA/release
+
+build_flexExtCUDA_release: postbuild_flexExtCUDA_release
+postbuild_flexExtCUDA_release: mainbuild_flexExtCUDA_release
+mainbuild_flexExtCUDA_release: prebuild_flexExtCUDA_release $(flexExtCUDA_release_bin)
+prebuild_flexExtCUDA_release:
+
+$(flexExtCUDA_release_bin): $(flexExtCUDA_release_obj)
+ mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexExtReleaseCUDA_aarch64.a`
+ @$(AR) rcs $(flexExtCUDA_release_bin) $(flexExtCUDA_release_obj)
+ $(ECHO) building $@ complete!
+
+$(flexExtCUDA_release_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o`
+ $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o"
+ "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_release/cuda/cudaflexExt.o"
+
+flexExtCUDA_release_DEPDIR = $(dir $(@))/$(*F)
+$(flexExtCUDA_release_cpp_o): $(flexExtCUDA_release_objsdir)/%.o:
+ $(ECHO) flexExtCUDA: compiling release $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexExtCUDA_release_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))))))
+ cp $(flexExtCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \
+ rm -f $(flexExtCUDA_release_DEPDIR).d
+
+$(flexExtCUDA_release_cc_o): $(flexExtCUDA_release_objsdir)/%.o:
+ $(ECHO) flexExtCUDA: compiling release $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexExtCUDA_release_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles)) -o $@
+ mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))))))
+ cp $(flexExtCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).release.P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).release.P; \
+ rm -f $(flexExtCUDA_release_DEPDIR).d
+
+$(flexExtCUDA_release_c_o): $(flexExtCUDA_release_objsdir)/%.o:
+ $(ECHO) flexExtCUDA: compiling release $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))...
+ mkdir -p $(dir $(@))
+ $(CC) $(flexExtCUDA_release_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))))))
+ cp $(flexExtCUDA_release_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_release_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/release/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_release_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \
+ rm -f $(flexExtCUDA_release_DEPDIR).d
+
+flexExtCUDA_debug_hpaths :=
+flexExtCUDA_debug_hpaths += ./../../..
+flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include
+flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include
+flexExtCUDA_debug_hpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include
+flexExtCUDA_debug_hpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/include
+flexExtCUDA_debug_lpaths :=
+flexExtCUDA_debug_lpaths += $(CUDA_PATH)/targets/aarch64-linux-androideabi/lib
+flexExtCUDA_debug_lpaths += ./../../../lib/android
+flexExtCUDA_debug_lpaths += $(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a
+flexExtCUDA_debug_defines := $(flexExtCUDA_custom_defines)
+flexExtCUDA_debug_defines += android
+flexExtCUDA_debug_defines += ANDROID=1
+flexExtCUDA_debug_defines += ANDROID_PLAT=1
+flexExtCUDA_debug_defines += DISABLE_IMPORTGL
+flexExtCUDA_debug_libraries :=
+flexExtCUDA_debug_libraries += ./../../../lib/android_aarch64/libNvFlexDebug_aarch64.a
+flexExtCUDA_debug_common_cflags := $(flexExtCUDA_custom_cflags)
+flexExtCUDA_debug_common_cflags += -MMD
+flexExtCUDA_debug_common_cflags += $(addprefix -D, $(flexExtCUDA_debug_defines))
+flexExtCUDA_debug_common_cflags += $(addprefix -I, $(flexExtCUDA_debug_hpaths))
+flexExtCUDA_debug_common_cflags += -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
+flexExtCUDA_debug_common_cflags += -g -O0
+flexExtCUDA_debug_cflags := $(flexExtCUDA_debug_common_cflags)
+flexExtCUDA_debug_cppflags := $(flexExtCUDA_debug_common_cflags)
+flexExtCUDA_debug_lflags := $(flexExtCUDA_custom_lflags)
+flexExtCUDA_debug_lflags += $(addprefix -L, $(flexExtCUDA_debug_lpaths))
+flexExtCUDA_debug_lflags += -Wl,--start-group $(addprefix -l, $(flexExtCUDA_debug_libraries)) -Wl,--end-group
+flexExtCUDA_debug_objsdir = $(OBJS_DIR)/flexExtCUDA_debug
+flexExtCUDA_debug_cpp_o = $(addprefix $(flexExtCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cpp, %.cpp.o, $(flexExtCUDA_cppfiles)))))
+flexExtCUDA_debug_cc_o = $(addprefix $(flexExtCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.cc, %.cc.o, $(flexExtCUDA_ccfiles)))))
+flexExtCUDA_debug_c_o = $(addprefix $(flexExtCUDA_debug_objsdir)/, $(subst ./, , $(subst ../, , $(patsubst %.c, %.c.o, $(flexExtCUDA_cfiles)))))
+flexExtCUDA_debug_cuda_cuda_flexExt_cu_o += $(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o
+flexExtCUDA_debug_obj = $(flexExtCUDA_debug_cpp_o) $(flexExtCUDA_debug_cc_o) $(flexExtCUDA_debug_c_o) $(flexExtCUDA_debug_cuda_cuda_flexExt_cu_o)
+flexExtCUDA_debug_bin := ./../../../lib/android_aarch64/libNvFlexExtDebugCUDA_aarch64.a
+
+clean_flexExtCUDA_debug:
+ @$(ECHO) clean flexExtCUDA debug
+ @$(RMDIR) $(flexExtCUDA_debug_objsdir)
+ @$(RMDIR) $(flexExtCUDA_debug_bin)
+ @$(RMDIR) $(DEPSDIR)/flexExtCUDA/debug
+
+build_flexExtCUDA_debug: postbuild_flexExtCUDA_debug
+postbuild_flexExtCUDA_debug: mainbuild_flexExtCUDA_debug
+mainbuild_flexExtCUDA_debug: prebuild_flexExtCUDA_debug $(flexExtCUDA_debug_bin)
+prebuild_flexExtCUDA_debug:
+
+$(flexExtCUDA_debug_bin): $(flexExtCUDA_debug_obj)
+ mkdir -p `dirname ./../../../lib/android_aarch64/libNvFlexExtDebugCUDA_aarch64.a`
+ @$(AR) rcs $(flexExtCUDA_debug_bin) $(flexExtCUDA_debug_obj)
+ $(ECHO) building $@ complete!
+
+$(flexExtCUDA_debug_cuda_cuda_flexExt_cu_o): $(flexExtCUDA_cuda_cuda_flexExt_cu)
+ @mkdir -p `dirname $(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o`
+ $(ECHO) "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o"
+ "$(CUDA_PATH)/bin/nvcc" -ccbin $(NDK_ROOT)/$(NDK_VERSION)/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-g++ -target-cpu-arch=ARM -m64 -arch=sm_32 -O3 -Xptxas -dlcm=ca -target-os-variant=Android -I"$(CUDA_PATH)/targets/aarch64-linux-androideabi/include" -I"../../.." -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include" -I"$(NDK_ROOT)/$(NDK_VERSION)/platforms/android-21/arch-arm64/usr/include" --compile "./../../cuda/flexExt.cu" -o "$(OBJS_DIR)/flexExtCUDA_debug/cuda/cudaflexExt.o"
+
+flexExtCUDA_debug_DEPDIR = $(dir $(@))/$(*F)
+$(flexExtCUDA_debug_cpp_o): $(flexExtCUDA_debug_objsdir)/%.o:
+ $(ECHO) flexExtCUDA: compiling debug $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexExtCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))))))
+ cp $(flexExtCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cpp.o,.cpp, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cppfiles))))).P; \
+ rm -f $(flexExtCUDA_debug_DEPDIR).d
+
+$(flexExtCUDA_debug_cc_o): $(flexExtCUDA_debug_objsdir)/%.o:
+ $(ECHO) flexExtCUDA: compiling debug $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))...
+ mkdir -p $(dir $(@))
+ $(CXX) $(flexExtCUDA_debug_cppflags) -c $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles)) -o $@
+ mkdir -p $(dir $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))))))
+ cp $(flexExtCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).debug.P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .cc.o,.cc, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_ccfiles))))).debug.P; \
+ rm -f $(flexExtCUDA_debug_DEPDIR).d
+
+$(flexExtCUDA_debug_c_o): $(flexExtCUDA_debug_objsdir)/%.o:
+ $(ECHO) flexExtCUDA: compiling debug $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))...
+ mkdir -p $(dir $(@))
+ $(CC) $(flexExtCUDA_debug_cflags) -c $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles)) -o $@
+ @mkdir -p $(dir $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))))))
+ cp $(flexExtCUDA_debug_DEPDIR).d $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \
+ sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
+ -e '/^$$/ d' -e 's/$$/ :/' < $(flexExtCUDA_debug_DEPDIR).d >> $(addprefix $(DEPSDIR)/flexExtCUDA/debug/, $(subst ./, , $(subst ../, , $(filter %$(strip $(subst .c.o,.c, $(subst $(flexExtCUDA_debug_objsdir),, $@))), $(flexExtCUDA_cfiles))))).P; \
+ rm -f $(flexExtCUDA_debug_DEPDIR).d
+
+clean_flexExtCUDA: clean_flexExtCUDA_release clean_flexExtCUDA_debug
+ rm -rf $(DEPSDIR)
+
+export VERBOSE
+ifndef VERBOSE
+.SILENT:
+endif
diff --git a/extensions/compiler/vc12win32/vc120.pdb b/extensions/compiler/vc12win32/vc120.pdb
index 893ff50..4bb28ac 100644
--- a/extensions/compiler/vc12win32/vc120.pdb
+++ b/extensions/compiler/vc12win32/vc120.pdb
Binary files differ
diff --git a/extensions/compiler/vc12win64/vc120.pdb b/extensions/compiler/vc12win64/vc120.pdb
index 4b0714b..48ac2a4 100644
--- a/extensions/compiler/vc12win64/vc120.pdb
+++ b/extensions/compiler/vc12win64/vc120.pdb
Binary files differ
diff --git a/extensions/compiler/vc14win32/vc140.pdb b/extensions/compiler/vc14win32/vc140.pdb
new file mode 100644
index 0000000..77acd50
--- /dev/null
+++ b/extensions/compiler/vc14win32/vc140.pdb
Binary files differ
diff --git a/extensions/compiler/xpj/flexExtCUDA.xpj b/extensions/compiler/xpj/flexExtCUDA.xpj
index 434b2fe..6e80a6f 100644
--- a/extensions/compiler/xpj/flexExtCUDA.xpj
+++ b/extensions/compiler/xpj/flexExtCUDA.xpj
@@ -12,7 +12,7 @@
</Conditional>
<Export platforms="Win32 Win64">../${xpj:TOOL}${xpj:PLATFORM}</Export>
- <Export platform="android{x}" tool="make">../makeandroid</Export>
+ <Export platform="android_aarch64" tool="make">../makeandroid_aarch64</Export>
<Export platform="Linux64" tool="make">../makelinux64</Export>
<Target name="flexExtCUDA">
@@ -118,47 +118,43 @@
</Config>
- <!-- Android -->
+ <!-- Android aarch64-->
- <Config name="default" type="lib" platforms="android{x}">
+ <Config name="default" type="lib" platforms="android_aarch64">
- <apply-template name="android-common"/>
+ <apply-template name="android-aarch64-common"/>
<FileTemplate name="cuda" command='${user:NVCC} ${user:NVCCInclude} --compile "%s" -o "%o"' buildtype="CustomBuild" />
- <OutDir platforms="android{x}" tool="make">${user:ProjectRoot}/lib/android</OutDir>
+ <OutDir platforms="android_aarch64" tool="make">${user:ProjectRoot}/lib/android_aarch64</OutDir>
- <Preprocessor type="define" platform="android{x}">
- android
+ <Preprocessor type="define" platform="android_aarch64">
+ android
ANDROID=1
ANDROID_PLAT=1
DISABLE_IMPORTGL
</Preprocessor>
- <CFlags tool="make">
- -Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions
- </CFlags>
-
+ <CFlags tool="make">-Wall -std=c++11 -fpermissive -fno-strict-aliasing -fno-rtti -fno-exceptions</CFlags>
+
</Config>
- <Config name="release" type="lib" platforms="android{x}">
+ <Config name="release" type="lib" platforms="android_aarch64">
<cflags> -O3 -ffast-math </cflags>
- <OutFile>libflexExt_cuda_release_armv7l.a</OutFile>
-
+ <OutFile>libNvFlexExtReleaseCUDA_aarch64.a</OutFile>
+
<Libraries>
- ${user:ProjectRoot}/lib/android/libNvFlexRelease_armv7l.a
- </Libraries>
-
+ ${user:ProjectRoot}/lib/android_aarch64/libNvFlexRelease_aarch64.a
+ </Libraries>
</Config>
- <Config name="debug" type="lib" platforms="android{x}">
+ <Config name="debug" type="lib" platforms="android_aarch64">
<cflags> -g -O0 </cflags>
- <OutFile>libflexExt_cuda_debug_armv7l.a</OutFile>
-
+ <OutFile>libNvFlexExtDebugCUDA_aarch64.a</OutFile>
+
<Libraries>
- ${user:ProjectRoot}/lib/android/libNvFlexDebug_armv7l.a
- </Libraries>
-
+ ${user:ProjectRoot}/lib/android_aarch64/libNvFlexDebug_aarch64.a
+ </Libraries>
</Config>
@@ -236,4 +232,4 @@
</Target>
</Project>
-</XPJ> \ No newline at end of file
+</XPJ>
diff --git a/extensions/compiler/xpj/flexExtD3D12.xpj b/extensions/compiler/xpj/flexExtD3D12.xpj
new file mode 100644
index 0000000..7ba5bd8
--- /dev/null
+++ b/extensions/compiler/xpj/flexExtD3D12.xpj
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<XPJ version="4">
+
+ <Project name="flexExtD3D12">
+
+ <!-- depends on flex solver project -->
+ <Conditional value="${config}" match="internal">
+ <Import file="../../../src/compiler/xpj/flexD3D12.xpj" />
+ </Conditional>
+
+ <Export platforms="Win32 Win64">../${xpj:TOOL}${xpj:PLATFORM}</Export>
+
+ <Target name="flexExtD3D12">
+
+ <Var name="ProjectRoot" value="../../.." />
+
+ <!-- Windows -->
+
+ <Config name="default" type="dll" platforms="Win32 Win64">
+
+ <OutDir platform="Win32">../../../bin/win32/</OutDir>
+ <OutDir platform="Win64">../../../bin/win64/</OutDir>
+
+ <Preprocessor type="define">
+ _CONSOLE
+ WIN32
+ </Preprocessor>
+
+ <WarningLevel>3</WarningLevel>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <CharacterSet>MultiByte</CharacterSet>
+
+ <SearchPaths type="header">
+ ..\..\..\..\..
+ </SearchPaths>
+
+ <Libraries>
+ kernel32.lib
+ user32.lib
+ gdi32.lib
+ winspool.lib
+ comdlg32.lib
+ advapi32.lib
+ shell32.lib
+ ole32.lib
+ oleaut32.lib
+ uuid.lib
+ odbc32.lib
+ odbccp32.lib
+ </Libraries>
+
+ </Config>
+
+ <Config name="debug" type="dll" platforms="Win32 Win64">
+
+ <OutFile platform="Win32">flexExt_d3d12_debug_x86.dll</OutFile>
+ <OutFile platform="Win64">flexExt_d3d12_debug_x64.dll</OutFile>
+
+ <IntDir>./build/${xpj:PLATFORM}/DX/debug/</IntDir>
+
+ <Preprocessor type="define">
+ _DEBUG
+ </Preprocessor>
+ <Preprocessor type="define">
+ _ITERATOR_DEBUG_LEVEL=0
+ </Preprocessor>
+ <RuntimeLibrary>MTd</RuntimeLibrary>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <FloatingPointModel>Precise</FloatingPointModel>
+ <ExportLibrary platform="Win32">..\..\..\lib\win32\flexExt_d3d12_debug_x86.lib</ExportLibrary>
+ <ExportLibrary platform="Win64">..\..\..\lib\win64\flexExt_d3d12_debug_x64.lib</ExportLibrary>
+
+ <Libraries platforms="Win32">
+ ${user:ProjectRoot}/lib/win32/flex_d3d12_debug_x86.lib
+ </Libraries>
+
+ <Libraries platforms="Win64">
+ ${user:ProjectRoot}/lib/win64/flex_d3d12_debug_x64.lib
+ </Libraries>
+
+ </Config>
+
+ <Config name="release" type="dll" platforms="Win32 Win64">
+
+ <OutFile platform="Win32">flexExt_d3d12_release_x86.dll</OutFile>
+ <OutFile platform="Win64">flexExt_d3d12_release_x64.dll</OutFile>
+
+ <IntDir>./build/${xpj:PLATFORM}/DX/release/</IntDir>
+
+ <Preprocessor type="define">
+ NDEBUG
+ </Preprocessor>
+ <RuntimeLibrary>MT</RuntimeLibrary>
+ <WholeProgramOptimization>1</WholeProgramOptimization>
+ <Optimization>3</Optimization>
+ <EnableIntrinsicFunctions>true</EnableIntrinsicFunctions>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <EnableFunctionLevelLinking>true</EnableFunctionLevelLinking>
+ <FloatingPointModel>Fast</FloatingPointModel>
+
+ <ExportLibrary platform="Win32">..\..\..\lib\win32\flexExt_d3d12_release_x86.lib</ExportLibrary>
+ <ExportLibrary platform="Win64">..\..\..\lib\win64\flexExt_d3d12_release_x64.lib</ExportLibrary>
+
+ <Libraries platforms="Win32">
+ ${user:ProjectRoot}/lib/win32/flex_d3d12_release_x86.lib
+ </Libraries>
+
+ <Libraries platforms="Win64">
+ ${user:ProjectRoot}/lib/win64/flex_d3d12_release_x64.lib
+ </Libraries>
+
+ </Config>
+
+
+ <SearchPaths type="header">
+ ..\..\..\
+ ..\..\..\external\D3D12\include
+ </SearchPaths>
+
+ <SearchPaths type="lib" platform="Win32">
+ ..\..\..\external\D3D12\libs\x86
+ ..\..\..\lib\x86
+ </SearchPaths>
+
+ <SearchPaths type="lib" platform="Win64">
+ ..\..\..\external\D3D12\libs\x64
+ ..\..\..\lib\win64
+ </SearchPaths>
+
+ <!-- Source -->
+
+ <Files name="Core" type="source" root="${user:ProjectRoot}/core">
+ sdf.cpp
+ voxelize.cpp
+ maths.cpp
+ aabbtree.cpp
+ </Files>
+
+ <Files name="src" type="source" root="${user:ProjectRoot}/extensions/dx">
+ flexExt.cpp
+ flexExt.hlsl
+ flexExt_dx_common.h
+ </Files>
+
+ <Files name="src" type="source" root="${user:ProjectRoot}/include">
+ flexExt.h
+ </Files>
+
+ <Files name="src" type="source" root="${user:ProjectRoot}/extensions">
+ flexExtCloth.cpp
+ flexExtRigid.cpp
+ flexExtSoft.cpp
+ flexExtMovingFrame.cpp
+ flexExtContainer.cpp
+ </Files>
+
+ <HLSL Configurations="release" DisableOptim="No" Debug="No" ShaderModel="5.0" Platforms="Win32 Win64" ObjectFileOutput=" " WarningAsErrors="false" OutputHeaderFileName="${user:ProjectRoot}/extensions/dx/shaders/%(Filename).h">
+ <File ShaderType="Compute" EntryPoint="UpdateForceFields::execute" OutputHeaderVarName="g_flexExt_UpdateForceFields"> "${user:ProjectRoot}/extensions/dx/shaders/flexExt.UpdateForceFields.hlsl" </File>
+ </HLSL>
+
+ <Conditional value="${config}" match="internal">
+ <Dependencies>
+ flexD3D12
+ </Dependencies>
+ </Conditional>
+
+ </Target>
+ </Project>
+</XPJ> \ No newline at end of file
diff --git a/extensions/dx/flexExt.cpp b/extensions/dx/flexExt.cpp
index 4dcc0e4..2b340cc 100644
--- a/extensions/dx/flexExt.cpp
+++ b/extensions/dx/flexExt.cpp
@@ -175,7 +175,7 @@ void NvFlexExtSetForceFields(NvFlexExtForceFieldCallback* c, const NvFlexExtForc
if (numForceFields > 0)
{
// update staging buffer
- void* dstPtr = c->mContext->mapUpload(c->mForceFieldsGpu);
+ void* dstPtr = c->mContext->map(c->mForceFieldsGpu, NvFlex::eMapWrite);
memcpy(dstPtr, forceFields, numForceFields*sizeof(NvFlexExtForceField));
c->mContext->unmap(c->mForceFieldsGpu);
diff --git a/extensions/flexExtContainer.cpp b/extensions/flexExtContainer.cpp
index 92cb958..60d0230 100644
--- a/extensions/flexExtContainer.cpp
+++ b/extensions/flexExtContainer.cpp
@@ -107,6 +107,8 @@ struct NvFlexExtContainer
NvFlexVector<int> mShapeOffsets;
NvFlexVector<int> mShapeIndices;
NvFlexVector<float> mShapeCoefficients;
+ NvFlexVector<float> mShapePlasticThresholds;
+ NvFlexVector<float> mShapePlasticCreeps;
NvFlexVector<Quat> mShapeRotations;
NvFlexVector<Vec3> mShapeTranslations;
NvFlexVector<Vec3> mShapeRestPositions;
@@ -139,7 +141,8 @@ struct NvFlexExtContainer
mMaxParticles(0), mSolver(NULL), mFlexLib(l),
mActiveList(l),mParticles(l),mParticlesRest(l),mVelocities(l),
mPhases(l),mNormals(l),mShapeOffsets(l),mShapeIndices(l),
- mShapeCoefficients(l),mShapeRotations(l),mShapeTranslations(l),
+ mShapeCoefficients(l),mShapePlasticThresholds(l),
+ mShapePlasticCreeps(l),mShapeRotations(l),mShapeTranslations(l),
mShapeRestPositions(l),mSpringIndices(l),mSpringLengths(l),
mSpringCoefficients(l),mTriangleIndices(l),mTriangleNormals(l),
mInflatableStarts(l),mInflatableCounts(l),mInflatableRestVolumes(l),
@@ -161,6 +164,8 @@ void CompactObjects(NvFlexExtContainer* c)
int totalNumShapes = 0;
int totalNumShapeIndices = 0;
+ bool plasticDeformation = false;
+
// pre-calculate array sizes
for (size_t i = 0; i < c->mInstances.size(); ++i)
{
@@ -176,6 +181,11 @@ void CompactObjects(NvFlexExtContainer* c)
totalNumShapeIndices += asset->numShapeIndices;
totalNumShapes += asset->numShapes;
+
+ if (asset->shapePlasticThresholds && asset->shapePlasticCreeps)
+ {
+ plasticDeformation = true;
+ }
}
//----------------------
@@ -203,6 +213,9 @@ void CompactObjects(NvFlexExtContainer* c)
c->mShapeOffsets.map();
c->mShapeCoefficients.map();
+ c->mShapePlasticThresholds.map();
+ c->mShapePlasticCreeps.map();
+
c->mShapeTranslations.map();
c->mShapeRotations.map();
@@ -231,6 +244,17 @@ void CompactObjects(NvFlexExtContainer* c)
c->mShapeOffsets.resize(1 + totalNumShapes);
c->mShapeCoefficients.resize(totalNumShapes);
+ if (plasticDeformation)
+ {
+ c->mShapePlasticThresholds.resize(totalNumShapes);
+ c->mShapePlasticCreeps.resize(totalNumShapes);
+ }
+ else
+ {
+ c->mShapePlasticThresholds.resize(0);
+ c->mShapePlasticCreeps.resize(0);
+ }
+
c->mShapeTranslations.resize(totalNumShapes);
c->mShapeRotations.resize(totalNumShapes);
@@ -244,6 +268,13 @@ void CompactObjects(NvFlexExtContainer* c)
Vec3* __restrict dstShapeRestPositions = (totalNumShapeIndices) ? &c->mShapeRestPositions[0] : NULL;
int* __restrict dstShapeOffsets = (totalNumShapes) ? &c->mShapeOffsets[0] : NULL;
float* __restrict dstShapeCoefficients = (totalNumShapes) ? &c->mShapeCoefficients[0] : NULL;
+ float* __restrict dstShapePlasticThresholds = NULL;
+ float* __restrict dstShapePlasticCreeps = NULL;
+ if (plasticDeformation)
+ {
+ dstShapePlasticThresholds = (totalNumShapes) ? &c->mShapePlasticThresholds[0] : NULL;
+ dstShapePlasticCreeps = (totalNumShapes) ? &c->mShapePlasticCreeps[0] : NULL;
+ }
Vec3* __restrict dstShapeTranslations = (totalNumShapes) ? &c->mShapeTranslations[0] : NULL;
Quat* __restrict dstShapeRotations = (totalNumShapes) ? &c->mShapeRotations[0] : NULL;
@@ -300,6 +331,18 @@ void CompactObjects(NvFlexExtContainer* c)
{
dstShapeOffsets[shapeIndex] = asset->shapeOffsets[s] + indexOffset;
dstShapeCoefficients[shapeIndex] = asset->shapeCoefficients[s];
+ if (plasticDeformation)
+ {
+ if (asset->shapePlasticThresholds)
+ dstShapePlasticThresholds[shapeIndex] = asset->shapePlasticThresholds[s];
+ else
+ dstShapePlasticThresholds[shapeIndex] = 0.0f;
+
+ if (asset->shapePlasticCreeps)
+ dstShapePlasticCreeps[shapeIndex] = asset->shapePlasticCreeps[s];
+ else
+ dstShapePlasticCreeps[shapeIndex] = 0.0f;
+ }
dstShapeTranslations[shapeIndex] = Vec3(&inst->shapeTranslations[s*3]);
dstShapeRotations[shapeIndex] = Quat(&inst->shapeRotations[s*4]);
@@ -309,15 +352,10 @@ void CompactObjects(NvFlexExtContainer* c)
for (int i=shapeStart; i < shapeEnd; ++i)
{
- const int firstParticle = asset->shapeIndices[0];
const int currentParticle = asset->shapeIndices[i];
// remap indices and create local space positions for each shape
- // To make this calculation more robust, subtract the position of the first particle from both, the positions of the current
- // particle and the shapeCenter. Without this one would subtract two very similar floating point values, which can lead to ghost forces.
- dstShapeRestPositions[shapeIndexOffset] = (Vec3(&asset->particles[currentParticle*4]) - Vec3(&asset->particles[firstParticle]))
- - (Vec3(&asset->shapeCenters[s*3]) - Vec3(&asset->particles[firstParticle]));
-
+ dstShapeRestPositions[shapeIndexOffset] = Vec3(&asset->particles[currentParticle*4]) - Vec3(&asset->shapeCenters[s*3]);
dstShapeIndices[shapeIndexOffset] = remap[asset->shapeIndices[i]];
++shapeIndexOffset;
@@ -378,6 +416,9 @@ void CompactObjects(NvFlexExtContainer* c)
c->mShapeOffsets.unmap();
c->mShapeCoefficients.unmap();
+ c->mShapePlasticThresholds.unmap();
+ c->mShapePlasticCreeps.unmap();
+
c->mShapeTranslations.unmap();
c->mShapeRotations.unmap();
@@ -393,14 +434,14 @@ void CompactObjects(NvFlexExtContainer* c)
// shapes
if (c->mShapeCoefficients.size())
{
- NvFlexSetRigids(c->mSolver, c->mShapeOffsets.buffer, c->mShapeIndices.buffer, c->mShapeRestPositions.buffer, NULL, c->mShapeCoefficients.buffer, c->mShapeRotations.buffer, c->mShapeTranslations.buffer, int(c->mShapeCoefficients.size()), c->mShapeIndices.size());
+ NvFlexSetRigids(c->mSolver, c->mShapeOffsets.buffer, c->mShapeIndices.buffer, c->mShapeRestPositions.buffer, NULL, c->mShapeCoefficients.buffer, c->mShapePlasticThresholds.buffer, c->mShapePlasticCreeps.buffer, c->mShapeRotations.buffer, c->mShapeTranslations.buffer, int(c->mShapeCoefficients.size()), c->mShapeIndices.size());
}
else
{
c->mShapeRotations.resize(0);
c->mShapeTranslations.resize(0);
- NvFlexSetRigids(c->mSolver, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0);
+ NvFlexSetRigids(c->mSolver, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0);
}
// triangles
@@ -729,18 +770,19 @@ void NvFlexExtPushToDevice(NvFlexExtContainer* c)
int n = NvFlexExtGetActiveList(c, &c->mActiveList[0]);
c->mActiveList.unmap();
- NvFlexSetActive(c->mSolver, c->mActiveList.buffer, n);
+ NvFlexSetActive(c->mSolver, c->mActiveList.buffer, NULL);
+ NvFlexSetActiveCount(c->mSolver, n);
c->mNeedsActiveListRebuild = false;
}
// push any changes to solver
- NvFlexSetParticles(c->mSolver, c->mParticles.buffer, int(c->mParticles.size()));
- NvFlexSetRestParticles(c->mSolver, c->mParticlesRest.buffer, int(c->mParticlesRest.size()));
+ NvFlexSetParticles(c->mSolver, c->mParticles.buffer, NULL);
+ NvFlexSetRestParticles(c->mSolver, c->mParticlesRest.buffer, NULL);
- NvFlexSetVelocities(c->mSolver, c->mVelocities.buffer, int(c->mVelocities.size()));
- NvFlexSetPhases(c->mSolver, c->mPhases.buffer, int(c->mPhases.size()));
- NvFlexSetNormals(c->mSolver, c->mNormals.buffer, int(c->mNormals.size()));
+ NvFlexSetVelocities(c->mSolver, c->mVelocities.buffer, NULL);
+ NvFlexSetPhases(c->mSolver, c->mPhases.buffer, NULL);
+ NvFlexSetNormals(c->mSolver, c->mNormals.buffer, NULL);
if (c->mNeedsCompact)
CompactObjects(c);
@@ -748,18 +790,16 @@ void NvFlexExtPushToDevice(NvFlexExtContainer* c)
void NvFlexExtPullFromDevice(NvFlexExtContainer* c)
{
-
// read back particle data
- NvFlexGetParticles(c->mSolver, c->mParticles.buffer, int(c->mParticles.size()));
- NvFlexGetVelocities(c->mSolver, c->mVelocities.buffer, int(c->mVelocities.size()));
- NvFlexGetPhases(c->mSolver, c->mPhases.buffer, int(c->mPhases.size()));
- NvFlexGetNormals(c->mSolver, c->mNormals.buffer, int(c->mNormals.size()));
+ NvFlexGetParticles(c->mSolver, c->mParticles.buffer, NULL);
+ NvFlexGetVelocities(c->mSolver, c->mVelocities.buffer, NULL);
+ NvFlexGetPhases(c->mSolver, c->mPhases.buffer, NULL);
+ NvFlexGetNormals(c->mSolver, c->mNormals.buffer, NULL);
NvFlexGetBounds(c->mSolver, c->mBoundsLower.buffer, c->mBoundsUpper.buffer);
// read back shape transforms
if (c->mShapeCoefficients.size())
- NvFlexGetRigidTransforms(c->mSolver, c->mShapeRotations.buffer, c->mShapeTranslations.buffer);
-
+ NvFlexGetRigids(c->mSolver, NULL, NULL, NULL, NULL, NULL, NULL, NULL, c->mShapeRotations.buffer, c->mShapeTranslations.buffer);
}
void NvFlexExtUpdateInstances(NvFlexExtContainer* c)
@@ -800,6 +840,8 @@ void NvFlexExtDestroyAsset(NvFlexExtAsset* asset)
delete[] asset->shapeOffsets;
delete[] asset->shapeCenters;
delete[] asset->shapeCoefficients;
+ delete[] asset->shapePlasticThresholds;
+ delete[] asset->shapePlasticCreeps;
delete asset;
}
diff --git a/extensions/flexExtRigid.cpp b/extensions/flexExtRigid.cpp
index 9c37c28..897d009 100644
--- a/extensions/flexExtRigid.cpp
+++ b/extensions/flexExtRigid.cpp
@@ -68,11 +68,26 @@ Vec3 SampleSDFGrad(const float* sdf, int dim, int x, int y, int z)
NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVertices, const int* indices, int numTriangleIndices, float spacing, float expand)
{
+ // Switch to relative coordinates by computing the mean position of the vertices and subtracting the result from every vertex position
+ // The increased precision will prevent ghost forces caused by inaccurate center of mass computations
+ Vec3 meshOffset(0.0f);
+ for (int i = 0; i < numVertices; i++)
+ {
+ meshOffset += ((Vec3*)vertices)[i];
+ }
+ meshOffset /= float(numVertices);
+
+ Vec3* relativeVertices = new Vec3[numVertices];
+ for (int i = 0; i < numVertices; i++)
+ {
+ relativeVertices[i] += ((Vec3*)vertices)[i] - meshOffset;
+ }
+
std::vector<Vec4> particles;
std::vector<Vec4> normals;
std::vector<int> phases;
- const Vec3* positions = (Vec3*)vertices;
+ const Vec3* positions = relativeVertices;
Vec3 meshLower(FLT_MAX), meshUpper(-FLT_MAX);
for (int i=0; i < numVertices; ++i)
@@ -105,11 +120,11 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti
// lie symmetrically to the center of the object. this reduces the
// chance of missing features, and also better aligns the particles
// with the mesh
- Vec3 meshOffset;
- meshOffset.x = 0.5f * (spacing - (edges.x - (dx-1)*spacing));
- meshOffset.y = 0.5f * (spacing - (edges.y - (dy-1)*spacing));
- meshOffset.z = 0.5f * (spacing - (edges.z - (dz-1)*spacing));
- meshLower -= meshOffset;
+ Vec3 meshShift;
+ meshShift.x = 0.5f * (spacing - (edges.x - (dx-1)*spacing));
+ meshShift.y = 0.5f * (spacing - (edges.y - (dy-1)*spacing));
+ meshShift.z = 0.5f * (spacing - (edges.z - (dz-1)*spacing));
+ meshLower -= meshShift;
// don't allow samplings with > 64 per-side
if (maxDim > 64)
@@ -117,7 +132,9 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti
std::vector<uint32_t> voxels(maxDim*maxDim*maxDim);
- Voxelize(vertices, numVertices, indices, numTriangleIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing));
+ Voxelize(relativeVertices, numVertices, indices, numTriangleIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing));
+
+ delete[] relativeVertices;
std::vector<float> sdf(maxDim*maxDim*maxDim);
MakeSDF(&voxels[0], maxDim, maxDim, maxDim, &sdf[0]);
@@ -153,23 +170,27 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti
}
}
}
+ const int numParticles = int(particles.size());
+
+ // Switch back to absolute coordinates by adding meshOffset to the center of mass and to each particle positions
+ center /= float(numParticles);
+ center += meshOffset;
+
+ for (int i = 0; i < numParticles; i++) {
+ particles[i] += Vec4(meshOffset, 0.0f);
+ }
NvFlexExtAsset* asset = new NvFlexExtAsset();
memset(asset, 0, sizeof(*asset));
- if (particles.size())
+ if (numParticles)
{
- const int numParticles = int(particles.size());
-
asset->numParticles = numParticles;
asset->maxParticles = numParticles;
asset->particles = new float[numParticles*4];
memcpy(asset->particles, &particles[0], sizeof(Vec4)*numParticles);
- // store center of mass
- center /= float(numParticles);
-
asset->numShapes = 1;
asset->numShapeIndices = numParticles;
@@ -179,11 +200,15 @@ NvFlexExtAsset* NvFlexExtCreateRigidFromMesh(const float* vertices, int numVerti
for (int i = 0; i < numParticles; ++i)
asset->shapeIndices[i] = i;
+ // store center of mass
asset->shapeCenters = new float[4];
asset->shapeCenters[0] = center.x;
asset->shapeCenters[1] = center.y;
asset->shapeCenters[2] = center.z;
+ asset->shapePlasticThresholds = NULL;
+ asset->shapePlasticCreeps = NULL;
+
asset->shapeCoefficients = new float[1];
asset->shapeCoefficients[0] = 1.0f;
diff --git a/extensions/flexExtSoft.cpp b/extensions/flexExtSoft.cpp
index 53537c4..aafdc56 100644
--- a/extensions/flexExtSoft.cpp
+++ b/extensions/flexExtSoft.cpp
@@ -441,7 +441,7 @@ void SampleMesh(const Vec3* vertices, int numVertices, const int* indices, int n
meshOffset.z = 0.5f * (spacing - (edges.z - (dz - 1)*spacing));
meshLower -= meshOffset;
- Voxelize((const float*)vertices, numVertices, indices, numIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing));
+ Voxelize(vertices, numVertices, indices, numIndices, maxDim, maxDim, maxDim, &voxels[0], meshLower, meshLower + Vec3(maxDim*spacing));
// sample interior
for (int x = 0; x < maxDim; ++x)
@@ -507,14 +507,31 @@ void SampleMesh(const Vec3* vertices, int numVertices, const int* indices, int n
// API methods
-NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertices, const int* indices, int numIndices, float particleSpacing, float volumeSampling, float surfaceSampling, float clusterSpacing, float clusterRadius, float clusterStiffness, float linkRadius, float linkStiffness, float globalStiffness)
+NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertices, const int* indices, int numIndices, float particleSpacing, float volumeSampling, float surfaceSampling, float clusterSpacing, float clusterRadius, float clusterStiffness, float linkRadius, float linkStiffness, float globalStiffness, float clusterPlasticThreshold, float clusterPlasticCreep)
{
+ // Switch to relative coordinates by computing the mean position of the vertices and subtracting the result from every vertex position
+ // The increased precision will prevent ghost forces caused by inaccurate center of mass computations
+ Vec3 meshOffset(0.0f);
+ for (int i = 0; i < numVertices; i++)
+ {
+ meshOffset += ((Vec3*)vertices)[i];
+ }
+ meshOffset /= float(numVertices);
+
+ Vec3* relativeVertices = new Vec3[numVertices];
+ for (int i = 0; i < numVertices; i++)
+ {
+ relativeVertices[i] += ((Vec3*)vertices)[i] - meshOffset;
+ }
+
// construct asset definition
NvFlexExtAsset* asset = new NvFlexExtAsset();
// create particle sampling
std::vector<Vec3> samples;
- SampleMesh((Vec3*)vertices, numVertices, indices, numIndices, particleSpacing, volumeSampling, surfaceSampling, samples);
+ SampleMesh(relativeVertices, numVertices, indices, numIndices, particleSpacing, volumeSampling, surfaceSampling, samples);
+
+ delete[] relativeVertices;
const int numParticles = int(samples.size());
@@ -522,6 +539,8 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic
std::vector<int> clusterOffsets;
std::vector<Vec3> clusterPositions;
std::vector<float> clusterCoefficients;
+ std::vector<float> clusterPlasticThresholds;
+ std::vector<float> clusterPlasticCreeps;
// priority (not currently used)
std::vector<float> priority(numParticles);
@@ -534,6 +553,15 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic
// assign all clusters the same stiffness
clusterCoefficients.resize(numClusters, clusterStiffness);
+ if (clusterPlasticCreep)
+ {
+ // assign all clusters the same plastic threshold
+ clusterPlasticThresholds.resize(numClusters, clusterPlasticThreshold);
+
+ // assign all clusters the same plastic creep
+ clusterPlasticCreeps.resize(numClusters, clusterPlasticCreep);
+ }
+
// create links between clusters
if (linkRadius > 0.0f)
{
@@ -565,26 +593,38 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic
{
numClusters += 1;
clusterCoefficients.push_back(globalStiffness);
+ if (clusterPlasticCreep)
+ {
+ clusterPlasticThresholds.push_back(clusterPlasticThreshold);
+ clusterPlasticCreeps.push_back(clusterPlasticCreep);
+ }
for (int i = 0; i < numParticles; ++i)
{
clusterIndices.push_back(i);
}
-
clusterOffsets.push_back((int)clusterIndices.size());
// the mean of the global cluster is the mean of all particles
Vec3 globalMeanPosition(0.0f);
-
for (int i = 0; i < numParticles; ++i)
{
globalMeanPosition += samples[i];
}
globalMeanPosition /= float(numParticles);
-
clusterPositions.push_back(globalMeanPosition);
}
+ // Switch back to absolute coordinates by adding meshOffset to the centers of mass and to each particle positions
+ for (int i = 0; i < numParticles; ++i)
+ {
+ samples[i] += meshOffset;
+ }
+ for (int i = 0; i < numClusters; ++i)
+ {
+ clusterPositions[i] += meshOffset;
+ }
+
// assign particles
asset->particles = new float[numParticles * 4];
asset->numParticles = numParticles;
@@ -611,6 +651,20 @@ NvFlexExtAsset* NvFlexExtCreateSoftFromMesh(const float* vertices, int numVertic
asset->shapeCoefficients = new float[numClusters];
memcpy(asset->shapeCoefficients, &clusterCoefficients[0], sizeof(float)*numClusters);
+ if (clusterPlasticCreep)
+ {
+ asset->shapePlasticThresholds = new float[numClusters];
+ memcpy(asset->shapePlasticThresholds, &clusterPlasticThresholds[0], sizeof(float)*numClusters);
+
+ asset->shapePlasticCreeps = new float[numClusters];
+ memcpy(asset->shapePlasticCreeps, &clusterPlasticCreeps[0], sizeof(float)*numClusters);
+ }
+ else
+ {
+ asset->shapePlasticThresholds = NULL;
+ asset->shapePlasticCreeps = NULL;
+ }
+
asset->numShapeIndices = int(clusterIndices.size());
asset->numShapes = numClusters;