build system / makefiles / ide: added support for ccache and distcc
[sdk] / deps / zlib / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CONTENT
4
5 MODULE := libz
6 CONFIG := release
7 COMPILER := default
8 TARGET_TYPE = staticlib
9
10 OBJ = obj/$(CONFIG).$(PLATFORM)/
11
12 RES = 
13
14 TARGET = obj/$(CONFIG).$(PLATFORM)/$(LP)z$(A)
15
16 OBJECTS = $(OBJ)adler32.o $(OBJ)compress.o $(OBJ)crc32.o $(OBJ)deflate.o $(OBJ)gzio.o \
17         $(OBJ)infback.o $(OBJ)inffast.o $(OBJ)inflate.o $(OBJ)inftrees.o $(OBJ)trees.o $(OBJ)uncompr.o \
18         $(OBJ)zutil.o
19
20 COBJECTS =
21
22 SYMBOLS =
23
24 IMPORTS =
25
26 SOURCES = adler32.c compress.c crc32.c deflate.c gzio.c infback.c inffast.c inflate.c \
27         inftrees.c trees.c uncompr.c zutil.c
28
29 RESOURCES =
30
31 # CROSS-PLATFORM MAGIC
32
33 include ../../include.mk
34
35 # FLAGS
36
37 CFLAGS = -fmessage-length=0 -O2 -ffast-math -m32 $(FPIC) -w
38
39 LIBS = $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
40
41 UPXFLAGS = -9 -q
42
43 # HARD CODED PLATFORM-SPECIFIC OPTIONS
44 ifdef LINUX
45 OFLAGS += -Wl,--no-undefined
46 endif
47
48 # TARGETS
49
50 all: objdir $(TARGET)
51
52 objdir:
53         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
54
55 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
56         $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
57
58 # SYMBOL RULES
59
60 # C OBJECT RULES
61
62 # OBJECT RULES
63
64 $(OBJ)adler32.o: adler32.c
65         $(CC) $(CFLAGS) -c adler32.c -o $(OBJ)adler32.o
66
67 $(OBJ)compress.o: compress.c
68         $(CC) $(CFLAGS) -c compress.c -o $(OBJ)compress.o
69
70 $(OBJ)crc32.o: crc32.c
71         $(CC) $(CFLAGS) -c crc32.c -o $(OBJ)crc32.o
72
73 $(OBJ)deflate.o: deflate.c
74         $(CC) $(CFLAGS) -c deflate.c -o $(OBJ)deflate.o
75
76 $(OBJ)gzio.o: gzio.c
77         $(CC) $(CFLAGS) -c gzio.c -o $(OBJ)gzio.o
78
79 $(OBJ)infback.o: infback.c
80         $(CC) $(CFLAGS) -c infback.c -o $(OBJ)infback.o
81
82 $(OBJ)inffast.o: inffast.c
83         $(CC) $(CFLAGS) -c inffast.c -o $(OBJ)inffast.o
84
85 $(OBJ)inflate.o: inflate.c
86         $(CC) $(CFLAGS) -c inflate.c -o $(OBJ)inflate.o
87
88 $(OBJ)inftrees.o: inftrees.c
89         $(CC) $(CFLAGS) -c inftrees.c -o $(OBJ)inftrees.o
90
91 $(OBJ)trees.o: trees.c
92         $(CC) $(CFLAGS) -c trees.c -o $(OBJ)trees.o
93
94 $(OBJ)uncompr.o: uncompr.c
95         $(CC) $(CFLAGS) -c uncompr.c -o $(OBJ)uncompr.o
96
97 $(OBJ)zutil.o: zutil.c
98         $(CC) $(CFLAGS) -c zutil.c -o $(OBJ)zutil.o
99
100 clean: objdir
101         $(call rmq,$(TARGET))
102         $(call rmq,$(OBJECTS))
103         $(call rmq,$(COBJECTS))
104
105 realclean:
106         $(call rmrq,$(OBJ))
107
108 distclean:
109         $(call rmrq,obj/)