6404b8ee3eb21c04278c415a6cd8bb987151940f
[sdk] / compiler / bootstrap / ecere / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CONTENT
4
5 MODULE := ecereBootstrap
6 CONFIG := bootstrap
7 COMPILER := default
8 TARGET_TYPE = staticlib
9
10 OBJ = obj/$(CONFIG).$(PLATFORM)/
11
12 RES = res/
13
14 TARGET = obj/$(CONFIG).$(PLATFORM)/$(LP)ecereBootstrap$(A)
15
16 OBJECTS = \
17         $(OBJ)Array.o \
18         $(OBJ)AVLTree.o \
19         $(OBJ)BinaryTree.o \
20         $(OBJ)BTNode.o \
21         $(OBJ)BufferedFile.o \
22         $(OBJ)BuiltInContainer.o \
23         $(OBJ)Container.o \
24         $(OBJ)CustomAVLTree.o \
25         $(OBJ)dataTypes.o \
26         $(OBJ)DualPipe.o \
27         $(OBJ)ecere.main.o \
28         $(OBJ)File.o \
29         $(OBJ)instance.o \
30         $(OBJ)LinkList.o \
31         $(OBJ)List.o \
32         $(OBJ)Map.o \
33         $(OBJ)memory.o \
34         $(OBJ)OldList.o \
35         $(OBJ)String.o \
36         $(OBJ)System.o \
37         $(OBJ)TempFile.o \
38         $(OBJ)instance.c.o \
39         $(OBJ)DualPipe.c.o \
40         $(OBJ)File.c.o \
41         $(OBJ)System.c.o \
42         $(OBJ)i18n.o
43
44 SOURCES = \
45         bootstrap/Array.c \
46         bootstrap/AVLTree.c \
47         bootstrap/BinaryTree.c \
48         bootstrap/i18n.c \
49         bootstrap/BTNode.c \
50         bootstrap/BufferedFile.c \
51         bootstrap/BuiltInContainer.c \
52         bootstrap/Container.c \
53         bootstrap/CustomAVLTree.c \
54         bootstrap/dataTypes.c \
55         bootstrap/DualPipe.c \
56         bootstrap/ecere.main.c \
57         bootstrap/File.c \
58         bootstrap/instance.c \
59         bootstrap/LinkList.c \
60         bootstrap/List.c \
61         bootstrap/Map.c \
62         bootstrap/memory.c \
63         bootstrap/OldList.c \
64         bootstrap/String.c \
65         bootstrap/System.c \
66         bootstrap/TempFile.c \
67         ../../../ecere/src/com/instance.c \
68         ../../../ecere/src/sys/DualPipe.c \
69         ../../../ecere/src/sys/File.c \
70         ../../../ecere/src/sys/System.c
71
72 ifndef DEBIAN_PACKAGE
73 CFLAGS =
74 endif
75 OFLAGS =
76
77 # CROSS-PLATFORM MAGIC
78
79 include ../../../crossplatform.mk
80 include ../../../include.mk
81
82 # FLAGS
83
84 CFLAGS += -fmessage-length=0 -O2 -ffast-math $(FORCE_32_BIT) $(FPIC) -w \
85          -DBUILDING_ECERE_COM -DECERE_STATIC -DECERE_BOOTSTRAP
86
87 CECFLAGS =
88
89 ECFLAGS = -defaultns ecere -nolinenumbers
90
91 LIBS = $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
92
93 UPXFLAGS = -9 -q
94
95 # HARD CODED PLATFORM-SPECIFIC OPTIONS
96 ifdef LINUX_TARGET
97 OFLAGS += -Wl,--no-undefined
98 endif
99
100 # TARGETS
101
102 all: objdir $(TARGET)
103
104 objdir:
105         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
106
107 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
108         $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
109
110 $(OBJ)Array.o: bootstrap/Array.c
111         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/Array.c -o $(OBJ)Array.o
112
113 $(OBJ)AVLTree.o: bootstrap/AVLTree.c
114         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/AVLTree.c -o $(OBJ)AVLTree.o
115
116 $(OBJ)BinaryTree.o: bootstrap/BinaryTree.c
117         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BinaryTree.c -o $(OBJ)BinaryTree.o
118
119 $(OBJ)BTNode.o: bootstrap/BTNode.c
120         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BTNode.c -o $(OBJ)BTNode.o
121
122 $(OBJ)BufferedFile.o: bootstrap/BufferedFile.c
123         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BufferedFile.c -o $(OBJ)BufferedFile.o
124
125 $(OBJ)BuiltInContainer.o: bootstrap/BuiltInContainer.c
126         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BuiltInContainer.c -o $(OBJ)BuiltInContainer.o
127
128 $(OBJ)Container.o: bootstrap/Container.c
129         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/Container.c -o $(OBJ)Container.o
130
131 $(OBJ)CustomAVLTree.o: bootstrap/CustomAVLTree.c
132         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/CustomAVLTree.c -o $(OBJ)CustomAVLTree.o
133
134 $(OBJ)dataTypes.o: bootstrap/dataTypes.c
135         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/dataTypes.c -o $(OBJ)dataTypes.o
136
137 $(OBJ)DualPipe.o: bootstrap/DualPipe.c
138         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/DualPipe.c -o $(OBJ)DualPipe.o
139
140 $(OBJ)ecere.main.o: bootstrap/ecere.main.c
141         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecere.main.c -o $(OBJ)ecere.main.o
142
143 $(OBJ)File.o: bootstrap/File.c
144         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/File.c -o $(OBJ)File.o
145
146 $(OBJ)instance.o: bootstrap/instance.c
147         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/instance.c -o $(OBJ)instance.o
148
149 $(OBJ)i18n.o: bootstrap/i18n.c
150         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/i18n.c -o $(OBJ)i18n.o
151
152 $(OBJ)LinkList.o: bootstrap/LinkList.c
153         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/LinkList.c -o $(OBJ)LinkList.o
154
155 $(OBJ)List.o: bootstrap/List.c
156         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/List.c -o $(OBJ)List.o
157
158 $(OBJ)Map.o: bootstrap/Map.c
159         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/Map.c -o $(OBJ)Map.o
160
161 $(OBJ)memory.o: bootstrap/memory.c
162         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/memory.c -o $(OBJ)memory.o
163
164 $(OBJ)OldList.o: bootstrap/OldList.c
165         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/OldList.c -o $(OBJ)OldList.o
166
167 $(OBJ)String.o: bootstrap/String.c
168         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/String.c -o $(OBJ)String.o
169
170 $(OBJ)System.o: bootstrap/System.c
171         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/System.c -o $(OBJ)System.o
172
173 $(OBJ)TempFile.o: bootstrap/TempFile.c
174         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/TempFile.c -o $(OBJ)TempFile.o
175
176 $(OBJ)instance.c.o: ../../../ecere/src/com/instance.c
177         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/com/instance.c -o $(OBJ)instance.c.o
178
179 $(OBJ)DualPipe.c.o: ../../../ecere/src/sys/DualPipe.c
180         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/sys/DualPipe.c -o $(OBJ)DualPipe.c.o
181
182 $(OBJ)File.c.o: ../../../ecere/src/sys/File.c
183         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/sys/File.c -o $(OBJ)File.c.o
184
185 $(OBJ)System.c.o: ../../../ecere/src/sys/System.c
186         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/sys/System.c -o $(OBJ)System.c.o
187
188 clean: objdir
189         $(call rmq,$(TARGET))
190         $(call rmq,$(OBJECTS))
191
192 realclean:
193         $(call rmrq,$(OBJ))
194
195 distclean:
196         $(call rmrq,obj/)