@@ -25,21 +25,55 @@ SRC_FILES := $(wildcard $(SRC_PATH)/*.cpp $(SRC_PATH)/*.cc)
25
25
TEST_FILES := $(wildcard $(TEST_PATH ) /* .cpp $(TEST_PATH ) /* .cc)
26
26
27
27
# Compiler flags
28
- # gRPC and protobuf packages don't play well with pkg-config for include so we do a little workaround
29
-
30
- PKGS = protobuf grpc grpc++
31
- PKG_CONFIG_CFLAGS_I := $(shell PKG_CONFIG_SYSROOT_DIR="" PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --cflags-only-I $(PKGS ) )
32
- PKG_CONFIG_CFLAGS_OTHER := $(shell PKG_CONFIG_SYSROOT_DIR="" PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --cflags-only-other $(PKGS ) )
33
- PKG_CONFIG_LDFLAGS := $(shell PKG_CONFIG_SYSROOT_DIR="" PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --libs-only-L $(PKGS ) )
34
- PKG_CONFIG_LDLIBS := $(shell PKG_CONFIG_SYSROOT_DIR="" PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --libs-only-l $(PKGS ) )
28
+ # grpc and protobuf (and deps) don't play nice with pkg-config so we tediously list (in order) everything needed
29
+ PROTO_PKG_CONFIG_CFLAGS_I := -I$(TARGETSYSROOT ) /usr/include
30
+ PROTO_PKG_CONFIG_CFLAGS_OTHER := -DCARES_STATICLIB -pthread -DNOMINMAX
31
+ # Derived from grpc cross-compile example
32
+ PROTO_PKG_CONFIG_LDLIBS := -lgrpc++ -lprotobuf -lgrpc -lupb_json_lib -lupb_textformat_lib \
33
+ -lutf8_range -lupb_message_lib -lupb_base_lib -lupb_mem_lib -lre2 \
34
+ -lz -lcares -lgpr -labsl_random_distributions -labsl_random_seed_sequences \
35
+ -labsl_random_internal_pool_urbg -labsl_random_internal_randen \
36
+ -labsl_random_internal_randen_hwaes -labsl_random_internal_randen_hwaes_impl \
37
+ -labsl_random_internal_randen_slow -labsl_random_internal_platform \
38
+ -labsl_random_internal_seed_material -labsl_random_seed_gen_exception \
39
+ -lrt -laddress_sorting -labsl_log_internal_check_op -labsl_leak_check \
40
+ -labsl_die_if_null -labsl_log_internal_conditions -labsl_log_internal_message \
41
+ -labsl_log_internal_nullguard -labsl_examine_stack -labsl_log_internal_format \
42
+ -labsl_log_internal_proto -labsl_log_internal_log_sink_set -labsl_log_sink \
43
+ -labsl_log_entry -labsl_log_initialize -labsl_log_internal_globals \
44
+ -labsl_log_globals -labsl_vlog_config_internal -labsl_log_internal_fnmatch \
45
+ -labsl_statusor -labsl_status -labsl_strerror -lutf8_validity \
46
+ -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection \
47
+ -labsl_flags_config -labsl_cord -labsl_cordz_info -labsl_cord_internal \
48
+ -labsl_cordz_functions -labsl_cordz_handle -labsl_crc_cord_state -labsl_crc32c \
49
+ -labsl_str_format_internal -labsl_crc_internal -labsl_crc_cpu_detect \
50
+ -labsl_raw_hash_set -labsl_hash -labsl_bad_variant_access -labsl_city \
51
+ -labsl_low_level_hash -labsl_hashtablez_sampler -labsl_exponential_biased \
52
+ -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag \
53
+ -labsl_bad_optional_access -labsl_flags_commandlineflag_internal \
54
+ -labsl_flags_program_name -labsl_synchronization -labsl_graphcycles_internal \
55
+ -labsl_kernel_timeout_internal -labsl_time -labsl_civil_time -labsl_time_zone \
56
+ -labsl_stacktrace -labsl_symbolize -labsl_strings -labsl_strings_internal \
57
+ -labsl_string_view -labsl_int128 -labsl_throw_delegate -labsl_malloc_internal \
58
+ -labsl_debugging_internal -labsl_demangle_internal -labsl_base \
59
+ -labsl_raw_logging_internal -labsl_log_severity -labsl_spinlock_wait
60
+ PROTO_PKG_CONFIG_LDLIBS += $(TARGETSYSROOT ) /usr/lib/libabsl_flags_parse.a \
61
+ $(TARGETSYSROOT ) /usr/lib/libssl.a \
62
+ $(TARGETSYSROOT ) /usr/lib/libcrypto.a \
63
+ -ldl -lm -lsystemd $(TARGETSYSROOT ) /usr/lib/libsystemd.so \
64
+ $(TARGETSYSROOT ) /usr/lib/libabsl_flags_usage.a \
65
+ $(TARGETSYSROOT ) /usr/lib/libabsl_flags_usage_internal.a
66
+
67
+ PROTO_CXXFLAGS := $(CXXFLAGS ) -std=c++17 $(PROTO_PKG_CONFIG_CFLAGS_OTHER )
35
68
36
69
PKGS = gio-2.0 glib-2.0 vdostream axparameter
37
- PKG_CONFIG_CFLAGS_I += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --cflags-only-I $(PKGS ) )
38
- PKG_CONFIG_CFLAGS_OTHER += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --cflags-only-other $(PKGS ) )
39
- PKG_CONFIG_LDFLAGS += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --libs-only-L $(PKGS ) )
40
- PKG_CONFIG_LDLIBS += $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --libs-only-l $(PKGS ) )
41
- CXXFLAGS += -DLAROD_API_VERSION_2 -std=c++17 -I$(OUT_PATH ) $(PKG_CONFIG_CFLAGS_OTHER ) $(PKG_CONFIG_CFLAGS_I )
42
- LDLIBS += -llarod -lrt $(PKG_CONFIG_LDLIBS )
70
+ PKG_CONFIG_CFLAGS_I := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --cflags-only-I $(PKGS ) )
71
+ PKG_CONFIG_CFLAGS_OTHER := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --cflags-only-other $(PKGS ) )
72
+ PKG_CONFIG_LDFLAGS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --libs-only-L $(PKGS ) )
73
+ PKG_CONFIG_LDLIBS := $(shell PKG_CONFIG_PATH=$(PKG_CONFIG_PATH ) pkg-config --libs-only-l $(PKGS ) )
74
+
75
+ CXXFLAGS += -DLAROD_API_VERSION_2 -std=c++17 -I$(OUT_PATH ) $(PKG_CONFIG_CFLAGS_OTHER ) $(PKG_CONFIG_CFLAGS_I ) $(PROTO_PKG_CONFIG_CFLAGS_OTHER ) $(PROTO_PKG_CONFIG_CFLAGS_I )
76
+ LDLIBS += -llarod $(PKG_CONFIG_LDLIBS ) $(PROTO_PKG_CONFIG_LDLIBS )
43
77
LDFLAGS += $(PKG_CONFIG_LDFLAGS )
44
78
45
79
.PHONY : clean install install/strip
@@ -70,18 +104,18 @@ $(OUT_PATH) $(INSTALL_PATH):
70
104
71
105
# Protobuf object files
72
106
% .pb.o : % .pb.cc
73
- $(CXX ) -c $(CXXFLAGS ) -I$(OUT_PATH ) $^ -o $@
107
+ $(CXX ) -c $(PROTO_CXXFLAGS ) -I$(OUT_PATH ) $^ -o $@
74
108
75
109
# Generate protobuf gRPC source files
76
110
$(OUT_PATH ) /% .grpc.pb.cc $(OUT_PATH ) /% grpc.pb.h : $(API_PATH ) /% .proto | $(OUT_PATH )
77
- protoc $(PKG_CONFIG_CFLAGS_I ) \
111
+ protoc $(PROTO_PKG_CONFIG_CFLAGS_I ) \
78
112
-I$(API_PATH ) \
79
113
--grpc_out=$(OUT_PATH ) \
80
114
--plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH ) $<
81
115
82
116
# Generate protobuf source files
83
117
$(OUT_PATH ) /% .pb.cc $(OUT_PATH ) /% .pb.h : $(API_PATH ) /% .proto | $(OUT_PATH )
84
- protoc $(PKG_CONFIG_CFLAGS_I ) -I$(API_PATH ) --cpp_out=$(OUT_PATH ) $<
118
+ protoc $(PROTO_PKG_CONFIG_CFLAGS_I ) -I$(API_PATH ) --cpp_out=$(OUT_PATH ) $<
85
119
86
120
$(BINARY ) : $(OUT_PATH ) /$(BINARY )
87
121
cp $(OUT_PATH ) /$(BINARY ) $(CURDIR )
0 commit comments