1
- CC = gcc
2
- RM = rm
1
+ CC := gcc
2
+ RM := rm
3
+ CD := cd
4
+ MAKE := make
3
5
4
- CFLAGS = -Wall -Wextra -fpic -O2 -fno-strict-aliasing -Wno-unused-parameter
6
+ CFLAGS + = -Wall -Wextra -fpic -O2 -fno-strict-aliasing -Wno-unused-parameter
5
7
6
8
SYS := $(shell gcc -dumpmachine)
7
- ifneq (, $(findstring linux, $(SYS ) ) )
8
-
9
- SUFFIX = so
10
- LDFLAGS = -shared
11
- LIBS = -ldl -lffi
12
- CFLAGS += -I/usr/local/lib/libffi-3.1/include/
13
- ifndef GLOBALS_HOME
14
- $(error Couldn't find GLOBALS_HOME)
15
- endif
9
+ LIBFFI_PATH := ./libs/libffi/$(SYS )
10
+ INCLUDES := -I$(LIBFFI_PATH ) /include
11
+ LIBS := -L$(LIBFFI_PATH ) /.libs -lffi
16
12
13
+ ifneq (, $(findstring linux, $(SYS ) ) )
14
+ SUFFIX := so
15
+ LDFLAGS := -shared
16
+ LIBS += -ldl
17
17
else ifneq (, $(findstring mingw, $(SYS)))
18
- ifneq (, $(findstring x86_64, $(SYS)))
19
- PLATFORM = x86-64
20
- else
21
- PLATFORM = x86-32
22
- endif
23
18
SUFFIX = dll
24
19
LDFLAGS = -mdll
25
- LIBS = -L./libs/$(PLATFORM)/ -lffi
26
20
CFLAGS += -I./libs/$(PLATFORM)/include/
27
- ifndef GLOBALS_HOME
28
- GLOBALS_HOME = C:/InterSystems/Cache
29
- endif
30
-
31
21
else
32
22
$(error Unsupported build platform)
33
23
endif
34
24
35
- CFLAGS += -I${GLOBALS_HOME}/dev/cpp/include
36
25
37
- TESTSDIR = tests
26
+ ifndef GLOBALS_HOME
27
+ $(error Couldn't find GLOBALS_HOME)
28
+ endif
29
+
30
+
31
+ INCLUDES += -I${GLOBALS_HOME}/dev/cpp/include
32
+ CFLAGS += $(INCLUDES )
33
+ TESTSDIR := tests
38
34
35
+ .PHONY : all clean libffi libffi_clean
39
36
40
- all : libcna.$(SUFFIX ) $(TESTSDIR ) /libtest.$(SUFFIX )
37
+ all : libcna.$(SUFFIX ) $(TESTSDIR ) /libtest.$(SUFFIX )
38
+
39
+ libffi :
40
+ cd libs/libffi && ./configure --build=$(SYS ) --enable-shared=no && $(MAKE )
41
41
42
42
cna.o : cna.c storage.h
43
43
@@ -51,5 +51,8 @@ $(TESTSDIR)/teslib.o: $(TESTSDIR)/testlib.c
51
51
$(TESTSDIR ) /libtest.$(SUFFIX ) : $(TESTSDIR ) /testlib.o
52
52
$(CC ) $(LDFLAGS ) -o $@ $^
53
53
54
+ libffi-clean :
55
+ $(CD ) libs/libffi && $(MAKE ) clean
56
+
54
57
clean :
55
58
$(RM ) * .$(SUFFIX ) * .o $(TESTSDIR ) /* .$(SUFFIX ) $(TESTSDIR ) /* .o
0 commit comments