Prepare new Release
[tcc4lua.git] / Makefile
blobc3fdebc3f1f9b9a2231ed9fecb4a9339cbdc46a6
1 # Installation directory
2 INSTALL_TOP_SHARE=/usr/share/lua/5.1
3 INSTALL_TOP_LIB=/usr/lib/lua/5.1
5 # Module name
6 MODULE=tcc
7 DLL=$(MODULE).so
9 # If your libtcc does contain tcc_compile_named_string comment next line.
10 CPPFLAGS+=
12 .PHONY:all
13 all:build
15 SRC=tcc4lua.c
17 CFLAGS= -O2 -Wall -g
18 EXTRA_CFLAGS= `pkg-config libtcc lua5.1 --cflags` -fPIC
19 EXTRA_CFLAGS+= -Dluaopen_module=luaopen_$(MODULE) -DMODULE_API=extern
20 EXTRA_CFLAGS+= -D'tcc_compile_named_string(tcc,code,chunkname)=tcc_compile_string(tcc,code)'
21 EXTRA_CFLAGS+= -I/usr/include/lua5.1
22 LDLIBS= `pkg-config libtcc lua5.1 --libs` -lc
23 LDFLAGS= --as-needed --no-undefined -z defs
25 %.o: %.cpp
26 g++ -o $@ -c $+ $(CFLAGS) $(EXTRA_CFLAGS)
28 %.o: %.c
29 gcc -o $@ -c $+ $(CFLAGS) $(EXTRA_CFLAGS)
31 .PHONY:build
32 build:$(DLL)
34 $(DLL):$(patsubst %.c,%.o,$(SRC))
35 $(LD) $(LDFLAGS) -shared -o $@ $^ $(LDLIBS)
37 .PHONY:clean
38 clean:
39 rm -f $(DLL) $(patsubst %.c,%.o,$(SRC))
41 DESTDIR =
42 LIB_DIR = /usr/lib/lua/5.1/
43 MODULE_DIR = /usr/share/lua/5.1/$(MODULE)
45 .PHONY:install
46 install:build
47 mkdir -p $(DESTDIR)/$(LIB_DIR)
48 cp $(DLL) $(DESTDIR)/$(LIB_DIR)
49 mkdir -p $(DESTDIR)/$(MODULE_DIR)
50 cp loader.lua $(DESTDIR)/$(MODULE_DIR)
52 .PHONY:uninstall
53 uninstall:
54 rm -f $(DESTDIR)/$(DESTDIR_LIB)/$(DLL)
55 rm -f $(DESTDIR)/$(MODULE_DIR)/loader.lua