ide/Makefiles: Updated tarball makefiles to use FORCE_32BIT; Disabled forcing -m32...
[sdk] / compiler / bootstrap / ecp / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CONTENT
4
5 MODULE := ecp
6 CONFIG := bootstrap
7 COMPILER := default
8 TARGET_TYPE = executable
9
10 OBJ = obj/$(CONFIG).$(PLATFORM)/
11
12 RES = 
13
14 CONSOLE = 
15
16 TARGET = obj/$(CONFIG).$(PLATFORM)/ecp$(E)
17
18 OBJECTS = \
19         $(OBJ)ecp.o \
20         $(OBJ)$(MODULE).main$(O)
21
22 SOURCES = \
23         bootstrap/ecp.c \
24         bootstrap/ecp.main.c
25
26 ifndef DEBIAN_PACKAGE
27 CFLAGS =
28 endif
29 OFLAGS =
30
31 # CROSS-PLATFORM MAGIC
32
33 include ../../../crossplatform.mk
34 include ../../../include.mk
35
36 # FLAGS
37
38 CFLAGS += -fmessage-length=0 -O2 -ffast-math $(FORCE_32_BIT) $(FPIC) -w \
39          -DECERE_STATIC
40
41 CECFLAGS =
42
43 ECFLAGS = -nolinenumbers
44
45 OFLAGS += $(FORCE_32_BIT) \
46          -L../ecere/obj/bootstrap.$(PLATFORM) \
47          -L../libec/obj/bootstrap.$(PLATFORM)
48
49 LIBS = -lecereBootstrap -lecBootstrap $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
50
51 UPXFLAGS = -9 -q
52
53 # HARD CODED PLATFORM-SPECIFIC OPTIONS
54 ifdef LINUX_TARGET
55 OFLAGS += -Wl,--no-undefined
56 endif
57
58 # PLATFORM-SPECIFIC OPTIONS
59
60 ifdef WINDOWS_TARGET
61
62 else
63 ifdef LINUX_TARGET
64
65 LIBS += -lm -ldl
66
67 else
68 ifdef OSX_TARGET
69
70 LIBS += -lm -ldl
71
72 endif
73 endif
74 endif
75 # TARGETS
76
77 all: objdir $(TARGET)
78
79 objdir:
80         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
81
82 $(TARGET): $(SOURCES) $(RESOURCES) | objdir $(SYMBOLS) $(OBJECTS)
83         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
84 ifndef NOSTRIP
85         $(STRIP) $(STRIPOPT) $(TARGET)
86 endif
87
88 $(OBJ)ecp.o: bootstrap/ecp.c
89         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.c -o $(OBJ)ecp.o
90
91 $(OBJ)ecp.main.o: bootstrap/ecp.main.c
92         $(CC) $(CFLAGS) $(FVISIBILITY) -c bootstrap/ecp.main.c -o $(OBJ)ecp.main.o
93
94 clean: objdir
95         $(call rmq,$(TARGET))
96         $(call rmq,$(OBJECTS))
97
98 realclean:
99         $(call rmrq,$(OBJ))
100
101 distclean:
102         $(call rmrq,obj/)