Initial git commit -- Transition from CodeGuard repository
[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 = $(OBJ)Array.o $(OBJ)AVLTree.o $(OBJ)BinaryTree.o $(OBJ)BTNode.o \
17         $(OBJ)BufferedFile.o $(OBJ)BuiltInContainer.o $(OBJ)Container.o $(OBJ)CustomAVLTree.o \
18         $(OBJ)dataTypes.o $(OBJ)DualPipe.o $(OBJ)ecere.main.o $(OBJ)File.o $(OBJ)instance.o \
19         $(OBJ)LinkList.o $(OBJ)List.o $(OBJ)Map.o $(OBJ)memory.o $(OBJ)OldList.o $(OBJ)String.o \
20         $(OBJ)System.o $(OBJ)TempFile.o $(OBJ)instance.c.o $(OBJ)DualPipe.c.o $(OBJ)File.c.o \
21         $(OBJ)System.c.o
22
23 SOURCES = bootstrap/Array.c bootstrap/AVLTree.c bootstrap/BinaryTree.c \
24         bootstrap/BTNode.c bootstrap/BufferedFile.c bootstrap/BuiltInContainer.c bootstrap/Container.c \
25         bootstrap/CustomAVLTree.c bootstrap/dataTypes.c bootstrap/DualPipe.c bootstrap/ecere.main.c \
26         bootstrap/File.c bootstrap/instance.c bootstrap/LinkList.c bootstrap/List.c bootstrap/Map.c \
27         bootstrap/memory.c bootstrap/OldList.c bootstrap/String.c bootstrap/System.c bootstrap/TempFile.c \
28         ../../../ecere/src/com/instance.c ../../../ecere/src/sys/DualPipe.c ../../../ecere/src/sys/File.c \
29         ../../../ecere/src/sys/System.c
30
31 # CROSS-PLATFORM MAGIC
32
33 include ../../../include.mk
34
35 # TOOLCHAIN
36
37 CPP := cpp
38 CC := gcc
39 ECP := ecp
40 ECC := ecc
41 ECS := ecs
42 EAR := ear
43 LD := gcc
44 AR := ar
45 STRIP := strip
46 UPX := upx
47
48 # FLAGS
49
50 CFLAGS = -fmessage-length=0 -O2 -ffast-math -m32 $(FPIC) -w \
51          -DBUILDING_ECERE_COM -DECERE_STATIC -DECERE_BOOTSTRAP
52
53 CECFLAGS =
54
55 ECFLAGS = -defaultns ecere -nolinenumbers
56
57 LIBS = $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
58
59 UPXFLAGS = -9 -q
60
61 # HARD CODED PLATFORM-SPECIFIC OPTIONS
62 ifdef LINUX
63 OFLAGS += -Wl,--no-undefined
64 endif
65
66 # TARGETS
67
68 all: objdir $(TARGET)
69
70 objdir:
71         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
72
73 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
74         $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
75
76 $(OBJ)Array.o: bootstrap/Array.c
77         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/Array.c -o $(OBJ)Array.o
78
79 $(OBJ)AVLTree.o: bootstrap/AVLTree.c
80         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/AVLTree.c -o $(OBJ)AVLTree.o
81
82 $(OBJ)BinaryTree.o: bootstrap/BinaryTree.c
83         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BinaryTree.c -o $(OBJ)BinaryTree.o
84
85 $(OBJ)BTNode.o: bootstrap/BTNode.c
86         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BTNode.c -o $(OBJ)BTNode.o
87
88 $(OBJ)BufferedFile.o: bootstrap/BufferedFile.c
89         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BufferedFile.c -o $(OBJ)BufferedFile.o
90
91 $(OBJ)BuiltInContainer.o: bootstrap/BuiltInContainer.c
92         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/BuiltInContainer.c -o $(OBJ)BuiltInContainer.o
93
94 $(OBJ)Container.o: bootstrap/Container.c
95         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/Container.c -o $(OBJ)Container.o
96
97 $(OBJ)CustomAVLTree.o: bootstrap/CustomAVLTree.c
98         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/CustomAVLTree.c -o $(OBJ)CustomAVLTree.o
99
100 $(OBJ)dataTypes.o: bootstrap/dataTypes.c
101         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/dataTypes.c -o $(OBJ)dataTypes.o
102
103 $(OBJ)DualPipe.o: bootstrap/DualPipe.c
104         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/DualPipe.c -o $(OBJ)DualPipe.o
105
106 $(OBJ)ecere.main.o: bootstrap/ecere.main.c
107         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecere.main.c -o $(OBJ)ecere.main.o
108
109 $(OBJ)File.o: bootstrap/File.c
110         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/File.c -o $(OBJ)File.o
111
112 $(OBJ)instance.o: bootstrap/instance.c
113         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/instance.c -o $(OBJ)instance.o
114
115 $(OBJ)LinkList.o: bootstrap/LinkList.c
116         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/LinkList.c -o $(OBJ)LinkList.o
117
118 $(OBJ)List.o: bootstrap/List.c
119         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/List.c -o $(OBJ)List.o
120
121 $(OBJ)Map.o: bootstrap/Map.c
122         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/Map.c -o $(OBJ)Map.o
123
124 $(OBJ)memory.o: bootstrap/memory.c
125         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/memory.c -o $(OBJ)memory.o
126
127 $(OBJ)OldList.o: bootstrap/OldList.c
128         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/OldList.c -o $(OBJ)OldList.o
129
130 $(OBJ)String.o: bootstrap/String.c
131         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/String.c -o $(OBJ)String.o
132
133 $(OBJ)System.o: bootstrap/System.c
134         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/System.c -o $(OBJ)System.o
135
136 $(OBJ)TempFile.o: bootstrap/TempFile.c
137         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/TempFile.c -o $(OBJ)TempFile.o
138
139 $(OBJ)instance.c.o: ../../../ecere/src/com/instance.c
140         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/com/instance.c -o $(OBJ)instance.c.o
141
142 $(OBJ)DualPipe.c.o: ../../../ecere/src/sys/DualPipe.c
143         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/sys/DualPipe.c -o $(OBJ)DualPipe.c.o
144
145 $(OBJ)File.c.o: ../../../ecere/src/sys/File.c
146         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/sys/File.c -o $(OBJ)File.c.o
147
148 $(OBJ)System.c.o: ../../../ecere/src/sys/System.c
149         $(CC) $(CFLAGS) $(FVISIBILITY) -c ../../../ecere/src/sys/System.c -o $(OBJ)System.c.o
150
151 clean: objdir
152         $(call rmq,$(TARGET))
153         $(call rmq,$(OBJECTS))
154
155 realclean:
156         $(call rmrq,$(OBJ))
157
158 distclean:
159         $(call rmrq,obj/)