From 7499b422e3f07bf25704cbf7989e845f89697fa8 Mon Sep 17 00:00:00 2001 From: Oscar Lim Date: Sun, 24 Jan 2016 22:53:37 -0800 Subject: Support for gettime and sleep functions Provide `gettime` and `sleep` functions with at least 1 millisecond resolution. --- src/Makefile | 257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 src/Makefile (limited to 'src/Makefile') diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..25f468d --- /dev/null +++ b/src/Makefile @@ -0,0 +1,257 @@ +# luasystem +# +# Definitions in this section can be overriden on the command line or in the +# environment. +# + +# PLAT: linux macosx win32 mingw +# platform to build for +PLAT?=linux + +# LUA_VERSION: 5.1 5.2 5.3 +# lua version to build against +LUA_VERSION?=5.1 + +# MYCFLAGS: to be set by user if needed +MYCFLAGS= + +# MYLDFLAGS: to be set by user if needed +MYLDFLAGS= + +# where lua headers are found for macosx builds +# LUAINC_macosx: +# /opt/local/include +LUAINC_macosx_base?=/opt/local/include +LUAINC_macosx?=$(LUAINC_macosx_base)/lua/$(LUA_VERSION) +# FIXME default should this default to fink or to macports? +# What happens when more than one Lua version is installed? +LUAPREFIX_macosx?=/opt/local +CDIR_macosx?=lib/lua/$(LUA_VERSION) +LDIR_macosx?=share/lua/$(LUA_VERSION) + +# LUAINC_linux: +# /usr/include/lua$(LUA_VERSION) +# /usr/local/include +# /usr/local/include/lua$(LUA_VERSION) +# where lua headers are found for linux builds +LUAINC_linux_base?=/usr/include +LUAINC_linux?=$(LUAINC_linux_base)/lua/$(LUA_VERSION) +LUAPREFIX_linux?=/usr/local +CDIR_linux?=lib/lua/$(LUA_VERSION) +LDIR_linux?=share/lua/$(LUA_VERSION) + +# LUAINC_freebsd: +# /usr/local/include/lua$(LUA_VERSION) +# where lua headers are found for linux builds +LUAINC_freebsd_base?=/usr/local/include/ +LUAINC_freebsd?=$(LUAINC_freebsd_base)/lua$(LUA_VERSION) +LUAPREFIX_freebsd?=/usr/local/ +CDIR_freebsd?=lib/lua/$(LUA_VERSION) +LDIR_freebsd?=share/lua/$(LUA_VERSION) + +# where lua headers are found for mingw builds +# LUAINC_mingw: +# /opt/local/include +LUAINC_mingw_base?=/usr/include +LUAINC_mingw?=$(LUAINC_mingw_base)/lua/$(LUA_VERSION) +LUALIB_mingw_base?=/usr/bin +LUALIB_mingw?=$(LUALIB_mingw_base)/lua/$(LUA_VERSION)/lua$(subst .,,$(LUA_VERSION)).dll +LUAPREFIX_mingw?=/usr +CDIR_mingw?=lua/$(LUA_VERSION) +LDIR_mingw?=lua/$(LUA_VERSION)/lua + + +# LUAINC_win32: +# LUALIB_win32: +# where lua headers and libraries are found for win32 builds +LUAPREFIX_win32?= +LUAINC_win32?=$(LUAPREFIX_win32)/include/lua/$(LUA_VERSION) +PLATFORM_win32?=Release +CDIR_win32?=bin/lua/$(LUA_VERSION)/$(PLATFORM_win32) +LDIR_win32?=bin/lua/$(LUA_VERSION)/$(PLATFORM_win32)/lua +LUALIB_win32?=$(LUAPREFIX_win32)/lib/lua/$(LUA_VERSION)/$(PLATFORM_win32) +LUALIBNAME_win32?=lua$(subst .,,$(LUA_VERSION)).lib + + +# prefix: /usr/local /usr /opt/local /sw +# the top of the default install tree +prefix?=$(LUAPREFIX_$(PLAT)) + +CDIR?=$(CDIR_$(PLAT)) +LDIR?=$(LDIR_$(PLAT)) + +# 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. + + +#------ +# Install directories +# + +INSTALL_DIR=install -d +INSTALL_DATA=install -m644 +INSTALL_EXEC=install +INSTALL_TOP=$(DESTDIR)$(prefix) + +INSTALL_TOP_LDIR=$(INSTALL_TOP)/$(LDIR) +INSTALL_TOP_CDIR=$(INSTALL_TOP)/$(CDIR) + +INSTALL_LDIR=$(INSTALL_TOP_LDIR)/system +INSTALL_CDIR=$(INSTALL_TOP_CDIR)/system + +#------ +# Supported platforms +# +PLATS= macosx linux win32 mingw + +#------ +# Compiler and linker settings +# for Mac OS X +SO_macosx=so +O_macosx=o +CC_macosx=gcc +DEF_macosx= +CFLAGS_macosx= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \ + -fvisibility=hidden +LDFLAGS_macosx= -bundle -undefined dynamic_lookup -o +LD_macosx= export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc + +#------ +# Compiler and linker settings +# for Linux +SO_linux=so +O_linux=o +CC_linux=gcc +DEF_linux= +CFLAGS_linux= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ + -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden +LDFLAGS_linux=-O -shared -fpic -o +LD_linux=gcc + +#------ +# Compiler and linker settings +# for FreeBSD +SO_freebsd=so +O_freebsd=o +CC_freebsd=gcc +DEF_freebsd= +CFLAGS_freebsd= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \ + -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden +LDFLAGS_freebsd=-O -shared -fpic -o +LD_freebsd=gcc + +#------ +# Compiler and linker settings +# for MingW +SO_mingw=dll +O_mingw=o +CC_mingw=gcc +DEF_mingw=-DWINVER=0x0501 +CFLAGS_mingw= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \ + -fvisibility=hidden +LDFLAGS_mingw= $(LUALIB) -shared -Wl,-s -o +LD_mingw=gcc + + +#------ +# 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" \ + //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 \ + //MANIFEST //MANIFESTFILE:"intermediate.manifest" \ + //MANIFESTUAC:"level='asInvoker' uiAccess='false'" \ + //SUBSYSTEM:WINDOWS //OPT:REF //OPT:ICF //DYNAMICBASE:NO \ + //MACHINE:X86 /LIBPATH:"$(shell cmd //c echo $(LUALIB))" \ + $(LUALIBNAME_win32) //OUT: +LD_win32=cl + +.SUFFIXES: .obj + +.c.obj: + $(CC) $(CFLAGS) //Fo"$@" //c $< + +#------ +# Output file names +# +SO=$(SO_$(PLAT)) +O=$(O_$(PLAT)) +SOLIB=core.$(SO) + +#------ +# Settings selected for platform +# +CC=$(CC_$(PLAT)) +DEF=$(DEF_$(PLAT)) +CFLAGS=$(MYCFLAGS) $(CFLAGS_$(PLAT)) +LDFLAGS=$(MYLDFLAGS) $(LDFLAGS_$(PLAT)) +LD=$(LD_$(PLAT)) +LUAINC= $(LUAINC_$(PLAT)) +LUALIB= $(LUALIB_$(PLAT)) + +#------ +# Objects +# +OBJS=core.$(O) compat.$(O) time.$(O) + +#------ +# Targets +# +default: $(PLAT) + +freebsd: + $(MAKE) all PLAT=freebsd + +macosx: + $(MAKE) all PLAT=macosx + +win32: + $(MAKE) all PLAT=win32 + +linux: + $(MAKE) all PLAT=linux + +mingw: + $(MAKE) all PLAT=mingw + +none: + @echo "Please run" + @echo " make PLATFORM" + @echo "where PLATFORM is one of these:" + @echo " $(PLATS)" + +all: $(SOLIB) + +$(SOLIB): $(OBJS) + $(LD) $(OBJS) $(LDFLAGS)$@ + +install: all + $(INSTALL_DIR) $(INSTALL_TOP_LDIR) + $(INSTALL_DIR) $(INSTALL_CDIR) + $(INSTALL_EXEC) $(SOLIB) $(INSTALL_CDIR)/$(SOLIB) + +local: + $(MAKE) install INSTALL_TOP_CDIR=.. INSTALL_TOP_LDIR=.. + +clean: + rm -f $(SOLIB) $(OBJS) ../system/core.so + +print: + @echo PLAT=$(PLAT) + @echo LUA_VERSION=$(LUA_VERSION) + @echo prefix=$(prefix) + @echo LUAINC_$(PLAT)=$(LUAINC_$(PLAT)) + @echo LUALIB_$(PLAT)=$(LUALIB_$(PLAT)) + @echo INSTALL_TOP_CDIR=$(INSTALL_TOP_CDIR) + @echo INSTALL_TOP_LDIR=$(INSTALL_TOP_LDIR) + +.PHONY: all $(PLATS) default clean none -- cgit v1.2.3