summaryrefslogtreecommitdiff
path: root/Makefile
blob: 0ca82cac26e05683dde29f5274c1ba5be244679d (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
all: lua-5.1-try lua-5.2-try

install: lua-5.1-try-install lua-5.2-try-install

# find appropriate Lua libraries
LUA51_PKG := $(shell (pkg-config --exists lua5.1 && echo lua5.1) || \
                     (pkg-config --exists lua-5.1 && echo lua-5.1))
ifneq ($(LUA51_PKG),)
  LUA51_INC := $(shell pkg-config --cflags $(LUA51_PKG))
  LUA51_LIB := $(shell pkg-config --libs $(LUA51_PKG))
  ifeq ($(LOCAL),)
    LUA51_LMOD_INST := $(shell pkg-config --variable=INSTALL_LMOD $(LUA51_PKG))
    LUA51_CMOD_INST := $(shell pkg-config --variable=INSTALL_CMOD $(LUA51_PKG))
  else
    LUA51_LMOD_INST := /usr/local/share/lua/5.1
    LUA51_CMOD_INST := /usr/local/lib/lua/5.1
  endif
  lua-5.1-try: lua-5.1
  lua-5.1-try-install: lua-5.1-install
else
lua-5.1-try:
	@echo Lua 5.1 could not be found, so luxio was not built for it.
lua-5.1-try-install:
	@echo Lua 5.1 could not be found, so luxio was not installed for it.
endif

LUA52_PKG := $(shell (pkg-config --exists lua5.2 && echo lua5.2) || \
                     (pkg-config --exists lua-5.2 && echo lua-5.2))
ifneq ($(LUA52_PKG),)
  LUA52_INC := $(shell pkg-config --cflags $(LUA52_PKG))
  LUA52_LIB := $(shell pkg-config --libs $(LUA52_PKG))
  ifeq ($(LOCAL),)
    LUA52_LMOD_INST := $(shell pkg-config --variable=INSTALL_LMOD $(LUA52_PKG))
    LUA52_CMOD_INST := $(shell pkg-config --variable=INSTALL_CMOD $(LUA52_PKG))
  else
    LUA52_LMOD_INST := /usr/local/share/lua/5.2
    LUA52_CMOD_INST := /usr/local/lib/lua/5.2
  endif
  lua-5.2-try: lua-5.2
  lua-5.2-try-install: lua-5.2-install
else
lua-5.2-try:
	@echo Lua 5.2 could not be found, so luxio was not built for it.
lua-5.2-try-install:
	@echo Lua 5.2 could not be found, so luxio was not installed for it.
endif


CFLAGS ?= -O2 -Wall
CC ?= gcc
INSTALL := /usr/bin/install

LUALIBS := $(patsubst %,luxio/%.lua, \
	event simple subprocess)


clean:
	$(RM) *.so *.o luxio_constants.h

luxio_constants.h: luxio_constants.h.in const-proc.lua
	./const-proc.lua < $^ > $@

lua-5.1: luxio-5.1.so
	ln -s -f luxio-5.1.so luxio.so

lua-5.1-install: lua-5.1
	$(INSTALL) -d $(DESTDIR)$(LUA51_CMOD_INST)
	$(INSTALL) -m 755 luxio-5.1.so $(DESTDIR)$(LUA51_CMOD_INST)/luxio.so
	$(INSTALL) -d $(DESTDIR)$(LUA51_LMOD_INST)/luxio
	$(INSTALL) -m 644 $(LUALIBS) $(DESTDIR)$(LUA51_LMOD_INST)/luxio/

luxio-5.1.so: luxio-5.1.o
	$(CC) -shared -Wl,--no-as-needed -o luxio-5.1.so $(LUA51_LIB) -lrt $^

lua-5.2: luxio-5.2.so
	ln -s -f luxio-5.2.so luxio.so

lua-5.2-install: lua-5.2
	$(INSTALL) -d $(DESTDIR)$(LUA52_CMOD_INST)
	$(INSTALL) -m 755 luxio-5.2.so $(DESTDIR)$(LUA52_CMOD_INST)/luxio.so
	$(INSTALL) -d $(DESTDIR)$(LUA52_LMOD_INST)/luxio
	$(INSTALL) -m 644 $(LUALIBS) $(DESTDIR)$(LUA52_LMOD_INST)/luxio/


luxio-5.2.so: luxio-5.2.o
	$(CC) -shared -Wl,--no-as-needed -o luxio-5.2.so $(LUA52_LIB) -lrt $^

luxio-5.1.o: luxio.c luxio_constants.h 
	$(CC) $(CFLAGS) -fPIC $(LUA51_INC) -c $< -o $@

luxio-5.2.o: luxio.c luxio_constants.h
	$(CC) $(CFLAGS) -fPIC $(LUA52_INC) -c $< -o $@