Makefile

1
.PHONY: all install clean dist dist-all dist-bzip2 dist-gzip dist-zip
2
 
3
DIST_DIR=dist
4
 
5
# Utilities
6
INSTALL = install
7
INSTALL_PROGRAM = $(INSTALL)
8
INSTALL_DATA = $(INSTALL) -m 644
9
 
10
# Flags
11
CFLAGS = -Wall -fpic
12
LDFLAGS = -shared
13
 
14
# Directories
15
LUA_INC_DIR ?= /usr/include/lua5.1
16
 
17
INSTALL_DIR_LUA ?= /usr/share/lua/5.1
18
INSTALL_DIR_BIN ?= /usr/lib/lua/5.1
19
 
20
# Files
21
LIB = core.so
22
 
23
all:
24
	$(CC) $(CFLAGS) -c -Iinclude -I$(LUA_INC_DIR) src/*.c
25
	$(CC) $(LDFLAGS) -o $(LIB) *.o -levent
26
 
27
dist dist-all: distdir dist-bzip2 dist-gzip dist-zip
28
 
29
distdir:
30
	mkdir -p $(DIST_DIR)
31
 
32
VERSION=luaevent-$(shell git describe --abbrev=4 HEAD 2>/dev/null)
33
dist-bzip2: distdir
34
	git archive --format=tar --prefix=$(VERSION)/ HEAD | bzip2 -9v > $(DIST_DIR)/$(VERSION).tar.bz2
35
dist-gzip: distdir
36
	git archive --format=tar --prefix=$(VERSION)/ HEAD | gzip -9v > $(DIST_DIR)/$(VERSION).tar.gz
37
dist-zip: distdir
38
	git archive --format=zip --prefix=$(VERSION)/ HEAD > $(DIST_DIR)/$(VERSION).zip
39
 
40
install: all
41
	mkdir -p $(DESTDIR)$(INSTALL_DIR_LUA)
42
	$(INSTALL_DATA) lua/luaevent.lua $(DESTDIR)$(INSTALL_DIR_LUA)/luaevent.lua
43
	mkdir -p $(DESTDIR)$(INSTALL_DIR_BIN)/luaevent/
44
	$(INSTALL_PROGRAM) $(LIB) $(DESTDIR)$(INSTALL_DIR_BIN)/luaevent/$(LIB)
45
 
46
clean:
47
	rm -f *.so
48
	rm -f *.o