Skip to content

Commit 3e3d74a

Browse files
committed
adding game project build system
Signed-off-by: Steven Noonan <[email protected]>
1 parent 735c861 commit 3e3d74a

File tree

5 files changed

+2667
-0
lines changed

5 files changed

+2667
-0
lines changed

Makefile

+259
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,259 @@
1+
# -*- Makefile -*- for abseil
2+
3+
.SECONDEXPANSION:
4+
.SUFFIXES:
5+
6+
ifneq ($(findstring $(MAKEFLAGS),s),s)
7+
ifndef V
8+
QUIET = @
9+
QUIET_CXX = @echo ' ' CXX $<;
10+
QUIET_AR = @echo ' ' AR $@;
11+
QUIET_RANLIB = @echo ' ' RANLIB $@;
12+
QUIET_INSTALL = @echo ' ' INSTALL $<;
13+
export V
14+
endif
15+
endif
16+
17+
LIB = libabseil.a
18+
AR ?= ar
19+
ARFLAGS ?= rc
20+
CXX ?= g++
21+
RANLIB ?= ranlib
22+
RM ?= rm -f
23+
24+
BUILD_DIR := build
25+
BUILD_ID ?= default-build-id
26+
OBJ_DIR := $(BUILD_DIR)/$(BUILD_ID)
27+
28+
ifeq (,$(BUILD_ID))
29+
$(error BUILD_ID cannot be an empty string)
30+
endif
31+
32+
prefix ?= /usr/local
33+
libdir := $(prefix)/lib
34+
includedir := $(prefix)/include
35+
36+
HEADERS := \
37+
$(shell find absl -type f -name '*.h') \
38+
$(shell find absl -type f -name '*.inc') \
39+
40+
SOURCES := \
41+
absl/base/internal/cycleclock.cc \
42+
absl/base/internal/low_level_alloc.cc \
43+
absl/base/internal/poison.cc \
44+
absl/base/internal/raw_logging.cc \
45+
absl/base/internal/scoped_set_env.cc \
46+
absl/base/internal/spinlock.cc \
47+
absl/base/internal/spinlock_wait.cc \
48+
absl/base/internal/strerror.cc \
49+
absl/base/internal/sysinfo.cc \
50+
absl/base/internal/thread_identity.cc \
51+
absl/base/internal/throw_delegate.cc \
52+
absl/base/internal/tracing.cc \
53+
absl/base/internal/unscaledcycleclock.cc \
54+
absl/base/log_severity.cc \
55+
absl/container/internal/hashtablez_sampler.cc \
56+
absl/container/internal/hashtablez_sampler_force_weak_definition.cc \
57+
absl/container/internal/raw_hash_set.cc \
58+
absl/crc/crc32c.cc \
59+
absl/crc/internal/cpu_detect.cc \
60+
absl/crc/internal/crc.cc \
61+
absl/crc/internal/crc_cord_state.cc \
62+
absl/crc/internal/crc_memcpy_fallback.cc \
63+
absl/crc/internal/crc_memcpy_x86_arm_combined.cc \
64+
absl/crc/internal/crc_non_temporal_memcpy.cc \
65+
absl/crc/internal/crc_x86_arm_combined.cc \
66+
absl/debugging/failure_signal_handler.cc \
67+
absl/debugging/internal/address_is_readable.cc \
68+
absl/debugging/internal/decode_rust_punycode.cc \
69+
absl/debugging/internal/demangle.cc \
70+
absl/debugging/internal/demangle_rust.cc \
71+
absl/debugging/internal/elf_mem_image.cc \
72+
absl/debugging/internal/examine_stack.cc \
73+
absl/debugging/internal/stack_consumption.cc \
74+
absl/debugging/internal/utf8_for_code_point.cc \
75+
absl/debugging/internal/vdso_support.cc \
76+
absl/debugging/leak_check.cc \
77+
absl/debugging/stacktrace.cc \
78+
absl/debugging/symbolize.cc \
79+
absl/flags/commandlineflag.cc \
80+
absl/flags/internal/commandlineflag.cc \
81+
absl/flags/internal/flag.cc \
82+
absl/flags/internal/private_handle_accessor.cc \
83+
absl/flags/internal/program_name.cc \
84+
absl/flags/internal/usage.cc \
85+
absl/flags/marshalling.cc \
86+
absl/flags/parse.cc \
87+
absl/flags/reflection.cc \
88+
absl/flags/usage.cc \
89+
absl/flags/usage_config.cc \
90+
absl/hash/internal/city.cc \
91+
absl/hash/internal/hash.cc \
92+
absl/hash/internal/low_level_hash.cc \
93+
absl/log/die_if_null.cc \
94+
absl/log/flags.cc \
95+
absl/log/globals.cc \
96+
absl/log/initialize.cc \
97+
absl/log/internal/check_op.cc \
98+
absl/log/internal/conditions.cc \
99+
absl/log/internal/fnmatch.cc \
100+
absl/log/internal/globals.cc \
101+
absl/log/internal/log_format.cc \
102+
absl/log/internal/log_message.cc \
103+
absl/log/internal/log_sink_set.cc \
104+
absl/log/internal/nullguard.cc \
105+
absl/log/internal/proto.cc \
106+
absl/log/internal/structured_proto.cc \
107+
absl/log/internal/vlog_config.cc \
108+
absl/log/log_sink.cc \
109+
absl/numeric/int128.cc \
110+
absl/profiling/internal/exponential_biased.cc \
111+
absl/profiling/internal/periodic_sampler.cc \
112+
absl/random/discrete_distribution.cc \
113+
absl/random/gaussian_distribution.cc \
114+
absl/random/internal/chi_square.cc \
115+
absl/random/internal/pool_urbg.cc \
116+
absl/random/internal/randen.cc \
117+
absl/random/internal/randen_detect.cc \
118+
absl/random/internal/randen_hwaes.cc \
119+
absl/random/internal/randen_round_keys.cc \
120+
absl/random/internal/randen_slow.cc \
121+
absl/random/internal/seed_material.cc \
122+
absl/random/seed_gen_exception.cc \
123+
absl/random/seed_sequences.cc \
124+
absl/status/internal/status_internal.cc \
125+
absl/status/status.cc \
126+
absl/status/status_payload_printer.cc \
127+
absl/status/statusor.cc \
128+
absl/strings/ascii.cc \
129+
absl/strings/charconv.cc \
130+
absl/strings/cord.cc \
131+
absl/strings/cord_analysis.cc \
132+
absl/strings/escaping.cc \
133+
absl/strings/internal/charconv_bigint.cc \
134+
absl/strings/internal/charconv_parse.cc \
135+
absl/strings/internal/cord_internal.cc \
136+
absl/strings/internal/cord_rep_btree.cc \
137+
absl/strings/internal/cord_rep_btree_navigator.cc \
138+
absl/strings/internal/cord_rep_btree_reader.cc \
139+
absl/strings/internal/cord_rep_consume.cc \
140+
absl/strings/internal/cord_rep_crc.cc \
141+
absl/strings/internal/cordz_functions.cc \
142+
absl/strings/internal/cordz_handle.cc \
143+
absl/strings/internal/cordz_info.cc \
144+
absl/strings/internal/cordz_sample_token.cc \
145+
absl/strings/internal/damerau_levenshtein_distance.cc \
146+
absl/strings/internal/escaping.cc \
147+
absl/strings/internal/memutil.cc \
148+
absl/strings/internal/ostringstream.cc \
149+
absl/strings/internal/pow10_helper.cc \
150+
absl/strings/internal/str_format/arg.cc \
151+
absl/strings/internal/str_format/bind.cc \
152+
absl/strings/internal/str_format/extension.cc \
153+
absl/strings/internal/str_format/float_conversion.cc \
154+
absl/strings/internal/str_format/output.cc \
155+
absl/strings/internal/str_format/parser.cc \
156+
absl/strings/internal/stringify_sink.cc \
157+
absl/strings/internal/utf8.cc \
158+
absl/strings/match.cc \
159+
absl/strings/numbers.cc \
160+
absl/strings/str_cat.cc \
161+
absl/strings/str_replace.cc \
162+
absl/strings/str_split.cc \
163+
absl/strings/string_view.cc \
164+
absl/strings/substitute.cc \
165+
absl/synchronization/barrier.cc \
166+
absl/synchronization/blocking_counter.cc \
167+
absl/synchronization/internal/create_thread_identity.cc \
168+
absl/synchronization/internal/futex_waiter.cc \
169+
absl/synchronization/internal/graphcycles.cc \
170+
absl/synchronization/internal/kernel_timeout.cc \
171+
absl/synchronization/internal/per_thread_sem.cc \
172+
absl/synchronization/internal/pthread_waiter.cc \
173+
absl/synchronization/internal/sem_waiter.cc \
174+
absl/synchronization/internal/stdcpp_waiter.cc \
175+
absl/synchronization/internal/waiter_base.cc \
176+
absl/synchronization/internal/win32_waiter.cc \
177+
absl/synchronization/mutex.cc \
178+
absl/synchronization/notification.cc \
179+
absl/time/civil_time.cc \
180+
absl/time/clock.cc \
181+
absl/time/duration.cc \
182+
absl/time/format.cc \
183+
absl/time/internal/cctz/src/civil_time_detail.cc \
184+
absl/time/internal/cctz/src/time_zone_fixed.cc \
185+
absl/time/internal/cctz/src/time_zone_format.cc \
186+
absl/time/internal/cctz/src/time_zone_if.cc \
187+
absl/time/internal/cctz/src/time_zone_impl.cc \
188+
absl/time/internal/cctz/src/time_zone_info.cc \
189+
absl/time/internal/cctz/src/time_zone_libc.cc \
190+
absl/time/internal/cctz/src/time_zone_lookup.cc \
191+
absl/time/internal/cctz/src/time_zone_posix.cc \
192+
absl/time/internal/cctz/src/zone_info_source.cc \
193+
absl/time/time.cc \
194+
195+
SOURCES := $(wildcard $(SOURCES))
196+
197+
HEADERS_INST := $(filter %.h,$(patsubst %,$(includedir)/%,$(HEADERS)))
198+
HEADERS_INST += $(filter %.inc,$(patsubst %,$(includedir)/%,$(HEADERS)))
199+
OBJECTS := $(patsubst %.cc,$(OBJ_DIR)/%.o,$(SOURCES))
200+
201+
CFLAGS ?= -O2
202+
CFLAGS += -I. -std=c++17
203+
204+
.PHONY: install
205+
206+
all: $(OBJ_DIR)/$(LIB)
207+
208+
$(includedir)/%.h: %.h | $$(@D)/.
209+
$(QUIET_INSTALL)cp $< $@
210+
@chmod 0644 $@
211+
212+
$(includedir)/%.inc: %.inc | $$(@D)/.
213+
$(QUIET_INSTALL)cp $< $@
214+
@chmod 0644 $@
215+
216+
$(libdir)/%.a: $(OBJ_DIR)/%.a
217+
-@if [ ! -d $(libdir) ]; then mkdir -p $(libdir); fi
218+
$(QUIET_INSTALL)cp $< $@
219+
@chmod 0644 $@
220+
221+
install: $(HEADERS_INST) $(libdir)/$(LIB)
222+
223+
clean:
224+
$(RM) -r $(OBJ_DIR)
225+
226+
distclean:
227+
$(RM) -r $(BUILD_DIR)
228+
229+
$(OBJ_DIR)/$(LIB): $(OBJECTS)
230+
$(QUIET_AR)$(AR) $(ARFLAGS) $@ $^
231+
$(QUIET_RANLIB)$(RANLIB) $@
232+
233+
$(OBJ_DIR)/%.o: %.cc $(OBJ_DIR)/.cflags | $$(@D)/.
234+
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) -o $@ -c $<
235+
236+
.PRECIOUS: $(OBJ_DIR)/. $(OBJ_DIR)%/. $(includedir)/. $(includedir)%/.
237+
238+
$(OBJ_DIR)/.:
239+
$(QUIET)mkdir -p $@
240+
241+
$(OBJ_DIR)%/.:
242+
$(QUIET)mkdir -p $@
243+
244+
$(includedir)/.:
245+
$(QUIET)mkdir -p $@
246+
247+
$(includedir)%/.:
248+
$(QUIET)mkdir -p $@
249+
250+
TRACK_CFLAGS = $(subst ','\'',$(CXX) $(CFLAGS) $(CXXFLAGS))
251+
252+
$(OBJ_DIR)/.cflags: .force-cflags | $$(@D)/.
253+
@FLAGS='$(TRACK_CFLAGS)'; \
254+
if test x"$$FLAGS" != x"`cat $(OBJ_DIR)/.cflags 2>/dev/null`" ; then \
255+
echo " * rebuilding abseil: new build flags or prefix"; \
256+
echo "$$FLAGS" > $(OBJ_DIR)/.cflags; \
257+
fi
258+
259+
.PHONY: .force-cflags

0 commit comments

Comments
 (0)