1# makefile for installing Lua
2# see INSTALL for installation instructions
3# see src/Makefile and src/luaconf.h for further customization
4
5# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
6
7# Your platform. See PLATS for possible values.
8PLAT= none
9
10# Where to install. The installation starts in the src and doc directories,
11# so take care if INSTALL_TOP is not an absolute path.
12INSTALL_TOP= /usr/local
13INSTALL_BIN= $(INSTALL_TOP)/bin
14INSTALL_INC= $(INSTALL_TOP)/include
15INSTALL_LIB= $(INSTALL_TOP)/lib
16INSTALL_MAN= $(INSTALL_TOP)/man/man1
17#
18# You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
19# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h (and also with etc/lua.pc).
20INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
21INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
22
23# How to install. If your install program does not support "-p", then you
24# may have to run ranlib on the installed liblua.a (do "make ranlib").
25INSTALL= install -p
26INSTALL_EXEC= $(INSTALL) -m 0755
27INSTALL_DATA= $(INSTALL) -m 0644
28#
29# If you don't have install you can use cp instead.
30# INSTALL= cp -p
31# INSTALL_EXEC= $(INSTALL)
32# INSTALL_DATA= $(INSTALL)
33
34# Utilities.
35MKDIR= mkdir -p
36RANLIB= ranlib
37
38# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
39
40# Convenience platforms targets.
41PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
42
43# What to install.
44TO_BIN= lua luac
45TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
46TO_LIB= liblua.a
47TO_MAN= lua.1 luac.1
48
49# Lua version and release.
50V= 5.1
51R= 5.1.5
52
53all:	$(PLAT)
54
55$(PLATS) clean:
56	cd src && $(MAKE) $@
57
58test:	dummy
59	src/lua test/hello.lua
60
61install: dummy
62	cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
63	cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
64	cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
65	cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
66	cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
67
68ranlib:
69	cd src && cd $(INSTALL_LIB) && $(RANLIB) $(TO_LIB)
70
71local:
72	$(MAKE) install INSTALL_TOP=..
73
74none:
75	@echo "Please do"
76	@echo "   make PLATFORM"
77	@echo "where PLATFORM is one of these:"
78	@echo "   $(PLATS)"
79	@echo "See INSTALL for complete instructions."
80
81# make may get confused with test/ and INSTALL in a case-insensitive OS
82dummy:
83
84# echo config parameters
85echo:
86	@echo ""
87	@echo "These are the parameters currently set in src/Makefile to build Lua $R:"
88	@echo ""
89	@cd src && $(MAKE) -s echo
90	@echo ""
91	@echo "These are the parameters currently set in Makefile to install Lua $R:"
92	@echo ""
93	@echo "PLAT = $(PLAT)"
94	@echo "INSTALL_TOP = $(INSTALL_TOP)"
95	@echo "INSTALL_BIN = $(INSTALL_BIN)"
96	@echo "INSTALL_INC = $(INSTALL_INC)"
97	@echo "INSTALL_LIB = $(INSTALL_LIB)"
98	@echo "INSTALL_MAN = $(INSTALL_MAN)"
99	@echo "INSTALL_LMOD = $(INSTALL_LMOD)"
100	@echo "INSTALL_CMOD = $(INSTALL_CMOD)"
101	@echo "INSTALL_EXEC = $(INSTALL_EXEC)"
102	@echo "INSTALL_DATA = $(INSTALL_DATA)"
103	@echo ""
104	@echo "See also src/luaconf.h ."
105	@echo ""
106
107# echo private config parameters
108pecho:
109	@echo "V = $(V)"
110	@echo "R = $(R)"
111	@echo "TO_BIN = $(TO_BIN)"
112	@echo "TO_INC = $(TO_INC)"
113	@echo "TO_LIB = $(TO_LIB)"
114	@echo "TO_MAN = $(TO_MAN)"
115
116# echo config parameters as Lua code
117# uncomment the last sed expression if you want nil instead of empty strings
118lecho:
119	@echo "-- installation parameters for Lua $R"
120	@echo "VERSION = '$V'"
121	@echo "RELEASE = '$R'"
122	@$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
123	@echo "-- EOF"
124
125# list targets that do not create files (but not all makes understand .PHONY)
126.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
127
128# (end of Makefile)
129