602e55b54f56457677e518d0392119aaf1906b59
[sdk] / deps / libffi-3.0.11 / Makefile
1 .PHONY: all objdir clean realclean distclean
2
3 # CORE VARIABLES
4
5 MODULE := ffi
6 CONFIG := release
7 ifndef COMPILER
8 COMPILER := default
9 endif
10
11 TARGET_TYPE = staticlib
12
13 # FLAGS
14
15 ECFLAGS =
16 ifndef DEBIAN_PACKAGE
17 CFLAGS =
18 endif
19 CECFLAGS =
20 OFLAGS =
21 LDFLAGS =
22 LIBS =
23
24 ifdef DEBUG
25 NOSTRIP := y
26 endif
27
28 CONSOLE = -mwindows
29
30 # INCLUDES
31
32 _CF_DIR = ../../
33
34 include $(_CF_DIR)crossplatform.mk
35 include $(_CF_DIR)include.mk
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)/$(LP)ffi$(A)
44
45 _OBJECTS = \
46         $(OBJ)ffi.o \
47         $(OBJ)win32.o \
48         $(OBJ)prep_cif.o \
49         $(OBJ)raw_api.o \
50         $(OBJ)types.o \
51         $(OBJ)closures.o
52
53 OBJECTS = $(_OBJECTS)
54
55 SOURCES = $(ECSOURCES) \
56         src/x86/ffi.c \
57         src/x86/win32.S \
58         src/prep_cif.c \
59         src/raw_api.c \
60         src/types.c \
61         src/closures.c
62
63 RESOURCES =
64
65 LIBS += $(SHAREDLIB) $(EXECUTABLE) $(LINKOPT)
66
67 CFLAGS += \
68          $(if $(DEBIAN_PACKAGE),$(CPPFLAGS),) $(if $(DEBUG), -D_DEBUG,) \
69          $(if $(DEBUG), -g, -O2 -ffast-math) $(FPIC) -Wall \
70                          -Ii686-pc-mingw32 \
71                          -Ii686-pc-mingw32/include \
72                          -Iinclude
73
74
75
76
77
78 CECFLAGS += -cpp $(CPP)
79
80 ifndef STATIC_LIBRARY_TARGET
81 OFLAGS +=
82 OFLAGS += $(LDFLAGS)
83 endif
84
85 # TARGETS
86
87 all: objdir $(TARGET)
88
89 objdir:
90         $(if $(wildcard $(OBJ)),,$(call mkdirq,$(OBJ)))
91
92 $(SYMBOLS): | objdir
93 $(OBJECTS): | objdir
94 $(TARGET): $(SOURCES) $(RESOURCES) $(SYMBOLS) $(OBJECTS) | objdir
95 ifndef STATIC_LIBRARY_TARGET
96         $(CC) $(OFLAGS) $(OBJECTS) $(LIBS) -o $(TARGET) $(INSTALLNAME)
97 ifndef NOSTRIP
98         $(STRIP) $(STRIPOPT) $(TARGET)
99 endif
100 else
101         $(AR) rcs $(TARGET) $(OBJECTS) $(LIBS)
102 endif
103
104 # SYMBOL RULES
105
106 # C OBJECT RULES
107
108 # OBJECT RULES
109
110 $(OBJ)ffi.o: src/x86/ffi.c
111         $(CC) $(CFLAGS) -c src/x86/ffi.c -o $(OBJ)ffi.o
112
113 $(OBJ)win32.o: src/x86/win32.S
114         $(CC) $(CFLAGS) -c src/x86/win32.S -o $(OBJ)win32.o
115
116 $(OBJ)prep_cif.o: src/prep_cif.c
117         $(CC) $(CFLAGS) -c src/prep_cif.c -o $(OBJ)prep_cif.o
118
119 $(OBJ)raw_api.o: src/raw_api.c
120         $(CC) $(CFLAGS) -c src/raw_api.c -o $(OBJ)raw_api.o
121
122 $(OBJ)types.o: src/types.c
123         $(CC) $(CFLAGS) -c src/types.c -o $(OBJ)types.o
124
125 $(OBJ)closures.o: src/closures.c
126         $(CC) $(CFLAGS) -c src/closures.c -o $(OBJ)closures.o
127
128 clean: objdir
129         $(call rmq,$(TARGET))
130         $(call rmq,$(_OBJECTS))
131
132 realclean: clean
133         $(call rmrq,$(OBJ))
134
135 distclean:
136         $(call rmrq,obj/)