forked from darrikmazey/erl-lua
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Makefile.Linux
55 lines (44 loc) · 1.67 KB
/
Makefile.Linux
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
ERL_LIB=/usr/local/lib/erlang/lib/erl_interface-3.6.2
XXXX=/usr/lib/erlang/lib/erl_interface-3.6.2
CFLAGS=-Wall -I/usr/local/lib/erlang/lib/erl_interface-3.6.2/include -I/usr/local/lib/erlang/usr/include -I/usr/local/include -I$(ERL_LIB)/include -I/usr/lib/erlang/usr/include
LDFLAGS=-shared -L. -L$(ERL_LIB)/lib
LDLIBS=-llua
STATICLIBS=$(ERL_LIB)/lib/libei.a $(ERL_LIB)/lib/liberl_interface.a
GCC=/usr/bin/gcc
ERL=/usr/bin/erl
LIB=lib/liberlua.so
# note: only the main files shall go into ebin, for less clutter
ERLMODS=$(patsubst src/%.erl,ebin/%.beam,$(wildcard src/*.erl))
CRASHER=$(patsubst samples/crash/%.erl,samples/crash/%.beam,$(wildcard samples/crash/*.erl))
HELLO=$(patsubst samples/hello/%.erl,samples/hello/%.beam,$(wildcard samples/hello/*.erl))
TESTS=$(patsubst tests/%.erl,tests/%.beam,$(wildcard tests/*.erl))
OBJECTS=$(patsubst c_src/%.c,build/%.o,$(wildcard c_src/*.c))
all: $(LIB) $(ERLMODS) $(HELLO) $(TESTS) $(CRASHER)
build/%.o: c_src/%.c
$(GCC) $(CFLAGS) -o $@ -c $<
ebin/%.beam: src/%.erl
$(ERL) -make
samples/crash/%.beam: samples/crash/%.erl
$(ERL)c -o samples/crash $<
samples/hello/%.beam: samples/hello/%.erl
$(ERL)c -I include -o samples/hello $<
tests/%.beam: tests/%.erl
$(ERL)c -o tests $<
$(LIB): $(OBJECTS)
$(GCC) $(CFLAGS) $(LDFLAGS) $(LDLIBS) -o $(LIB) $(OBJECTS) $(STATICLIBS)
test: tests/lua_test.beam
$(ERL) -pa tests/ -noshell -s lua_test test -s init stop
clean:
rm -f ebin/*.beam
rm -f ebin/*.dump
rm -f build/*.o
rm -f build/*.so
rm -f lib/liberlua.so
rm -f src/*.beam
rm -f src/*.dump
rm -f samples/hello/*.beam
rm -f samples/hello/*.dump
rm -f samples/crash/*.beam
rm -f samples/crash/*.dump
rm -f tests/*.beam
rm -f tests/*.dump