9fe70d63dde5118fe6078e6fb4a5864a4a37dede
[sdk] / compiler / bootstrap / ecc / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CORE VARIABLES
4
5 MODULE := ecc
6 CONFIG := bootstrap
7 ifndef COMPILER
8 COMPILER := default
9 endif
10
11 TARGET_TYPE = executable
12
13 # FLAGS
14
15 ECFLAGS =
16 ifndef DEBIAN_PACKAGE
17 CFLAGS =
18 LDFLAGS =
19 endif
20 CECFLAGS =
21 OFLAGS =
22 LIBS =
23
24 ifdef DEBUG
25 NOSTRIP := y
26 endif
27
28 CONSOLE = -mconsole
29
30 # INCLUDES
31
32 _CF_DIR = ../../../
33
34 include $(_CF_DIR)crossplatform.mk
35 include $(_CF_DIR)default.cf
36
37 # POST-INCLUDES VARIABLES
38
39 OBJ = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/
40
41 RES = 
42
43 TARGET = obj/$(CONFIG).$(PLATFORM)$(COMPILER_SUFFIX)$(DEBUG_SUFFIX)/ecc$(E)
44
45 OBJECTS = \
46         $(OBJ)ecc.o \
47         $(OBJ)$(MODULE).main$(O)
48
49 SOURCES = \
50         bootstrap/ecc.c \
51         bootstrap/ecc.main.c
52
53 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
54
55 ifndef STATIC_LIBRARY_TARGET
56 LIBS += \
57         $(call _L,ecereBootstrap) \
58         $(call _L,ecBootstrap)
59 endif
60
61 CFLAGS += \
62          $(if $(DEBIAN_PACKAGE),$(CPPFLAGS),) $(if $(DEBUG), -D_DEBUG,) \
63          $(if $(DEBUG), -g, -O2 -ffast-math) $(FORCE_32_BIT) $(FPIC) -w \
64                          -DECERE_STATIC
65
66
67 ECFLAGS += \
68          -nolinenumbers
69
70
71 # PLATFORM-SPECIFIC OPTIONS
72
73 ifdef LINUX_TARGET
74
75 ifndef STATIC_LIBRARY_TARGET
76 LIBS += \
77         $(call _L,m) \
78         $(call _L,dl)
79 endif
80
81 endif
82
83
84
85 CECFLAGS += -cpp $(_CPP)
86
87 ifndef STATIC_LIBRARY_TARGET
88 OFLAGS += $(FORCE_32_BIT) \
89          -L../ecere/obj/bootstrap.$(PLATFORM) \
90          -L../libec/obj/bootstrap.$(PLATFORM)
91 endif
92
93 # TARGETS
94
95 all: objdir $(TARGET)
96
97 objdir:
98         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
99
100 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
101         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
102 ifndef NOSTRIP
103         $(STRIP) $(STRIPOPT) $(TARGET)
104 endif
105
106 # OBJECT RULES
107
108 $(OBJ)ecc.o: bootstrap/ecc.c
109         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecc.c -o $(OBJ)ecc.o
110
111 $(OBJ)ecc.main.o: bootstrap/ecc.main.c
112         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecc.main.c -o $(OBJ)ecc.main.o
113
114 clean: objdir
115         $(call rmq,$(TARGET))
116         $(call rmq,$(OBJECTS))
117
118 realclean: clean
119         $(call rmrq,$(OBJ))
120
121 distclean:
122         $(call rmrq,obj/)