Mercurial > hg > th-libs
comparison Makefile.inc @ 474:b3b8f90bbbe6
Improve build system.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 02 Jul 2018 00:01:50 +0300 |
parents | 8d31605c2f0f |
children | 1013ddd2759b |
comparison
equal
deleted
inserted
replaced
473:ea8c37f03e2c | 474:b3b8f90bbbe6 |
---|---|
12 | 12 |
13 INSTALL ?= install | 13 INSTALL ?= install |
14 MKDIR ?= mkdir | 14 MKDIR ?= mkdir |
15 MKDIR_P ?= $(MKDIR) -p | 15 MKDIR_P ?= $(MKDIR) -p |
16 | 16 |
17 NOBUILD_TARGETS += $(OBJPATH) $(BINPATH) | 17 |
18 THLIBS_A = $(OBJPATH)thlibs.a | |
19 THLIBS_DEP += $(THLIBS)th_types.h $(THLIBS)th_util.h | |
20 | |
21 | |
22 NOBUILD_TARGETS += | |
18 NOINST_TARGETS += $(THLIBS_A) | 23 NOINST_TARGETS += $(THLIBS_A) |
19 | 24 |
20 THLIBS_DEP += $(THLIBS)th_types.h $(THLIBS)th_util.h | 25 |
26 COMPILE_OBJ = @if test ! -d $(OBJPATH); then mkdir -p $(OBJPATH); fi && echo " CC $<" && $(CC) $(CFLAGS) -c -o $@ $< | |
27 LINK_BIN = @if test ! -d $(BINPATH); then mkdir -p $(BINPATH); fi && echo " LINK $@" && $(CC) -o $@ $(filter %.o %.a,$+) $(LDFLAGS) | |
28 | |
21 | 29 |
22 ## | 30 ## |
23 ## Target rules | 31 ## Target rules |
24 ## | 32 ## |
25 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) | 33 all: $(NOBUILD_TARGETS) $(NOINST_TARGETS) $(TARGETS) |
26 | 34 |
27 | 35 |
28 $(THLIBS)th_string.c: $(addprefix $(THLIBS), th_printf1.c th_strmatch.c th_string.h) | 36 $(THLIBS)th_string.c: $(addprefix $(THLIBS), th_printf1.c th_strmatch.c th_string.h) |
29 @touch $@ | 37 @touch $@ |
30 | 38 |
31 $(OBJPATH) $(BINPATH): | 39 |
32 @echo " MKDIR $@" | 40 $(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS_DEP) |
33 @$(MKDIR_P) $@ | 41 $(COMPILE_OBJ) |
34 | 42 |
35 $(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS)%.h $(THLIBS_DEP) | 43 $(OBJPATH)%.o: $(THLIBS)%.c $(THLIBS)%.h $(THLIBS_DEP) |
36 @echo " CC $@" | 44 $(COMPILE_OBJ) -I$(THLIBS) |
37 @$(CC) $(CFLAGS) -c -o $@ $< | |
38 | 45 |
39 $(OBJPATH)%.o: %.c %.h $(THLIBS_DEP) | 46 $(OBJPATH)%.o: %.c %.h $(THLIBS_DEP) |
40 @echo " CC $@" | 47 $(COMPILE_OBJ) -I$(THLIBS) |
41 @$(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS) | |
42 | 48 |
43 $(OBJPATH)%.o: %.c $(THLIBS_DEP) | 49 $(OBJPATH)%.o: %.c $(THLIBS_DEP) |
44 @echo " CC $@" | 50 $(COMPILE_OBJ) -I$(THLIBS) |
45 @$(CC) $(CFLAGS) -c -o $@ $< -I$(THLIBS) | |
46 | 51 |
47 | 52 |
48 $(THLIBS_A): $(addprefix $(OBJPATH),$(THLIBS_OBJ)) | 53 $(THLIBS_A): $(addprefix $(OBJPATH),$(THLIBS_OBJ)) |
49 @echo " AR $@ $(THLIBS_OBJ)" | 54 @echo " AR $@ $(THLIBS_OBJ)" |
50 @$(AR) cru $@ $(addprefix $(OBJPATH),$(THLIBS_OBJ)) | 55 @$(AR) cru $@ $(addprefix $(OBJPATH),$(THLIBS_OBJ)) |
52 @$(RANLIB) $@ | 57 @$(RANLIB) $@ |
53 | 58 |
54 ## | 59 ## |
55 ## Generate endian check and config.h | 60 ## Generate endian check and config.h |
56 ## | 61 ## |
57 $(ENDIANCHK_BIN): $(THLIBS)endianchk.c | $(BINPATH) $(OBJPATH) | 62 $(OBJPATH)endianchk.o: $(THLIBS)endianchk.c |
58 @echo " CC $@" | 63 $(COMPILE_OBJ) |
59 @$(CC) $(CFLAGS) -o $@ $< | 64 |
65 $(ENDIANCHK_BIN): $(OBJPATH)endianchk.o | |
66 $(LINK_BIN) | |
60 | 67 |
61 config.h: $(ENDIANCHK_BIN) | 68 config.h: $(ENDIANCHK_BIN) |
62 $(ENDIANCHK_BIN) > $@ | 69 $(ENDIANCHK_BIN) > $@ |
63 | 70 |
64 | 71 |