bc9aae444f06564fe9e48434c01758fef183ab1b
[reactos.git] / reactos / lib / cmlib / cmlib.mak
1 CMLIB_BASE = $(LIB_BASE_)cmlib
2 CMLIB_BASE_ = $(CMLIB_BASE)$(SEP)
3 CMLIB_INT = $(INTERMEDIATE_)$(CMLIB_BASE)_host
4 CMLIB_INT_ = $(INTERMEDIATE_)$(CMLIB_BASE)_host$(SEP)
5 CMLIB_OUT = $(OUTPUT_)$(CMLIB_BASE)_host
6 CMLIB_OUT_ = $(OUTPUT_)$(CMLIB_BASE)_host$(SEP)
7
8 $(CMLIB_INT): | $(LIB_INT)
9 $(ECHO_MKDIR)
10 ${mkdir} $@
11
12 ifneq ($(INTERMEDIATE),$(OUTPUT))
13 $(CMLIB_OUT): | $(OUTPUT_)$(LIB_BASE)
14 $(ECHO_MKDIR)
15 ${mkdir} $@
16 endif
17
18 CMLIB_HOST_TARGET = \
19 $(CMLIB_OUT)$(SEP)cmlib.a
20
21 CMLIB_HOST_SOURCES = $(addprefix $(CMLIB_BASE_), \
22 cminit.c \
23 hivebin.c \
24 hivecell.c \
25 hiveinit.c \
26 hivesum.c \
27 hivewrt.c \
28 )
29
30 CMLIB_HOST_OBJECTS = \
31 $(subst $(CMLIB_BASE), $(CMLIB_INT), $(CMLIB_HOST_SOURCES:.c=.o))
32
33 CMLIB_HOST_CFLAGS = -O3 -Wall -Wwrite-strings -Wpointer-arith \
34 -D_X86_ -D__i386__ -D_REACTOS_ -D_NTOSKRNL_\
35 -DCMLIB_HOST -D_M_IX86 -I$(CMLIB_BASE) -Iinclude/reactos -Iinclude/psdk -Iinclude/ddk -Iinclude/crt \
36 -D__NO_CTYPE_INLINES
37
38 $(CMLIB_HOST_TARGET): $(CMLIB_HOST_OBJECTS) | $(CMLIB_OUT)
39 $(ECHO_AR)
40 $(host_ar) -r $@ $(CMLIB_HOST_OBJECTS)
41
42 $(CMLIB_INT_)cminit.o: $(CMLIB_BASE_)cminit.c | $(CMLIB_INT)
43 $(ECHO_CC)
44 ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@
45
46 $(CMLIB_INT_)hivebin.o: $(CMLIB_BASE_)hivebin.c | $(CMLIB_INT)
47 $(ECHO_CC)
48 ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@
49
50 $(CMLIB_INT_)hivecell.o: $(CMLIB_BASE_)hivecell.c | $(CMLIB_INT)
51 $(ECHO_CC)
52 ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@
53
54 $(CMLIB_INT_)hiveinit.o: $(CMLIB_BASE_)hiveinit.c | $(CMLIB_INT)
55 $(ECHO_CC)
56 ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@
57
58 $(CMLIB_INT_)hivesum.o: $(CMLIB_BASE_)hivesum.c | $(CMLIB_INT)
59 $(ECHO_CC)
60 ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@
61
62 $(CMLIB_INT_)hivewrt.o: $(CMLIB_BASE_)hivewrt.c | $(CMLIB_INT)
63 $(ECHO_CC)
64 ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@
65
66 .PHONY: cmlib_host
67 cmlib_host: $(CMLIB_HOST_TARGET)
68
69 .PHONY: cmlib_host_clean
70 cmlib_host_clean:
71 -@$(rm) $(CMLIB_HOST_TARGET) $(CMLIB_HOST_OBJECTS) 2>$(NUL)
72 clean: cmlib_host_clean