2012-04-26 22:33:01 +02:00
|
|
|
# luasocket src/makefile
|
|
|
|
#
|
|
|
|
# Definitions in this section can be overriden on the command line or in the
|
|
|
|
# environment.
|
|
|
|
#
|
|
|
|
# These are equivalent:
|
|
|
|
#
|
|
|
|
# export PLAT=linux DEBUG=DEBUG LUAV=5.2 prefix=/sw
|
|
|
|
# make
|
|
|
|
#
|
|
|
|
# and
|
|
|
|
#
|
|
|
|
# make PLAT=linux DEBUG=DEBUG LUAV=5.2 prefix=/sw
|
|
|
|
|
|
|
|
# PLAT: linux macosx win32
|
|
|
|
# platform to build for
|
|
|
|
PLAT?=linux
|
|
|
|
|
|
|
|
# LUAV: 5.1 5.2
|
|
|
|
# lua version to build against
|
2012-04-11 23:18:20 +02:00
|
|
|
LUAV?=5.1
|
2011-05-25 22:57:22 +02:00
|
|
|
|
2012-04-26 22:33:01 +02:00
|
|
|
# DEBUG: NODEBUG DEBUG
|
|
|
|
# debug mode causes luasocket to collect and returns timing information useful
|
|
|
|
# for testing and debugging luasocket itself
|
|
|
|
DEBUG?=NODEBUG
|
2011-05-25 22:57:22 +02:00
|
|
|
|
2012-04-26 22:33:01 +02:00
|
|
|
# where lua headers are found for macosx builds
|
2012-05-11 09:33:47 +02:00
|
|
|
# LUAINC_macosx:
|
|
|
|
# /opt/local/include
|
|
|
|
LUAINC_macosx_base?=/opt/local/include
|
|
|
|
LUAINC_macosx?=$(LUAINC_macosx_base)$(LUAV)
|
|
|
|
# FIXME default should this default to fink or to macports?
|
|
|
|
# What happens when more than one Lua version is installed?
|
|
|
|
LUAPREFIX_macosx?=/opt/local/
|
|
|
|
|
|
|
|
# LUAINC_linux:
|
|
|
|
# /usr/include/lua$(LUAV)
|
|
|
|
# /usr/local/include
|
|
|
|
# /usr/local/include/lua$(LUAV)
|
2012-04-26 22:33:01 +02:00
|
|
|
# where lua headers are found for linux builds
|
2012-05-11 09:33:47 +02:00
|
|
|
LUAINC_linux_base?=/usr/include
|
|
|
|
LUAINC_linux?=$(LUAINC_linux_base)$(LUAV)
|
|
|
|
LUAPREFIX_linux?=/usr/local
|
2012-04-26 22:33:01 +02:00
|
|
|
|
|
|
|
# LUAINC_win32:
|
|
|
|
# LUALIB_win32:
|
|
|
|
# where lua headers and libraries are found for win32 builds
|
|
|
|
LUAINC_win32?="../../lua-5.1.3/src"
|
|
|
|
LUALIB_win32?="../../lua-5.1.3"
|
2012-05-11 09:33:47 +02:00
|
|
|
LUAPREFIX_win32?=
|
2012-04-26 22:33:01 +02:00
|
|
|
# FIXME default should be where lua-for-windows puts lua
|
|
|
|
|
2012-05-11 09:33:47 +02:00
|
|
|
# prefix: /usr/local /usr /opt/local /sw
|
|
|
|
# the top of the default install tree
|
|
|
|
prefix?=$(LUAPREFIX_$(PLAT))
|
|
|
|
|
2012-04-26 22:33:01 +02:00
|
|
|
# DESTDIR: (no default)
|
|
|
|
# used by package managers to install into a temporary destination
|
|
|
|
DESTDIR=
|
|
|
|
|
|
|
|
#------
|
|
|
|
# Definitions below can be overridden on the make command line, but
|
|
|
|
# shouldn't have to be.
|
2012-04-11 23:18:20 +02:00
|
|
|
|
2012-04-26 22:33:01 +02:00
|
|
|
print:
|
|
|
|
@echo PLAT=$(PLAT)
|
|
|
|
@echo LUAV=$(LUAV)
|
|
|
|
@echo DEBUG=$(DEBUG)
|
|
|
|
@echo prefix=$(prefix)
|
|
|
|
@echo LUAINC_$(PLAT)=$(LUAINC_$(PLAT))
|
|
|
|
@echo LUALIB_$(PLAT)=$(LUALIB_$(PLAT))
|
2009-05-27 11:31:38 +02:00
|
|
|
|
2005-08-12 07:56:32 +02:00
|
|
|
#------
|
2009-05-27 11:31:38 +02:00
|
|
|
# Install directories
|
2005-08-12 07:56:32 +02:00
|
|
|
#
|
2012-04-11 23:18:20 +02:00
|
|
|
|
|
|
|
INSTALL_DATA=cp
|
|
|
|
INSTALL_EXEC=cp
|
|
|
|
INSTALL_TOP=$(DESTDIR)$(prefix)
|
|
|
|
|
|
|
|
INSTALL_TOP_SHARE=$(INSTALL_TOP)/share/lua/$(LUAV)
|
|
|
|
INSTALL_TOP_LIB=$(INSTALL_TOP)/lib/lua/$(LUAV)
|
2011-07-05 00:31:14 +02:00
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
INSTALL_SOCKET_SHARE=$(INSTALL_TOP_SHARE)/socket
|
|
|
|
INSTALL_SOCKET_LIB=$(INSTALL_TOP_LIB)/socket
|
2012-04-11 23:18:20 +02:00
|
|
|
INSTALL_MIME_SHARE=$(INSTALL_TOP_SHARE)/mime
|
2009-05-27 11:31:38 +02:00
|
|
|
INSTALL_MIME_LIB=$(INSTALL_TOP_LIB)/mime
|
2005-08-12 07:56:32 +02:00
|
|
|
|
|
|
|
#------
|
2011-05-25 22:57:22 +02:00
|
|
|
# Supported platforms
|
2005-08-12 07:56:32 +02:00
|
|
|
#
|
2011-05-25 22:57:22 +02:00
|
|
|
PLATS= macosx linux win32
|
2005-08-12 07:56:32 +02:00
|
|
|
|
|
|
|
#------
|
2009-05-27 11:31:38 +02:00
|
|
|
# Compiler and linker settings
|
|
|
|
# for Mac OS X
|
2011-05-25 22:57:22 +02:00
|
|
|
SO_macosx=so
|
|
|
|
O_macosx=o
|
2009-05-27 11:31:38 +02:00
|
|
|
CC_macosx=gcc
|
2012-04-26 22:33:01 +02:00
|
|
|
DEF_macosx= -DLUASOCKET_$(DEBUG) -DUNIX_HAS_SUN_LEN -DLUA_COMPAT_MODULE \
|
2009-05-27 11:31:38 +02:00
|
|
|
-DLUASOCKET_API='__attribute__((visibility("default")))' \
|
|
|
|
-DMIME_API='__attribute__((visibility("default")))'
|
2011-05-25 22:57:22 +02:00
|
|
|
CFLAGS_macosx= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \
|
2009-05-27 11:31:38 +02:00
|
|
|
-fvisibility=hidden
|
2011-05-25 22:57:22 +02:00
|
|
|
LDFLAGS_macosx= -bundle -undefined dynamic_lookup -o
|
2009-05-27 11:31:38 +02:00
|
|
|
LD_macosx= export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc
|
2011-05-25 22:57:22 +02:00
|
|
|
SOCKET_macosx=usocket.o
|
2006-04-20 06:16:23 +02:00
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
#------
|
|
|
|
# Compiler and linker settings
|
|
|
|
# for Linux
|
2011-05-25 22:57:22 +02:00
|
|
|
SO_linux=so
|
|
|
|
O_linux=o
|
2009-05-27 11:31:38 +02:00
|
|
|
CC_linux=gcc
|
2012-04-26 22:33:01 +02:00
|
|
|
DEF_linux=-DLUASOCKET_$(DEBUG) \
|
2009-05-27 11:31:38 +02:00
|
|
|
-DLUASOCKET_API='__attribute__((visibility("default")))' \
|
|
|
|
-DMIME_API='__attribute__((visibility("default")))'
|
2011-04-27 19:42:20 +02:00
|
|
|
CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra -Wimplicit -O2 -ggdb3 -fpic \
|
2009-05-27 11:31:38 +02:00
|
|
|
-fvisibility=hidden
|
2011-05-25 22:57:22 +02:00
|
|
|
LDFLAGS_linux=-O -shared -fpic -o
|
|
|
|
LD_linux=gcc
|
|
|
|
SOCKET_linux=usocket.o
|
|
|
|
|
|
|
|
#------
|
|
|
|
# Compiler and linker settings
|
|
|
|
# for Win32
|
|
|
|
SO_win32=dll
|
|
|
|
O_win32=obj
|
|
|
|
CC_win32=cl
|
|
|
|
DEF_win32= /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" \
|
2012-04-26 22:33:01 +02:00
|
|
|
/D "LUASOCKET_API=__declspec(dllexport)" /D "LUASOCKET_$(DEBUG)" \
|
2011-05-25 22:57:22 +02:00
|
|
|
/D "_CRT_SECURE_NO_WARNINGS" /D "_WINDLL"
|
|
|
|
CFLAGS_win32=/I$(LUAINC) $(DEF) /O2 /Ot /MD /W3 /nologo
|
|
|
|
LDFLAGS_win32= /nologo /link /NOLOGO /DLL /INCREMENTAL:NO \
|
|
|
|
/LIBPATH:$(LUALIB) \
|
|
|
|
/MANIFEST \
|
|
|
|
/MANIFESTFILE:"intermediate.manifest" \
|
|
|
|
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" \
|
|
|
|
/SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /DYNAMICBASE:NO \
|
2012-04-11 23:18:20 +02:00
|
|
|
/MACHINE:X86 ws2_32.lib lua$(LUAV).lib /OUT:
|
2011-05-25 22:57:22 +02:00
|
|
|
LD_win32=cl
|
|
|
|
SOCKET_win32=wsocket.obj
|
|
|
|
|
|
|
|
.SUFFIXES: .obj
|
|
|
|
|
|
|
|
.c.obj:
|
|
|
|
$(CC) $(CFLAGS) /Fo"$@" /c $<
|
|
|
|
|
|
|
|
#------
|
|
|
|
# Output file names
|
|
|
|
#
|
|
|
|
SO=$(SO_$(PLAT))
|
|
|
|
O=$(O_$(PLAT))
|
2012-04-22 18:18:45 +02:00
|
|
|
SOCKET_V=2.1
|
2011-05-25 22:57:22 +02:00
|
|
|
MIME_V=1.0.3
|
|
|
|
SOCKET_SO=socket.$(SO).$(SOCKET_V)
|
|
|
|
MIME_SO=mime.$(SO).$(MIME_V)
|
|
|
|
UNIX_SO=unix.$(SO)
|
2012-04-11 23:18:20 +02:00
|
|
|
SERIAL_SO=serial.$(SO)
|
2011-05-25 22:57:22 +02:00
|
|
|
SOCKET=$(SOCKET_$(PLAT))
|
2007-03-12 05:08:40 +01:00
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
#------
|
|
|
|
# Settings selected for platform
|
|
|
|
#
|
|
|
|
CC=$(CC_$(PLAT))
|
|
|
|
DEF=$(DEF_$(PLAT))
|
|
|
|
CFLAGS=$(CFLAGS_$(PLAT))
|
|
|
|
LDFLAGS=$(LDFLAGS_$(PLAT))
|
|
|
|
LD=$(LD_$(PLAT))
|
2011-05-25 22:57:22 +02:00
|
|
|
LUAINC= $(LUAINC_$(PLAT))
|
|
|
|
LUALIB= $(LUALIB_$(PLAT))
|
2009-05-27 11:31:38 +02:00
|
|
|
|
|
|
|
#------
|
|
|
|
# Modules belonging to socket-core
|
|
|
|
#
|
|
|
|
SOCKET_OBJS= \
|
2011-05-25 22:57:22 +02:00
|
|
|
luasocket.$(O) \
|
|
|
|
timeout.$(O) \
|
|
|
|
buffer.$(O) \
|
|
|
|
io.$(O) \
|
2012-04-11 23:18:20 +02:00
|
|
|
auxiliar.$(O) \
|
2011-05-25 22:57:22 +02:00
|
|
|
options.$(O) \
|
|
|
|
inet.$(O) \
|
|
|
|
$(SOCKET) \
|
|
|
|
except.$(O) \
|
|
|
|
select.$(O) \
|
|
|
|
tcp.$(O) \
|
2012-04-16 14:41:48 +02:00
|
|
|
udp.$(O)
|
2005-08-12 07:56:32 +02:00
|
|
|
|
|
|
|
#------
|
|
|
|
# Modules belonging mime-core
|
|
|
|
#
|
2009-05-27 11:31:38 +02:00
|
|
|
MIME_OBJS= \
|
2011-05-25 22:57:22 +02:00
|
|
|
mime.$(O)
|
2005-09-29 08:11:42 +02:00
|
|
|
|
2005-08-12 07:56:32 +02:00
|
|
|
#------
|
|
|
|
# Modules belonging unix (local domain sockets)
|
|
|
|
#
|
2011-05-25 22:57:22 +02:00
|
|
|
UNIX_OBJS=\
|
|
|
|
buffer.$(O) \
|
|
|
|
auxiliar.$(O) \
|
|
|
|
options.$(O) \
|
|
|
|
timeout.$(O) \
|
|
|
|
io.$(O) \
|
|
|
|
usocket.$(O) \
|
2012-04-16 14:41:48 +02:00
|
|
|
unix.$(O)
|
2005-08-12 07:56:32 +02:00
|
|
|
|
2012-02-24 02:12:37 +01:00
|
|
|
#------
|
|
|
|
# Modules belonging to serial (device streams)
|
|
|
|
#
|
|
|
|
SERIAL_OBJS:=\
|
2012-04-11 23:18:20 +02:00
|
|
|
buffer.$(O) \
|
|
|
|
auxiliar.$(O) \
|
|
|
|
options.$(O) \
|
|
|
|
timeout.$(O) \
|
|
|
|
io.$(O) \
|
|
|
|
usocket.$(O) \
|
2012-04-16 14:41:48 +02:00
|
|
|
serial.$(O)
|
2012-04-11 23:18:20 +02:00
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
#------
|
|
|
|
# Files to install
|
|
|
|
#
|
2011-05-25 22:57:22 +02:00
|
|
|
TO_SOCKET_SHARE= \
|
2009-05-27 11:31:38 +02:00
|
|
|
http.lua \
|
|
|
|
url.lua \
|
|
|
|
tp.lua \
|
|
|
|
ftp.lua \
|
|
|
|
headers.lua \
|
|
|
|
smtp.lua
|
|
|
|
|
2011-05-25 22:57:22 +02:00
|
|
|
TO_TOP_SHARE= \
|
2009-05-27 11:31:38 +02:00
|
|
|
ltn12.lua \
|
|
|
|
socket.lua \
|
|
|
|
mime.lua
|
|
|
|
|
2011-05-25 22:57:22 +02:00
|
|
|
#------
|
|
|
|
# Targets
|
|
|
|
#
|
2009-05-27 11:31:38 +02:00
|
|
|
default: $(PLAT)
|
|
|
|
|
|
|
|
macosx:
|
2012-04-11 23:18:20 +02:00
|
|
|
$(MAKE) all-unix PLAT=macosx
|
2009-05-27 11:31:38 +02:00
|
|
|
|
2011-05-25 22:57:22 +02:00
|
|
|
win32:
|
|
|
|
$(MAKE) all PLAT=win32
|
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
linux:
|
2012-04-11 23:18:20 +02:00
|
|
|
$(MAKE) all-unix PLAT=linux
|
2009-05-27 11:31:38 +02:00
|
|
|
|
|
|
|
none:
|
2011-05-25 22:57:22 +02:00
|
|
|
@echo "Please run"
|
|
|
|
@echo " make PLATFORM"
|
|
|
|
@echo "where PLATFORM is one of these:"
|
2009-05-27 11:31:38 +02:00
|
|
|
@echo " $(PLATS)"
|
|
|
|
|
|
|
|
all: $(SOCKET_SO) $(MIME_SO)
|
2005-08-12 07:56:32 +02:00
|
|
|
|
|
|
|
$(SOCKET_SO): $(SOCKET_OBJS)
|
2011-05-25 22:57:22 +02:00
|
|
|
$(LD) $(SOCKET_OBJS) $(LDFLAGS)$@
|
2005-08-12 07:56:32 +02:00
|
|
|
|
|
|
|
$(MIME_SO): $(MIME_OBJS)
|
2011-05-25 22:57:22 +02:00
|
|
|
$(LD) $(MIME_OBJS) $(LDFLAGS)$@
|
2005-08-12 07:56:32 +02:00
|
|
|
|
2012-02-24 02:12:37 +01:00
|
|
|
all-unix: all $(UNIX_SO) $(SERIAL_SO)
|
2011-09-27 21:54:51 +02:00
|
|
|
|
2005-08-12 07:56:32 +02:00
|
|
|
$(UNIX_SO): $(UNIX_OBJS)
|
2011-05-25 22:57:22 +02:00
|
|
|
$(LD) $(UNIX_OBJS) $(LDFLAGS)$@
|
2005-08-12 07:56:32 +02:00
|
|
|
|
2012-02-24 02:12:37 +01:00
|
|
|
$(SERIAL_SO): $(SERIAL_OBJS)
|
2012-04-11 23:18:20 +02:00
|
|
|
$(LD) $(SERIAL_OBJS) $(LDFLAGS)$@
|
2012-02-24 02:12:37 +01:00
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
install:
|
|
|
|
mkdir -p $(INSTALL_TOP_SHARE)
|
|
|
|
$(INSTALL_DATA) $(TO_TOP_SHARE) $(INSTALL_TOP_SHARE)
|
|
|
|
mkdir -p $(INSTALL_SOCKET_SHARE)
|
|
|
|
$(INSTALL_DATA) $(TO_SOCKET_SHARE) $(INSTALL_SOCKET_SHARE)
|
|
|
|
mkdir -p $(INSTALL_SOCKET_LIB)
|
2011-05-25 22:57:22 +02:00
|
|
|
$(INSTALL_EXEC) $(SOCKET_SO) $(INSTALL_SOCKET_LIB)/core.$(SO)
|
2009-05-27 11:31:38 +02:00
|
|
|
mkdir -p $(INSTALL_MIME_LIB)
|
2011-05-25 22:57:22 +02:00
|
|
|
$(INSTALL_EXEC) $(MIME_SO) $(INSTALL_MIME_LIB)/core.$(SO)
|
2009-05-27 11:31:38 +02:00
|
|
|
|
2012-04-11 23:18:20 +02:00
|
|
|
install-unix: install
|
|
|
|
$(INSTALL_EXEC) $(UNIX_SO) $(INSTALL_SOCKET_LIB)/$(UNIX_SO)
|
|
|
|
$(INSTALL_EXEC) $(SERIAL_SO) $(INSTALL_SOCKET_LIB)/$(SERIAL_SO)
|
|
|
|
|
2009-05-27 11:31:38 +02:00
|
|
|
local:
|
|
|
|
$(MAKE) install INSTALL_TOP_LIB=.. INSTALL_TOP_SHARE=..
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f $(SOCKET_SO) $(SOCKET_OBJS)
|
2012-04-11 23:18:20 +02:00
|
|
|
rm -f $(MIME_SO) $(UNIX_SO) $(SERIAL_SO) $(MIME_OBJS) $(UNIX_OBJS)
|
2009-05-27 11:31:38 +02:00
|
|
|
|
|
|
|
.PHONY: all $(PLATS) default clean echo none
|
|
|
|
|
2005-08-12 07:56:32 +02:00
|
|
|
#------
|
|
|
|
# List of dependencies
|
|
|
|
#
|
2011-05-25 22:57:22 +02:00
|
|
|
auxiliar.$(O): auxiliar.c auxiliar.h
|
|
|
|
buffer.$(O): buffer.c buffer.h io.h timeout.h
|
|
|
|
except.$(O): except.c except.h
|
|
|
|
inet.$(O): inet.c inet.h socket.h io.h timeout.h usocket.h
|
|
|
|
io.$(O): io.c io.h timeout.h
|
|
|
|
luasocket.$(O): luasocket.c luasocket.h auxiliar.h except.h \
|
2009-05-27 11:31:38 +02:00
|
|
|
timeout.h buffer.h io.h inet.h socket.h usocket.h tcp.h \
|
|
|
|
udp.h select.h
|
2011-05-25 22:57:22 +02:00
|
|
|
mime.$(O): mime.c mime.h
|
|
|
|
options.$(O): options.c auxiliar.h options.h socket.h io.h \
|
2009-05-27 11:31:38 +02:00
|
|
|
timeout.h usocket.h inet.h
|
2011-05-25 22:57:22 +02:00
|
|
|
select.$(O): select.c socket.h io.h timeout.h usocket.h select.h
|
2012-04-11 23:18:20 +02:00
|
|
|
serial.$(O): serial.c auxiliar.h socket.h io.h timeout.h usocket.h \
|
|
|
|
options.h unix.h buffer.h
|
2011-05-25 22:57:22 +02:00
|
|
|
tcp.$(O): tcp.c auxiliar.h socket.h io.h timeout.h usocket.h \
|
2009-05-27 11:31:38 +02:00
|
|
|
inet.h options.h tcp.h buffer.h
|
2011-05-25 22:57:22 +02:00
|
|
|
timeout.$(O): timeout.c auxiliar.h timeout.h
|
|
|
|
udp.$(O): udp.c auxiliar.h socket.h io.h timeout.h usocket.h \
|
2009-05-27 11:31:38 +02:00
|
|
|
inet.h options.h udp.h
|
2011-05-25 22:57:22 +02:00
|
|
|
unix.$(O): unix.c auxiliar.h socket.h io.h timeout.h usocket.h \
|
2009-05-27 11:31:38 +02:00
|
|
|
options.h unix.h buffer.h
|
2011-05-25 22:57:22 +02:00
|
|
|
usocket.$(O): usocket.c socket.h io.h timeout.h usocket.h
|
|
|
|
wsocket.$(O): wsocket.c socket.h io.h timeout.h usocket.h
|