1 #
2 # MacOS libffi Makefile
3 #
4
5 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE)
6 TARGET_DIRS = $(BUILD_DIR)
7
8 SRCBASE_DIR = ../../../3rd_party/libffi
9 OBJBASE_DIR = $(BUILD_DIR)/obj/libffi
10
11 DIRLIST = src src/x86
12
13 TARGET_NAME = lib$(BASE_NAME).a
14 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
15
16 CFLAGS += -c \
17 -Werror=implicit-function-declaration \
18 -fPIC \
19 -DGSTREAMER_LITE
20
21 ifeq ($(BUILD_TYPE), Release)
22 CFLAGS += -Os
23 else
24 CFLAGS += -O0 -g -Wall
25 endif
26
27 INCLUDES = -I$(SRCBASE_DIR)/include -I$(SRCBASE_DIR)/include/x64
28
29 C_SOURCES = src/closures.c \
30 src/java_raw_api.c \
31 src/prep_cif.c \
32 src/raw_api.c \
33 src/types.c \
34 src/x86/ffi64.c \
35
36 ASM_SOURCES = src/x86/darwin64.S
37
38 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
39 OBJECTS = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(C_SOURCES))\
40 $(patsubst %.S,$(OBJBASE_DIR)/%.o,$(ASM_SOURCES))
41
42 .PHONY: default list
43
44 default: $(TARGET)
45
46 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c
47 $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
48
49 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.S
50 $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
51
52 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS)
53
54 $(OBJ_DIRS):
55 mkdir -p $(OBJ_DIRS)
56
|
1 #
2 # MacOS libffi Makefile
3 #
4
5 BUILD_DIR = $(OUTPUT_DIR)/$(BUILD_TYPE)
6 TARGET_DIRS = $(BUILD_DIR)
7
8 SRCBASE_DIR = ../../../3rd_party/libffi
9 OBJBASE_DIR = $(BUILD_DIR)/obj/libffi
10
11 DIRLIST = src src/x86
12
13 TARGET_NAME = lib$(BASE_NAME).a
14 TARGET = $(BUILD_DIR)/$(TARGET_NAME)
15
16 CFLAGS += -c \
17 -Werror=implicit-function-declaration \
18 -fPIC \
19 -DGSTREAMER_LITE \
20 -DX86_64
21
22 ifeq ($(BUILD_TYPE), Release)
23 CFLAGS += -Os
24 else
25 CFLAGS += -O0 -g -Wall
26 endif
27
28 INCLUDES = -I$(SRCBASE_DIR)/include -I$(SRCBASE_DIR)/include/mac/x64
29
30 C_SOURCES = src/closures.c \
31 src/java_raw_api.c \
32 src/prep_cif.c \
33 src/raw_api.c \
34 src/types.c \
35 src/x86/ffi64.c \
36 src/x86/ffiw64.c
37
38 ASM_SOURCES = src/x86/unix64.S \
39 src/x86/win64.S
40
41 OBJ_DIRS = $(addprefix $(OBJBASE_DIR)/,$(DIRLIST))
42 OBJECTS = $(patsubst %.c,$(OBJBASE_DIR)/%.o,$(C_SOURCES))\
43 $(patsubst %.S,$(OBJBASE_DIR)/%.o,$(ASM_SOURCES))
44
45 .PHONY: default list
46
47 default: $(TARGET)
48
49 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.c
50 $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
51
52 $(OBJBASE_DIR)/%.o: $(SRCBASE_DIR)/%.S
53 $(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@
54
55 $(OBJECTS): | $(OBJ_DIRS) $(TARGET_DIRS)
56
57 $(OBJ_DIRS):
58 mkdir -p $(OBJ_DIRS)
59
|