Commit | Line | Data |
---|---|---|
a287fafe DM |
1 | Enables generating Lua's pkg-config file. |
2 | ||
3 | http://lua-users.org/lists/lua-l/2015-03/msg00338.html | |
4 | ||
5 | --- a/Makefile 2016-08-16 19:44:27.363614964 +0200 | |
6 | +++ b/Makefile 2016-08-16 19:49:22.623070005 +0200 | |
7 | @@ -13,6 +13,7 @@ | |
8 | INSTALL_BIN= $(INSTALL_TOP)/bin | |
9 | INSTALL_INC= $(INSTALL_TOP)/include | |
10 | INSTALL_LIB= $(INSTALL_TOP)/lib | |
11 | +INSTALL_PC= $(INSTALL_LIB)/pkgconfig | |
12 | INSTALL_MAN= $(INSTALL_TOP)/man/man1 | |
13 | # | |
14 | # You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with | |
15 | @@ -41,9 +42,12 @@ | |
16 | PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris | |
17 | ||
18 | # What to install. | |
19 | -TO_BIN= lua luac | |
20 | +INTERPRETER= lua | |
21 | +COMPILER= luac | |
22 | +TO_BIN= $(INTERPRETER) $(COMPILER) | |
23 | TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp | |
24 | TO_LIB= liblua.a liblua.so liblua.so.${V} | |
25 | +TO_PC= lua-$(V).pc | |
26 | TO_MAN= lua.1 luac.1 | |
27 | ||
28 | # Lua version and release. | |
29 | @@ -52,17 +56,22 @@ | |
30 | ||
31 | all: $(PLAT) | |
32 | ||
33 | -$(PLATS) clean: | |
34 | +$(PLATS): | |
35 | cd src && $(MAKE) $@ V=$(V) R=$(R) | |
36 | ||
37 | +clean: | |
38 | + cd src && $(MAKE) $@ | |
39 | + $(RM) $(TO_PC) | |
40 | + | |
41 | test: dummy | |
42 | src/lua test/hello.lua | |
43 | ||
44 | -install: dummy | |
45 | - cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) | |
46 | +install: dummy $(TO_PC) | |
47 | + cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_PC) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) | |
48 | cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) | |
49 | cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) | |
50 | cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) | |
51 | + cd src && $(INSTALL_DATA) ../$(TO_PC) $(INSTALL_PC) | |
52 | cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) | |
53 | ||
54 | ranlib: | |
55 | @@ -95,6 +104,7 @@ | |
56 | @echo "INSTALL_BIN = $(INSTALL_BIN)" | |
57 | @echo "INSTALL_INC = $(INSTALL_INC)" | |
58 | @echo "INSTALL_LIB = $(INSTALL_LIB)" | |
59 | + @echo "INSTALL_PC = $(INSTALL_PC)" | |
60 | @echo "INSTALL_MAN = $(INSTALL_MAN)" | |
61 | @echo "INSTALL_LMOD = $(INSTALL_LMOD)" | |
62 | @echo "INSTALL_CMOD = $(INSTALL_CMOD)" | |
63 | @@ -111,6 +121,7 @@ | |
64 | @echo "TO_BIN = $(TO_BIN)" | |
65 | @echo "TO_INC = $(TO_INC)" | |
66 | @echo "TO_LIB = $(TO_LIB)" | |
67 | + @echo "TO_PC = $(TO_PC)" | |
68 | @echo "TO_MAN = $(TO_MAN)" | |
69 | ||
70 | # echo config parameters as Lua code | |
71 | @@ -122,7 +133,29 @@ | |
72 | @$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/' | |
73 | @echo "-- EOF" | |
74 | ||
75 | +pc: | |
76 | + @echo 'prefix=$(INSTALL_TOP)' | |
77 | + @echo 'libdir=$(INSTALL_LIB)' | |
78 | + @echo 'includedir=$(INSTALL_INC)' | |
79 | + @echo 'bindir=$(INSTALL_BIN)' | |
80 | + @echo | |
81 | + @echo 'INSTALL_LMOD=$(INSTALL_LMOD)' | |
82 | + @echo 'INSTALL_CMOD=$(INSTALL_CMOD)' | |
83 | + @echo 'INTERPRETER=$${bindir}/$(INTERPRETER)' | |
84 | + @echo 'COMPILER=$${bindir}/$(COMPILER)' | |
85 | + @echo | |
86 | + @echo 'Name: Lua' | |
87 | + @echo 'Description: A powerful, fast, lightweight, embeddable scripting language' | |
88 | + @echo 'Version: $(R)' | |
89 | + @echo | |
90 | + @echo 'Libs: -L$${libdir} -llua -lm' | |
91 | + @echo 'Cflags: -I$${includedir}' | |
92 | + | |
93 | +pkg-config: $(TO_PC) | |
94 | +$(TO_PC): | |
95 | + @$(MAKE) -s pc > $@ | |
96 | + | |
97 | # list targets that do not create files (but not all makes understand .PHONY) | |
98 | -.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho | |
99 | +.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho pkg-config | |
100 | ||
101 | # (end of Makefile) |