Skip to content

Commit d0d0a8b

Browse files
committed
Rewrite makefile
1 parent 0ed2dd1 commit d0d0a8b

File tree

2 files changed

+30
-26
lines changed

2 files changed

+30
-26
lines changed

Makefile

+28-25
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,43 @@
1-
CC = gcc
2-
RM = rm
1+
CC := gcc
2+
RM := rm
3+
CD := cd
4+
MAKE := make
35

4-
CFLAGS = -Wall -Wextra -fpic -O2 -fno-strict-aliasing -Wno-unused-parameter
6+
CFLAGS += -Wall -Wextra -fpic -O2 -fno-strict-aliasing -Wno-unused-parameter
57

68
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
1612

13+
ifneq (, $(findstring linux, $(SYS)))
14+
SUFFIX := so
15+
LDFLAGS := -shared
16+
LIBS += -ldl
1717
else ifneq (, $(findstring mingw, $(SYS)))
18-
ifneq (, $(findstring x86_64, $(SYS)))
19-
PLATFORM = x86-64
20-
else
21-
PLATFORM = x86-32
22-
endif
2318
SUFFIX = dll
2419
LDFLAGS = -mdll
25-
LIBS = -L./libs/$(PLATFORM)/ -lffi
2620
CFLAGS += -I./libs/$(PLATFORM)/include/
27-
ifndef GLOBALS_HOME
28-
GLOBALS_HOME = C:/InterSystems/Cache
29-
endif
30-
3121
else
3222
$(error Unsupported build platform)
3323
endif
3424

35-
CFLAGS += -I${GLOBALS_HOME}/dev/cpp/include
3625

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
3834

35+
.PHONY: all clean libffi libffi_clean
3936

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)
4141

4242
cna.o: cna.c storage.h
4343

@@ -51,5 +51,8 @@ $(TESTSDIR)/teslib.o: $(TESTSDIR)/testlib.c
5151
$(TESTSDIR)/libtest.$(SUFFIX): $(TESTSDIR)/testlib.o
5252
$(CC) $(LDFLAGS) -o $@ $^
5353

54+
libffi-clean:
55+
$(CD) libs/libffi && $(MAKE) clean
56+
5457
clean:
5558
$(RM) *.$(SUFFIX) *.o $(TESTSDIR)/*.$(SUFFIX) $(TESTSDIR)/*.o

libs/libffi/.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
Makefile
2-
makefile.sed~
2+
config.log
3+
*~
34
x86_64-w64-mingw32

0 commit comments

Comments
 (0)