Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Makefile - github.com/facebook/luaffifb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6263e27f13b54deb4893b79313e71a16f71e1e40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
.PHONY: all clean test headers macosx test_macosx posix test_posix

PKG_CONFIG=pkg-config
LUA=lua

LUA_CFLAGS=`$(PKG_CONFIG) --cflags lua5.2 2>/dev/null || $(PKG_CONFIG) --cflags lua`
SOCFLAGS=-fPIC
SOCC=$(CC) -shared $(SOCFLAGS)
CFLAGS=-fPIC -g -Wall -Werror $(LUA_CFLAGS) -fvisibility=hidden -Wno-unused-function --std=gnu99

MODNAME=ffi
MODSO=$(MODNAME).so
ifeq (Darwin, $(shell uname -s))
	TESTSO=libtest_cdecl.dylib
else
	TESTSO=libtest_cdecl.so
endif

all:
	if [ `uname` = "Darwin" ]; then $(MAKE) macosx; else $(MAKE) posix; fi

headers:
	$(MAKE) call_x86.h call_x64.h call_x64win.h

test:
	if [ `uname` = "Darwin" ]; then $(MAKE) test_macosx; else $(MAKE) test_posix; fi

macosx:
	$(MAKE) posix "SOCC=MACOSX_DEPLOYMENT_TARGET=10.3 $(CC) -dynamiclib -single_module -undefined dynamic_lookup $(SOCFLAGS)"

test_macosx:
	$(MAKE) test_posix "SOCC=MACOSX_DEPLOYMENT_TARGET=10.3 $(CC) -dynamiclib -single_module -undefined dynamic_lookup $(SOCFLAGS)"

posix: $(MODSO) $(TESTSO)

clean:
	rm -f *.o *.so call_*.h *.dylib

call_x86.h: call_x86.dasc dynasm/*.lua
	$(LUA) dynasm/dynasm.lua -LN -o $@ $<

call_x64.h: call_x86.dasc dynasm/*.lua
	$(LUA) dynasm/dynasm.lua -D X64 -LN -o $@ $<

call_x64win.h: call_x86.dasc dynasm/*.lua
	$(LUA) dynasm/dynasm.lua -D X64 -D X64WIN -LN -o $@ $<

%.o: %.c *.h dynasm/*.h call_x86.h call_x64.h call_x64win.h
	$(CC) $(CFLAGS) -o $@ -c $<

$(MODSO): ffi.o ctype.o parser.o call.o
	$(SOCC) $^ -o $@

$(TESTSO): test.o
	$(SOCC) $^ -o $@

test_posix: $(TESTSO) $(MODSO)
	LD_LIBRARY_PATH=./ $(LUA) test.lua