mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-07-31 03:22:01 +08:00

- Improved compression for triangular meshes (~10%) - Added WebAssembly decoder - Code cleanup + robustness fixes
707 lines
28 KiB
Makefile
707 lines
28 KiB
Makefile
#########
|
|
# Makefile for emscripten
|
|
CC=emcc
|
|
CXX=em++
|
|
AR=emar
|
|
LD=emcc
|
|
|
|
######### Configurations defining feature set #########
|
|
# Use "make target DRACO_CONFIG=full|limited" to set the desired configuration
|
|
|
|
# Select the correct version based on the input flags.
|
|
DRACO_CONFIG ?= full
|
|
|
|
# Full config - all features included.
|
|
DRACO_FULL_MESH_CONFIG_DEFINES := -DDRACO_MESH_COMPRESSION_SUPPORTED
|
|
DRACO_FULL_MESH_CONFIG_DEFINES += -DDRACO_STANDARD_EDGEBREAKER_SUPPORTED
|
|
DRACO_FULL_MESH_CONFIG_DEFINES += -DDRACO_PREDICTIVE_EDGEBREAKER_SUPPORTED
|
|
|
|
DRACO_FULL_POINT_CLOUD_CONFIG_DEFINES := -DDRACO_POINT_CLOUD_COMPRESSION_SUPPORTED
|
|
|
|
DRACO_FULL_CONFIG_DEFINES := $(DRACO_FULL_MESH_CONFIG_DEFINES)
|
|
DRACO_FULL_CONFIG_DEFINES += $(DRACO_FULL_POINT_CLOUD_CONFIG_DEFINES)
|
|
|
|
# Default limited config with only some core features enabled.
|
|
DRACO_LIMITED_CONFIG_DEFINES := -DDRACO_STANDARD_EDGEBREAKER_SUPPORTED
|
|
DRACO_LIMITED_CONFIG_DEFINES += -DDRACO_POINT_CLOUD_COMPRESSION_SUPPORTED
|
|
DRACO_LIMITED_CONFIG_DEFINES += -DDRACO_MESH_COMPRESSION_SUPPORTED
|
|
|
|
ifeq ($(DRACO_CONFIG), limited)
|
|
DRACO_CONFIG_DEFINES := $(DRACO_LIMITED_CONFIG_DEFINES)
|
|
else ifeq ($(DRACO_CONFIG), full_mesh)
|
|
DRACO_CONFIG_DEFINES := $(DRACO_FULL_MESH_CONFIG_DEFINES)
|
|
else ifeq ($(DRACO_CONFIG), full_point_cloud)
|
|
DRACO_CONFIG_DEFINES := $(DRACO_FULL_POINT_CLOUD_CONFIG_DEFINES)
|
|
else
|
|
DRACO_CONFIG_DEFINES := $(DRACO_FULL_CONFIG_DEFINES)
|
|
endif
|
|
#########
|
|
|
|
DEFINES := $(DRACO_CONFIG_DEFINES)
|
|
INCLUDES := -I../../ -I./
|
|
OBJDIR := obj
|
|
LIBDIR := libs
|
|
IDL := javascript/emscripten/draco_web.idl
|
|
BINDER := $(EMSCRIPTEN)/tools/webidl_binder.py
|
|
|
|
# In order to open an input mesh file with test_mesh_encoder, you need to add
|
|
# the mesh here. Then you need to add the test_mesh_encoder command line
|
|
# arguments to the generated html file. E.g.
|
|
# arguments: ["-m","1","-q","9", "-noerror","-no3rdparty","-f","cube.obj"],
|
|
#MESH_FILE := --preload-file cube.obj
|
|
MESH_FILE :=
|
|
|
|
ALL_C_OPTS := -std=c++11
|
|
|
|
# Options to reduce JavaScript size.
|
|
#ALL_C_OPTS += -Oz -s NO_FILESYSTEM=1 -s DISABLE_EXCEPTION_CATCHING=1
|
|
#ALL_C_OPTS += -s USE_SDL=0 -s USE_SDL_IMAGE=0 -s USE_SDL_TTF=0
|
|
|
|
# Options for speed.
|
|
ALL_C_OPTS += -O3
|
|
ALL_C_OPTS += -s NO_FILESYSTEM=1 -s ELIMINATE_DUPLICATE_FUNCTIONS=1
|
|
ALL_C_OPTS += -s EXPORTED_RUNTIME_METHODS=[]
|
|
ALL_C_OPTS += -s PRECISE_F32=1
|
|
|
|
# Option to get about a 10% speed increase at the cost of about 10% in size.
|
|
# Use "make target DRACO_PERFORMANCE_TYPE=extra_speed"
|
|
ifeq ($(DRACO_PERFORMANCE_TYPE), extra_speed)
|
|
ALL_C_OPTS += --llvm-lto 1
|
|
endif
|
|
|
|
# Options for debug
|
|
#ALL_C_OPTS += -g -s DEMANGLE_SUPPORT=1
|
|
|
|
# If you use -s ALLOW_MEMORY_GROWTH=1 it may turn off some optimizations which
|
|
# will hurt performance.
|
|
ALL_C_OPTS += -s ALLOW_MEMORY_GROWTH=1
|
|
#ALL_C_OPTS += -s TOTAL_MEMORY=67108864
|
|
|
|
# Export the main module as "DracoModule".
|
|
ALL_C_OPTS += -s MODULARIZE=1 -s EXPORT_NAME="'DracoModule'"
|
|
|
|
# Do not create a .mem file.
|
|
ALL_C_OPTS += --memory-init-file 0
|
|
|
|
# Options to separate asm.js and mem file.
|
|
#ALL_C_OPTS += --separate-asm --memory-init-file 1
|
|
|
|
# Options to output WebAssembly code.
|
|
# Use "make target DRACO_BUILD_TYPE=wasm"
|
|
ifeq ($(DRACO_BUILD_TYPE), wasm)
|
|
ALL_C_OPTS += -s WASM=1 -s BINARYEN_IMPRECISE=1
|
|
endif
|
|
|
|
CFLAGS := $(ALL_C_OPTS)
|
|
CXXFLAGS := $(ALL_C_OPTS)
|
|
CFLAGS += -Wno-sign-compare -fno-omit-frame-pointer
|
|
CXXFLAGS += -Wno-sign-compare -fno-omit-frame-pointer
|
|
|
|
ALL_CXXFLAGS := -MMD -MP $(DEFINES) $(INCLUDES) $(CXXFLAGS)
|
|
|
|
DATA_BUFFER_A := libdata_buffer.a
|
|
DATA_BUFFER_OBJS := core/data_buffer.o
|
|
|
|
QUANTIZATION_UTILS_A := libquantization_utils.a
|
|
QUANTIZATION_UTILS_OBJS := core/quantization_utils.o
|
|
CYCLE_TIMER_A := libcycle_timer.a
|
|
CYCLE_TIMER_OBJS := core/cycle_timer.o
|
|
|
|
ENCODER_BUFFER_A := libencoder_buffer.a
|
|
ENCODER_BUFFER_OBJS := core/encoder_buffer.o
|
|
|
|
DECODER_BUFFER_A := libdecoder_buffer.a
|
|
DECODER_BUFFER_OBJS := core/bit_coder.o core/decoder_buffer.o
|
|
|
|
RANS_BIT_DECODER_A := librans_bit_decoder.a
|
|
RANS_BIT_DECODER_OBJS := core/divide.o core/rans_bit_decoder.o
|
|
|
|
RANS_BIT_ENCODER_A := librans_bit_encoder.a
|
|
RANS_BIT_ENCODER_OBJS := core/divide.o core/rans_bit_encoder.o
|
|
|
|
ADAPTIVE_RANS_BIT_DECODER_A := libadaptive_rans_bit_decoder.a
|
|
ADAPTIVE_RANS_BIT_DECODER_OBJS := core/adaptive_rans_bit_decoder.o
|
|
|
|
ADAPTIVE_RANS_BIT_ENCODER_A := libadaptive_rans_bit_encoder.a
|
|
ADAPTIVE_RANS_BIT_ENCODER_OBJS := core/adaptive_rans_bit_encoder.o
|
|
|
|
CORNER_TABLE_A := libcorner_table.a
|
|
CORNER_TABLE_OBJS := mesh/corner_table.o
|
|
|
|
SHANNON_ENTROPY_A := libshannon_entropy.a
|
|
SHANNON_ENTROPY_OBJS := core/shannon_entropy.o
|
|
|
|
SYMBOL_CODING_A := libsymbol_coding.a
|
|
SYMBOL_CODING_OBJS := core/symbol_decoding.o core/symbol_encoding.o
|
|
|
|
DIRECT_BIT_DECODER_A := libdirect_bit_decoder.a
|
|
DIRECT_BIT_DECODER_OBJS := core/direct_bit_decoder.o
|
|
|
|
DIRECT_BIT_ENCODER_A := libdirect_bit_encoder.a
|
|
DIRECT_BIT_ENCODER_OBJS := core/direct_bit_encoder.o
|
|
|
|
DRACO_TYPES_A := libdraco_types.a
|
|
DRACO_TYPES_OBJS := core/draco_types.o
|
|
|
|
GEOMETRY_ATTRIBUTE_A := geometry_attribute.a
|
|
GEOMETRY_ATTRIBUTE_OBJS := point_cloud/geometry_attribute.o
|
|
POINT_ATTRIBUTE_A := point_attribute.a
|
|
POINT_ATTRIBUTE_OBJS := point_cloud/point_attribute.o
|
|
POINT_CLOUD_A := point_cloud.a
|
|
POINT_CLOUD_OBJS := point_cloud/point_cloud.o
|
|
MESH_A := libmesh.a
|
|
MESH_OBJS := mesh/mesh.o
|
|
OPTIONS_A := options.a
|
|
OPTIONS_OBJS := core/options.o
|
|
ENCODER_OPTIONS_A := encoder_options.a
|
|
ENCODER_OPTIONS_OBJS := compression/config/encoder_options.o
|
|
POINT_CLOUD_ENCODER_BASE_A := point_cloud_encoder_base.a
|
|
POINT_CLOUD_ENCODER_BASE_OBJS := compression/attributes/attributes_encoder.o
|
|
POINT_CLOUD_ENCODER_BASE_OBJS += compression/point_cloud/point_cloud_encoder.o
|
|
POINT_CLOUD_DECODER_BASE_A := point_cloud_decoder_base.a
|
|
POINT_CLOUD_DECODER_BASE_OBJS := compression/attributes/attributes_decoder.o
|
|
POINT_CLOUD_DECODER_BASE_OBJS += compression/point_cloud/point_cloud_decoder.o
|
|
|
|
MESH_ENCODER_BASE_A := mesh_encoder_base.a
|
|
MESH_ENCODER_BASE_OBJS := compression/mesh/mesh_encoder.o
|
|
MESH_DECODER_BASE_A := mesh_decoder_base.a
|
|
MESH_DECODER_BASE_OBJS := compression/mesh/mesh_decoder.o
|
|
SEQUENTIAL_ATTRIBUTE_ENCODER_A := sequential_attribute_encoder.a
|
|
SEQUENTIAL_ATTRIBUTE_ENCODER_OBJS := \
|
|
compression/attributes/sequential_attribute_encoder.o
|
|
SEQUENTIAL_ATTRIBUTE_DECODER_A := sequential_attribute_decoder.a
|
|
SEQUENTIAL_ATTRIBUTE_DECODER_OBJS := \
|
|
compression/attributes/sequential_attribute_decoder.o
|
|
SEQUENTIAL_INTEGER_ATTRIBUTE_ENCODER_A := \
|
|
sequential_integer_attribute_encoder.a
|
|
SEQUENTIAL_INTEGER_ATTRIBUTE_ENCODER_OBJS := \
|
|
compression/attributes/sequential_integer_attribute_encoder.o
|
|
SEQUENTIAL_INTEGER_ATTRIBUTE_DECODER_A := \
|
|
sequential_integer_attribute_decoder.a
|
|
SEQUENTIAL_INTEGER_ATTRIBUTE_DECODER_OBJS := \
|
|
compression/attributes/sequential_integer_attribute_decoder.o
|
|
SEQUENTIAL_QUANTIZATION_ATTRIBUTE_ENCODER_A := \
|
|
sequential_quantization_attribute_encoder.a
|
|
SEQUENTIAL_QUANTIZATION_ATTRIBUTE_ENCODER_OBJS := \
|
|
compression/attributes/sequential_quantization_attribute_encoder.o
|
|
SEQUENTIAL_QUANTIZATION_ATTRIBUTE_DECODER_A := \
|
|
sequential_quantization_attribute_decoder.a
|
|
SEQUENTIAL_QUANTIZATION_ATTRIBUTE_DECODER_OBJS := \
|
|
compression/attributes/sequential_quantization_attribute_decoder.o
|
|
KD_TREE_ATTRIBUTES_ENCODER_A := kd_tree_attributes_encoder.a
|
|
KD_TREE_ATTRIBUTES_ENCODER_OBJS := \
|
|
compression/attributes/kd_tree_attributes_encoder.o
|
|
KD_TREE_ATTRIBUTES_DECODER_A := kd_tree_attributes_decoder.a
|
|
KD_TREE_ATTRIBUTES_DECODER_OBJS := \
|
|
compression/attributes/kd_tree_attributes_decoder.o
|
|
|
|
SEQUENTIAL_NORMAL_ATTRIBUTE_ENCODER_A := \
|
|
sequential_normal_attribute_encoder.a
|
|
SEQUENTIAL_NORMAL_ATTRIBUTE_OBJS := \
|
|
compression/attributes/sequential_normal_attribute_encoder.o
|
|
SEQUENTIAL_NORMAL_ATTRIBUTE_DECODER_A := \
|
|
sequential_normal_attribute_decoder.a
|
|
SEQUENTIAL_NORMAL_ATTRIBUTE_DECODER_OBJS := \
|
|
compression/attributes/sequential_normal_attribute_decoder.o
|
|
|
|
SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_A := \
|
|
sequential_attribute_encoders_controller.a
|
|
SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_OBJS := \
|
|
compression/attributes/sequential_attribute_encoders_controller.o
|
|
SEQUENTIAL_ATTRIBUTE_DECODERS_CONTROLLER_A := \
|
|
sequential_attribute_decoders_controller.a
|
|
SEQUENTIAL_ATTRIBUTE_DECODERS_CONTROLLER_OBJS := \
|
|
compression/attributes/sequential_attribute_decoders_controller.o
|
|
POINT_CLOUD_SEQUENTIAL_ENCODER_A := point_cloud_sequential_encoder.a
|
|
POINT_CLOUD_SEQUENTIAL_ENCODER_OBJS := \
|
|
compression/point_cloud/point_cloud_sequential_encoder.o
|
|
POINT_CLOUD_SEQUENTIAL_DECODER_A := point_cloud_sequential_decoder.a
|
|
POINT_CLOUD_SEQUENTIAL_DECODER_OBJS := \
|
|
compression/point_cloud/point_cloud_sequential_decoder.o
|
|
POINT_CLOUD_KD_TREE_ENCODER_A := point_cloud_kd_tree_encoder.a
|
|
POINT_CLOUD_KD_TREE_ENCODER_OBJS := \
|
|
compression/point_cloud/point_cloud_kd_tree_encoder.o
|
|
POINT_CLOUD_KD_TREE_DECODER_A := point_cloud_kd_tree_decoder.a
|
|
POINT_CLOUD_KD_TREE_DECODER_OBJS := \
|
|
compression/point_cloud/point_cloud_kd_tree_decoder.o
|
|
MESH_SEQUENTIAL_ENCODER_A := mesh_sequential_encoder.a
|
|
MESH_SEQUENTIAL_ENCODER_OBJS := compression/mesh/mesh_sequential_encoder.o
|
|
MESH_SEQUENTIAL_DECODER_A := mesh_sequential_decoder.a
|
|
MESH_SEQUENTIAL_DECODER_OBJS := compression/mesh/mesh_sequential_decoder.o
|
|
|
|
MESH_EDGEBREAKER_ENCODER_A := mesh_edgebreaker_encoder.a
|
|
MESH_EDGEBREAKER_ENCODER_OBJS := compression/mesh/mesh_edgebreaker_encoder.o
|
|
MESH_EDGEBREAKER_ENCODER_OBJS += \
|
|
compression/mesh/mesh_edgebreaker_encoder_impl.o
|
|
MESH_EDGEBREAKER_DECODER_A := mesh_edgebreaker_encoder.a
|
|
MESH_EDGEBREAKER_DECODER_OBJS := compression/mesh/mesh_edgebreaker_decoder.o
|
|
MESH_EDGEBREAKER_DECODER_OBJS += \
|
|
compression/mesh/mesh_edgebreaker_decoder_impl.o
|
|
ENCODE_A := encode.a
|
|
ENCODE_OBJS := compression/encode.o
|
|
DECODE_A := decode.a
|
|
DECODE_OBJS := compression/decode.o
|
|
|
|
OBJ_DECODER_A := libobj_decoder.a
|
|
OBJ_DECODER_OBJS := io/obj_decoder.o
|
|
|
|
PLY_DECODER_A := libply_decoder.a
|
|
PLY_DECODER_OBJS := core/hash_utils.o io/ply_decoder.o
|
|
|
|
PLY_ENCODER_A := libply_encoder.a
|
|
PLY_ENCODER_OBJS := io/ply_encoder.o
|
|
|
|
MESH_IO_A := libmesh_io.a
|
|
MESH_IO_OBJS := io/mesh_io.o
|
|
|
|
MESH_ATTRIBUTE_CORNER_TABLE_A := libmesh_attribute_corner_table.a
|
|
MESH_ATTRIBUTE_CORNER_TABLE_OBJS := mesh/mesh_attribute_corner_table.o
|
|
|
|
MESH_MISC_A := libmesh_misc.a
|
|
MESH_MISC_OBJS := mesh/mesh_misc_functions.o
|
|
|
|
FLOAT_POINTS_TREE_DECODER_A := \
|
|
libfloat_points_tree_decoder.a
|
|
FLOAT_POINTS_TREE_DECODER_OBJS := \
|
|
compression/point_cloud/algorithms/float_points_tree_decoder.o
|
|
|
|
FLOAT_POINTS_TREE_ENCODER_A := \
|
|
libfloat_points_tree_encoder.a
|
|
FLOAT_POINTS_TREE_ENCODER_OBJS := \
|
|
compression/point_cloud/algorithms/float_points_tree_encoder.o
|
|
|
|
INTEGER_POINTS_KD_TREE_DECODER_A := \
|
|
libinteger_points_kd_tree_decoder.a
|
|
INTEGER_POINTS_KD_TREE_DECODER_OBJS := \
|
|
compression/point_cloud/algorithms/integer_points_kd_tree_decoder.o
|
|
|
|
INTEGER_POINTS_KD_TREE_ENCODER_A := \
|
|
libinteger_points_kd_tree_encoder.a
|
|
INTEGER_POINTS_KD_TREE_ENCODER_OBJS := \
|
|
compression/point_cloud/algorithms/integer_points_kd_tree_encoder.o
|
|
|
|
CORNER_TABLE_OBJSA := $(addprefix $(OBJDIR)/,$(CORNER_TABLE_OBJS:.o=_a.o))
|
|
SHANNON_ENTROPY_OBJSA := $(addprefix $(OBJDIR)/,$(SHANNON_ENTROPY_OBJS:.o=_a.o))
|
|
SYMBOL_CODING_OBJSA := $(addprefix $(OBJDIR)/,$(SYMBOL_CODING_OBJS:.o=_a.o))
|
|
DIRECT_BIT_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(DIRECT_BIT_DECODER_OBJS:.o=_a.o))
|
|
DIRECT_BIT_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(DIRECT_BIT_ENCODER_OBJS:.o=_a.o))
|
|
DECODER_BUFFER_OBJSA := $(addprefix $(OBJDIR)/,$(DECODER_BUFFER_OBJS:.o=_a.o))
|
|
DATA_BUFFER_OBJSA := $(addprefix $(OBJDIR)/,$(DATA_BUFFER_OBJS:.o=_a.o))
|
|
DRACO_TYPES_OBJSA := $(addprefix $(OBJDIR)/,$(DRACO_TYPES_OBJS:.o=_a.o))
|
|
|
|
GEOMETRY_ATTRIBUTE_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(GEOMETRY_ATTRIBUTE_OBJS:.o=_a.o))
|
|
POINT_ATTRIBUTE_OBJSA := $(addprefix $(OBJDIR)/,$(POINT_ATTRIBUTE_OBJS:.o=_a.o))
|
|
POINT_CLOUD_OBJSA := $(addprefix $(OBJDIR)/,$(POINT_CLOUD_OBJS:.o=_a.o))
|
|
MESH_OBJSA := $(addprefix $(OBJDIR)/,$(MESH_OBJS:.o=_a.o))
|
|
OPTIONS_OBJSA := $(addprefix $(OBJDIR)/,$(OPTIONS_OBJS:.o=_a.o))
|
|
ENCODER_OPTIONS_OBJSA := $(addprefix $(OBJDIR)/,$(ENCODER_OPTIONS_OBJS:.o=_a.o))
|
|
POINT_CLOUD_ENCODER_BASE_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(POINT_CLOUD_ENCODER_BASE_OBJS:.o=_a.o))
|
|
POINT_CLOUD_DECODER_BASE_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(POINT_CLOUD_DECODER_BASE_OBJS:.o=_a.o))
|
|
|
|
MESH_ENCODER_BASE_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_ENCODER_BASE_OBJS:.o=_a.o))
|
|
MESH_DECODER_BASE_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_DECODER_BASE_OBJS:.o=_a.o))
|
|
SEQUENTIAL_ATTRIBUTE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(SEQUENTIAL_ATTRIBUTE_ENCODER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_ATTRIBUTE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(SEQUENTIAL_ATTRIBUTE_DECODER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_INTEGER_ATTRIBUTE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(SEQUENTIAL_INTEGER_ATTRIBUTE_ENCODER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_INTEGER_ATTRIBUTE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(SEQUENTIAL_INTEGER_ATTRIBUTE_DECODER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_QUANTIZATION_ATTRIBUTE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, \
|
|
$(SEQUENTIAL_QUANTIZATION_ATTRIBUTE_ENCODER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_QUANTIZATION_ATTRIBUTE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, \
|
|
$(SEQUENTIAL_QUANTIZATION_ATTRIBUTE_DECODER_OBJS:.o=_a.o))
|
|
KD_TREE_ATTRIBUTES_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, $(KD_TREE_ATTRIBUTES_ENCODER_OBJS:.o=_a.o))
|
|
KD_TREE_ATTRIBUTES_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, $(KD_TREE_ATTRIBUTES_DECODER_OBJS:.o=_a.o))
|
|
|
|
SEQUENTIAL_NORMAL_ATTRIBUTE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, \
|
|
$(SEQUENTIAL_NORMAL_ATTRIBUTE_ENCODER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_NORMAL_ATTRIBUTE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, \
|
|
$(SEQUENTIAL_NORMAL_ATTRIBUTE_DECODER_OBJS:.o=_a.o))
|
|
|
|
SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, \
|
|
$(SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_OBJS:.o=_a.o))
|
|
SEQUENTIAL_ATTRIBUTE_DECODERS_CONTROLLER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/, \
|
|
$(SEQUENTIAL_ATTRIBUTE_DECODERS_CONTROLLER_OBJS:.o=_a.o))
|
|
POINT_CLOUD_SEQUENTIAL_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(POINT_CLOUD_SEQUENTIAL_ENCODER_OBJS:.o=_a.o))
|
|
POINT_CLOUD_SEQUENTIAL_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(POINT_CLOUD_SEQUENTIAL_DECODER_OBJS:.o=_a.o))
|
|
POINT_CLOUD_KD_TREE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(POINT_CLOUD_KD_TREE_ENCODER_OBJS:.o=_a.o))
|
|
POINT_CLOUD_KD_TREE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(POINT_CLOUD_KD_TREE_DECODER_OBJS:.o=_a.o))
|
|
MESH_SEQUENTIAL_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_SEQUENTIAL_ENCODER_OBJS:.o=_a.o))
|
|
MESH_SEQUENTIAL_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_SEQUENTIAL_DECODER_OBJS:.o=_a.o))
|
|
MESH_EDGEBREAKER_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_EDGEBREAKER_ENCODER_OBJS:.o=_a.o))
|
|
MESH_EDGEBREAKER_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_EDGEBREAKER_DECODER_OBJS:.o=_a.o))
|
|
ENCODE_OBJSA := $(addprefix $(OBJDIR)/,$(ENCODE_OBJS:.o=_a.o))
|
|
DECODE_OBJSA := $(addprefix $(OBJDIR)/,$(DECODE_OBJS:.o=_a.o))
|
|
|
|
MESH_MISC_OBJSA := $(addprefix $(OBJDIR)/,$(MESH_MISC_OBJS:.o=_a.o))
|
|
MESH_ATTRIBUTE_CORNER_TABLE_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(MESH_ATTRIBUTE_CORNER_TABLE_OBJS:.o=_a.o))
|
|
|
|
QUANTIZATION_UTILS_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(QUANTIZATION_UTILS_OBJS:.o=_a.o))
|
|
CYCLE_TIMER_OBJSA := $(addprefix $(OBJDIR)/,$(CYCLE_TIMER_OBJS:.o=_a.o))
|
|
|
|
ENCODER_BUFFER_OBJSA := $(addprefix $(OBJDIR)/,$(ENCODER_BUFFER_OBJS:.o=_a.o))
|
|
RANS_BIT_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(RANS_BIT_DECODER_OBJS:.o=_a.o))
|
|
RANS_BIT_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(RANS_BIT_ENCODER_OBJS:.o=_a.o))
|
|
ADAPTIVE_RANS_BIT_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(ADAPTIVE_RANS_BIT_DECODER_OBJS:.o=_a.o))
|
|
ADAPTIVE_RANS_BIT_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(ADAPTIVE_RANS_BIT_ENCODER_OBJS:.o=_a.o))
|
|
OBJ_DECODER_OBJSA := $(addprefix $(OBJDIR)/,$(OBJ_DECODER_OBJS:.o=_a.o))
|
|
MESH_IO_OBJSA := $(addprefix $(OBJDIR)/,$(MESH_IO_OBJS:.o=_a.o))
|
|
PLY_ENCODER_OBJSA := $(addprefix $(OBJDIR)/,$(PLY_ENCODER_OBJS:.o=_a.o))
|
|
PLY_DECODER_OBJSA := $(addprefix $(OBJDIR)/,$(PLY_DECODER_OBJS:.o=_a.o))
|
|
|
|
FLOAT_POINTS_TREE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(FLOAT_POINTS_TREE_DECODER_OBJS:.o=_a.o))
|
|
FLOAT_POINTS_TREE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(FLOAT_POINTS_TREE_ENCODER_OBJS:.o=_a.o))
|
|
INTEGER_POINTS_KD_TREE_DECODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(INTEGER_POINTS_KD_TREE_DECODER_OBJS:.o=_a.o))
|
|
INTEGER_POINTS_KD_TREE_ENCODER_OBJSA := \
|
|
$(addprefix $(OBJDIR)/,$(INTEGER_POINTS_KD_TREE_ENCODER_OBJS:.o=_a.o))
|
|
|
|
# Core objs
|
|
DRACO_CORE_OBJSA := $(DRACO_TYPES_OBJSA)
|
|
DRACO_CORE_OBJSA += $(DIRECT_BIT_DECODER_OBJSA)
|
|
DRACO_CORE_OBJSA += $(DIRECT_BIT_ENCODER_OBJSA)
|
|
DRACO_CORE_OBJSA += $(RANS_BIT_DECODER_OBJSA)
|
|
DRACO_CORE_OBJSA += $(RANS_BIT_ENCODER_OBJSA)
|
|
DRACO_CORE_OBJSA += $(ADAPTIVE_RANS_BIT_DECODER_OBJSA)
|
|
DRACO_CORE_OBJSA += $(ADAPTIVE_RANS_BIT_ENCODER_OBJSA)
|
|
|
|
# Shared objs needed for both encoder and decoder
|
|
DRACO_SHARED_OBJSA := $(CORNER_TABLE_OBJSA) $(SYMBOL_CODING_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(SHANNON_ENTROPY_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(DATA_BUFFER_OBJSA) $(DRACO_CORE_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(GEOMETRY_ATTRIBUTE_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(POINT_ATTRIBUTE_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(POINT_CLOUD_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(MESH_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(MESH_MISC_OBJSA) $(MESH_ATTRIBUTE_CORNER_TABLE_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(CYCLE_TIMER_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(RANS_BIT_DECODER_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(RANS_BIT_ENCODER_OBJSA)
|
|
DRACO_SHARED_OBJSA += $(QUANTIZATION_UTILS_OBJSA)
|
|
|
|
# Encoder specific objs
|
|
DRACO_ENCODER_OBJSA := $(OPTIONS_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(ENCODER_OPTIONS_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(POINT_CLOUD_ENCODER_BASE_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(MESH_ENCODER_BASE_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(SEQUENTIAL_ATTRIBUTE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(SEQUENTIAL_INTEGER_ATTRIBUTE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(SEQUENTIAL_QUANTIZATION_ATTRIBUTE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(SEQUENTIAL_NORMAL_ATTRIBUTE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(POINT_CLOUD_SEQUENTIAL_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(POINT_CLOUD_KD_TREE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(KD_TREE_ATTRIBUTES_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(FLOAT_POINTS_TREE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(INTEGER_POINTS_KD_TREE_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(MESH_SEQUENTIAL_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(MESH_EDGEBREAKER_ENCODER_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(ENCODE_OBJSA)
|
|
DRACO_ENCODER_OBJSA += $(ENCODER_BUFFER_OBJSA)
|
|
|
|
# Decoder specific objs
|
|
DRACO_DECODER_OBJSA := $(DECODER_BUFFER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(POINT_CLOUD_DECODER_BASE_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(MESH_DECODER_BASE_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(SEQUENTIAL_ATTRIBUTE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(SEQUENTIAL_INTEGER_ATTRIBUTE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(SEQUENTIAL_QUANTIZATION_ATTRIBUTE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(SEQUENTIAL_NORMAL_ATTRIBUTE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(SEQUENTIAL_ATTRIBUTE_DECODERS_CONTROLLER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(POINT_CLOUD_SEQUENTIAL_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(POINT_CLOUD_KD_TREE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(KD_TREE_ATTRIBUTES_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(FLOAT_POINTS_TREE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(INTEGER_POINTS_KD_TREE_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(MESH_SEQUENTIAL_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(MESH_EDGEBREAKER_DECODER_OBJSA)
|
|
DRACO_DECODER_OBJSA += $(DECODE_OBJSA)
|
|
|
|
# I/O objs
|
|
DRACO_IO_OBJSA := $(OBJ_DECODER_OBJSA) $(MESH_IO_OBJSA)
|
|
DRACO_IO_OBJSA += $(PLY_ENCODER_OBJSA) $(PLY_DECODER_OBJSA)
|
|
|
|
# All objs
|
|
DRACO_OBJSA := $(DRACO_SHARED_OBJSA)
|
|
DRACO_OBJSA += $(DRACO_ENCODER_OBJSA)
|
|
DRACO_OBJSA += $(DRACO_DECODER_OBJSA)
|
|
DRACO_OBJSA += $(DRACO_IO_OBJSA)
|
|
|
|
OBJSA := $(DRACO_OBJSA)
|
|
|
|
LIBS := $(LIBDIR)/libmesh_io.a
|
|
LIBS += $(LIBDIR)/libply_decoder.a
|
|
LIBS += $(LIBDIR)/libply_encoder.a
|
|
LIBS += $(LIBDIR)/libobj_decoder.a
|
|
LIBS += $(LIBDIR)/libgeometry_attribute.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud.a
|
|
LIBS += $(LIBDIR)/libpoint_attribute.a
|
|
LIBS += $(LIBDIR)/libencoder_options.a
|
|
LIBS += $(LIBDIR)/liboptions.a
|
|
LIBS += $(LIBDIR)/libencode.a
|
|
LIBS += $(LIBDIR)/libdecode.a
|
|
LIBS += $(LIBDIR)/libmesh.a
|
|
LIBS += $(LIBDIR)/libmesh_decoder_base.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud_sequential_decoder.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud_kd_tree_decoder.a
|
|
LIBS += $(LIBDIR)/libkd_tree_attributes_decoder.a
|
|
LIBS += $(LIBDIR)/libmesh_sequential_decoder.a
|
|
LIBS += $(LIBDIR)/libmesh_edgebreaker_decoder.a
|
|
LIBS += $(LIBDIR)/libsequential_attribute_decoders_controller.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud_decoder_base.a
|
|
LIBS += $(LIBDIR)/libsequential_integer_attribute_decoder.a
|
|
LIBS += $(LIBDIR)/libsequential_attribute_decoder.a
|
|
LIBS += $(LIBDIR)/libsequential_quantization_attribute_decoder.a
|
|
LIBS += $(LIBDIR)/libsequential_normal_attribute_decoder.a
|
|
LIBS += $(LIBDIR)/libquantization_utils.a
|
|
LIBS += $(LIBDIR)/libmesh_encoder_base.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud_sequential_encoder.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud_kd_tree_encoder.a
|
|
LIBS += $(LIBDIR)/libkd_tree_attributes_encoder.a
|
|
LIBS += $(LIBDIR)/libmesh_sequential_encoder.a
|
|
LIBS += $(LIBDIR)/libmesh_edgebreaker_encoder.a
|
|
LIBS += $(LIBDIR)/libsequential_attribute_encoder.a
|
|
LIBS += $(LIBDIR)/libsequential_attribute_encoders_controller.a
|
|
LIBS += $(LIBDIR)/libpoint_cloud_encoder_base.a
|
|
LIBS += $(LIBDIR)/libsequential_integer_attribute_encoder.a
|
|
LIBS += $(LIBDIR)/libsequential_quantization_attribute_encoder.a
|
|
LIBS += $(LIBDIR)/libsequential_normal_attribute_encoder.a
|
|
LIBS += $(LIBDIR)/libcorner_table.a
|
|
LIBS += $(LIBDIR)/libmesh_attribute_corner_table.a
|
|
LIBS += $(LIBDIR)/libmesh_misc.a
|
|
LIBS += $(LIBDIR)/libshannon_entropy.a
|
|
LIBS += $(LIBDIR)/libsymbol_coding.a
|
|
LIBS += $(LIBDIR)/librans_bit_decoder.a
|
|
LIBS += $(LIBDIR)/librans_bit_encoder.a
|
|
LIBS += $(LIBDIR)/libdata_buffer.a
|
|
LIBS += $(LIBDIR)/libdraco_types.a
|
|
LIBS += $(LIBDIR)/libdecoder_buffer.a
|
|
LIBS += $(LIBDIR)/libencoder_buffer.a
|
|
LIBS += $(LIBDIR)/libcycle_timer.a
|
|
|
|
POINTS_LIBS := $(LIBDIR)/libfloat_points_tree_decoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libfloat_points_tree_encoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libinteger_points_kd_tree_decoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libinteger_points_kd_tree_encoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libdirect_bit_decoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libdirect_bit_encoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libadaptive_rans_bit_decoder.a
|
|
POINTS_LIBS += $(LIBDIR)/libadaptive_rans_bit_encoder.a
|
|
|
|
DEPS := $(DRACO_OBJSA:_a.o=.d)
|
|
CLEAN := $(DEPS) $(OBJSA) $(LIBS) $(POINTS_LIBS)
|
|
CLEAN += glue.cpp glue.js draco_decoder.js WebIDLGrammar.pkl parser.out
|
|
CLEAN += $(OBJDIR)/javascript/emscripten/draco_glue_wrapper.o $(OBJDIR)/javascript/emscripten/draco_glue_wrapper.d
|
|
CLEAN += $(OBJDIR)/javascript/emscripten/webidl_wrapper.o $(OBJDIR)/javascript/emscripten/webidl_wrapper.d
|
|
|
|
all: jslib
|
|
|
|
jslib: build_glue draco_decoder
|
|
|
|
build_glue:
|
|
python $(BINDER) $(IDL) glue
|
|
|
|
draco_decoder: $(OBJDIR)/javascript/emscripten/draco_glue_wrapper.o $(OBJDIR)/javascript/emscripten/webidl_wrapper.o $(DRACO_CORE_OBJSA) $(DRACO_SHARED_OBJSA) $(DRACO_DECODER_OBJSA)
|
|
$(CXX) $(ALL_C_OPTS) $^ --pre-js javascript/emscripten/prepareCallbacks.js --pre-js javascript/emscripten/version.js --post-js glue.js --post-js javascript/emscripten/finalize.js -o $@.js
|
|
|
|
$(LIBDIR)/libcorner_table.a: $(CORNER_TABLE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libshannon_entropy.a: $(SHANNON_ENTROPY_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libsymbol_coding.a: $(SYMBOL_CODING_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libdirect_bit_decoder.a: $(DIRECT_BIT_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libdirect_bit_encoder.a: $(DIRECT_BIT_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libdecoder_buffer.a: $(DECODER_BUFFER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libdata_buffer.a: $(DATA_BUFFER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libdraco_types.a: $(DRACO_TYPES_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libgeometry_attribute.a: $(GEOMETRY_ATTRIBUTE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_attribute.a: $(POINT_ATTRIBUTE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud.a: $(POINT_CLOUD_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libmesh.a: $(MESH_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/liboptions.a: $(OPTIONS_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libencoder_options.a: $(ENCODER_OPTIONS_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud_encoder_base.a: $(POINT_CLOUD_ENCODER_BASE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud_decoder_base.a: $(POINT_CLOUD_DECODER_BASE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libmesh_encoder_base.a: $(MESH_ENCODER_BASE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libmesh_decoder_base.a: $(MESH_DECODER_BASE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_attribute_encoder.a: \
|
|
$(SEQUENTIAL_ATTRIBUTE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_attribute_decoder.a: \
|
|
$(SEQUENTIAL_ATTRIBUTE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_integer_attribute_encoder.a: \
|
|
$(SEQUENTIAL_INTEGER_ATTRIBUTE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_integer_attribute_decoder.a: \
|
|
$(SEQUENTIAL_INTEGER_ATTRIBUTE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_quantization_attribute_encoder.a: \
|
|
$(SEQUENTIAL_QUANTIZATION_ATTRIBUTE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_quantization_attribute_decoder.a: \
|
|
$(SEQUENTIAL_QUANTIZATION_ATTRIBUTE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libkd_tree_attributes_encoder.a: $(KD_TREE_ATTRIBUTES_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libkd_tree_attributes_decoder.a: $(KD_TREE_ATTRIBUTES_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_normal_attribute_encoder.a: \
|
|
$(SEQUENTIAL_NORMAL_ATTRIBUTE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_normal_attribute_decoder.a: \
|
|
$(SEQUENTIAL_NORMAL_ATTRIBUTE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_attribute_encoders_controller.a: \
|
|
$(SEQUENTIAL_ATTRIBUTE_ENCODERS_CONTROLLER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libsequential_attribute_decoders_controller.a: \
|
|
$(SEQUENTIAL_ATTRIBUTE_DECODERS_CONTROLLER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud_sequential_encoder.a: \
|
|
$(POINT_CLOUD_SEQUENTIAL_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud_sequential_decoder.a: \
|
|
$(POINT_CLOUD_SEQUENTIAL_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud_kd_tree_encoder.a: \
|
|
$(POINT_CLOUD_KD_TREE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libpoint_cloud_kd_tree_decoder.a: \
|
|
$(POINT_CLOUD_KD_TREE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libmesh_sequential_encoder.a: $(MESH_SEQUENTIAL_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libmesh_sequential_decoder.a: $(MESH_SEQUENTIAL_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libmesh_edgebreaker_encoder.a: $(MESH_EDGEBREAKER_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libmesh_edgebreaker_decoder.a: $(MESH_EDGEBREAKER_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libencode.a: $(ENCODE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
$(LIBDIR)/libdecode.a: $(DECODE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libmesh_misc.a: $(MESH_MISC_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libmesh_attribute_corner_table.a: $(MESH_ATTRIBUTE_CORNER_TABLE_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libencoder_buffer.a: $(ENCODER_BUFFER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libquantization_utils.a: $(QUANTIZATION_UTILS_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libcycle_timer.a: $(CYCLE_TIMER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/librans_bit_decoder.a: $(RANS_BIT_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/librans_bit_encoder.a: $(RANS_BIT_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libadaptive_rans_bit_decoder.a: $(ADAPTIVE_RANS_BIT_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libadaptive_rans_bit_encoder.a: $(ADAPTIVE_RANS_BIT_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libobj_decoder.a: $(OBJ_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libmesh_io.a: $(MESH_IO_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libply_encoder.a: $(PLY_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libply_decoder.a: $(PLY_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libfloat_points_tree_decoder.a: $(FLOAT_POINTS_TREE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libfloat_points_tree_encoder.a: $(FLOAT_POINTS_TREE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libinteger_points_kd_tree_decoder.a: \
|
|
$(INTEGER_POINTS_KD_TREE_DECODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(LIBDIR)/libinteger_points_kd_tree_encoder.a: \
|
|
$(INTEGER_POINTS_KD_TREE_ENCODER_OBJSA)
|
|
$(AR) rcs $@ $^
|
|
|
|
$(OBJDIR)/%.o: %.cc
|
|
@mkdir -p $(@D)
|
|
$(CXX) $(ALL_CXXFLAGS) $< -o $@
|
|
|
|
$(OBJDIR)/%_a.o: %.cc
|
|
@mkdir -p $(@D)
|
|
$(CXX) $(ALL_CXXFLAGS) $< -o $@
|
|
|
|
clean:
|
|
$(RM) $(CLEAN)
|