Mercurial > hg > dmlib
comparison Makefile.gen @ 2418:8abdd95139d6
Build system cleanups: reordering, more comments.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 Jan 2020 03:01:00 +0200 |
parents | 9b4958ef4af2 |
children | 510837da62aa |
comparison
equal
deleted
inserted
replaced
2417:9b4958ef4af2 | 2418:8abdd95139d6 |
---|---|
25 DM_CFLAGS += -I$(DMLIB_SRC) $(SDL_CFLAGS) | 25 DM_CFLAGS += -I$(DMLIB_SRC) $(SDL_CFLAGS) |
26 DM_LDFLAGS += $(LDFLAGS) | 26 DM_LDFLAGS += $(LDFLAGS) |
27 | 27 |
28 | 28 |
29 ### | 29 ### |
30 ### Paths and directories | 30 ### Tools, paths and directories |
31 ### | 31 ### |
32 MKDIR ?= mkdir | 32 MKDIR ?= mkdir |
33 MKDIR_P ?= $(MKDIR) -p | 33 MKDIR_P ?= $(MKDIR) -p |
34 BINPATH ?= ./ | 34 BINPATH ?= ./ |
35 DMLIB ?= ./ | 35 DMLIB ?= ./ |
38 | 38 |
39 TOOL_BINPATH ?= $(TOOL_SRC) | 39 TOOL_BINPATH ?= $(TOOL_SRC) |
40 TESTS_BINPATH ?= $(TESTS_SRC) | 40 TESTS_BINPATH ?= $(TESTS_SRC) |
41 | 41 |
42 DMLIB_SRC = $(DMLIB)src/ | 42 DMLIB_SRC = $(DMLIB)src/ |
43 | |
44 | 43 |
45 | 44 |
46 ### | 45 ### |
47 ### Extra debug messages etc? | 46 ### Extra debug messages etc? |
48 ### | 47 ### |
292 endif | 291 endif |
293 endif | 292 endif |
294 | 293 |
295 | 294 |
296 ### | 295 ### |
297 ### Functions and compilation/link commands | |
298 ### | |
299 ifneq ($(V),1) | |
300 DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) | |
301 else | |
302 DO_CMD=/bin/echo -E $(3) && $(3) | |
303 endif | |
304 DO_MKDIR=if test ! -d "$(1)"; then mkdir -p "$(1)"; fi | |
305 | |
306 | |
307 COMPILE_C_OBJ = \ | |
308 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
309 $(call DO_CMD,CC,$<,$(CC) $(CFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) | |
310 | |
311 LINK_C_BIN = \ | |
312 @$(call DO_MKDIR,$(BINPATH)) ; \ | |
313 $(call DO_CMD,LINK,$@,$(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) | |
314 | |
315 COMPILE_CXX_OBJ = \ | |
316 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
317 $(call DO_CMD,CXX,$<,$(CXX) $(CXXFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) | |
318 | |
319 LINK_CXX_BIN = \ | |
320 @$(call DO_MKDIR,$(BINPATH)) ; \ | |
321 $(call DO_CMD,LINK,$@,$(CXX) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) | |
322 | |
323 LINK_STATIC_LIB = \ | |
324 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
325 $(call DO_CMD,AR,$@ $(filter %.o,$+),$(AR) cru $@ $(filter %.o,$+)) ; \ | |
326 $(call DO_CMD,RANLIB,$@,$(RANLIB) $@) | |
327 | |
328 | |
329 ### | |
330 ### Main targets and objects | 296 ### Main targets and objects |
331 ### | 297 ### |
332 DMLIB_A = $(OBJPATH)dmlib.a | 298 DMLIB_A = $(OBJPATH)dmlib.a |
333 DMLIB_OBJS += \ | 299 DMLIB_OBJS += \ |
334 dmfile.o dmlib.o dmcurves.o dmstring.o \ | 300 dmfile.o dmlib.o dmcurves.o dmstring.o \ |
347 | 313 |
348 NOBUILD_TARGETS += | 314 NOBUILD_TARGETS += |
349 NOINST_TARGETS += | 315 NOINST_TARGETS += |
350 | 316 |
351 | 317 |
318 ### | |
319 ### Functions and compilation/link commands | |
320 ### | |
321 ifneq ($(V),1) | |
322 DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) | |
323 else | |
324 DO_CMD=/bin/echo -E $(3) && $(3) | |
325 endif | |
326 DO_MKDIR=if test ! -d "$(1)"; then mkdir -p "$(1)"; fi | |
327 | |
328 | |
329 COMPILE_C_OBJ = \ | |
330 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
331 $(call DO_CMD,CC,$<,$(CC) $(CFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) | |
332 | |
333 LINK_C_BIN = \ | |
334 @$(call DO_MKDIR,$(BINPATH)) ; \ | |
335 $(call DO_CMD,LINK,$@,$(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) | |
336 | |
337 COMPILE_CXX_OBJ = \ | |
338 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
339 $(call DO_CMD,CXX,$<,$(CXX) $(CXXFLAGS) $(DM_CFLAGS) -c -o $@ $< $(1)) | |
340 | |
341 LINK_CXX_BIN = \ | |
342 @$(call DO_MKDIR,$(BINPATH)) ; \ | |
343 $(call DO_CMD,LINK,$@,$(CXX) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) $(1)) | |
344 | |
345 LINK_STATIC_LIB = \ | |
346 @$(call DO_MKDIR,$(OBJPATH)) ; \ | |
347 $(call DO_CMD,AR,$@ $(filter %.o,$+),$(AR) cru $@ $(filter %.o,$+)) ; \ | |
348 $(call DO_CMD,RANLIB,$@,$(RANLIB) $@) | |
349 | |
350 | |
351 ### | |
352 ### Generic target rules | |
353 ### | |
352 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) | 354 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) |
353 | 355 |
354 | 356 |
355 ### | |
356 ### Generic object rules | |
357 ### | |
358 $(OBJPATH)%.o: $(DMLIB)tests/%.c $(DMLIB)tests/%.h | 357 $(OBJPATH)%.o: $(DMLIB)tests/%.c $(DMLIB)tests/%.h |
359 $(COMPILE_C_OBJ) | 358 $(COMPILE_C_OBJ) |
360 | 359 |
361 $(OBJPATH)%.o: $(DMLIB)tests/%.c | 360 $(OBJPATH)%.o: $(DMLIB)tests/%.c |
362 $(COMPILE_C_OBJ) | 361 $(COMPILE_C_OBJ) |