diff -Paur --no-dereference -- lua.upstream/Makefile lua/Makefile --- lua.upstream/Makefile +++ lua/Makefile @@ -10,13 +10,16 @@ # so take care if INSTALL_TOP is not an absolute path. See the local target. # You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with # LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h. -INSTALL_TOP= /usr/local -INSTALL_BIN= $(INSTALL_TOP)/bin -INSTALL_INC= $(INSTALL_TOP)/include -INSTALL_LIB= $(INSTALL_TOP)/lib -INSTALL_MAN= $(INSTALL_TOP)/man/man1 -INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V -INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V +PREFIX?=/usr/local +EXEC_PREFIX?=$(EXEC_PREFIX) +BINDIR?=$(EXEC_PREFIX)/bin +INCLUDEDIR?=$(PREFIX)/include +LIBDIR?=$(EXEC_PREFIX)/lib +DATAROOTDIR?=$(PREFIX)/share +DATADIR?=$(DATAROOTDIR) +MANDIR?=$(DATAROOTDIR)/man +LMODDIR=$(DATADIR)/lua/$V +CMODDIR?=$(LIBDIR)/lua/$V # How to install. If your install program does not support "-p", then # you may have to run ranlib on the installed liblua.a. @@ -49,29 +52,31 @@ R= $V.4 # Targets start here. -all: $(PLAT) +all: + cd src && $(MAKE) posix LMODDIR=$(LMODDIR) CMODDIR=$(CMODDIR) + +lib: + cd src && $(MAKE) posix-lib LMODDIR=$(LMODDIR) CMODDIR=$(CMODDIR) $(PLATS) clean: - cd src && $(MAKE) $@ + cd src && $(MAKE) $@ LMODDIR=$(LMODDIR) CMODDIR=$(CMODDIR) test: dummy src/lua -v -install: dummy - cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD) - cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN) - cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC) - cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB) - cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN) - -uninstall: - cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN) - cd src && cd $(INSTALL_INC) && $(RM) $(TO_INC) - cd src && cd $(INSTALL_LIB) && $(RM) $(TO_LIB) - cd doc && cd $(INSTALL_MAN) && $(RM) $(TO_MAN) - -local: - $(MAKE) install INSTALL_TOP=../install +install: all + $(MKDIR) $(DESTDIR)$(BINDIR) + cd src && $(INSTALL_EXEC) $(TO_BIN) $(DESTDIR)$(BINDIR) + $(MKDIR) $(DESTDIR)$(MANDIR)/man1 + cd doc && $(INSTALL_DATA) $(TO_MAN) $(DESTDIR)$(MANDIR)/man1 + $(MKDIR) $(DESTDIR)$(LMODDIR) + $(MKDIR) $(DESTDIR)$(CMODDIR) + +install-lib: + $(MKDIR) $(DESTDIR)$(INCLUDEDIR) + cd src && $(INSTALL_DATA) $(TO_INC) $(DESTDIR)$(INCLUDEDIR) + $(MKDIR) $(DESTDIR)$(LIBDIR) + cd src && $(INSTALL_DATA) $(TO_LIB) $(DESTDIR)$(LIBDIR) none: @echo "Please do 'make PLATFORM' where PLATFORM is one of these:" diff -Paur --no-dereference -- lua.upstream/src/ldo.c lua/src/ldo.c --- lua.upstream/src/ldo.c +++ lua/src/ldo.c @@ -62,9 +62,9 @@ #elif defined(LUA_USE_POSIX) /* }{ */ -/* in POSIX, try _longjmp/_setjmp (more efficient) */ -#define LUAI_THROW(L,c) _longjmp((c)->b, 1) -#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } +/* in POSIX, try siglongjmp/sigsetjmp (more efficient) */ +#define LUAI_THROW(L,c) siglongjmp((c)->b, 1) +#define LUAI_TRY(L,c,a) if (sigsetjmp((c)->b, 0) == 0) { a } #define luai_jmpbuf jmp_buf #else /* }{ */ @@ -72,7 +72,7 @@ /* ISO C handling with long jumps */ #define LUAI_THROW(L,c) longjmp((c)->b, 1) #define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } -#define luai_jmpbuf jmp_buf +#define luai_jmpbuf sigjmp_buf #endif /* } */ diff -Paur --no-dereference -- lua.upstream/src/lmathlib.c lua/src/lmathlib.c --- lua.upstream/src/lmathlib.c +++ lua/src/lmathlib.c @@ -24,7 +24,7 @@ #if !defined(l_rand) /* { */ -#if defined(LUA_USE_POSIX) +#if defined(LUA_USE_XSI) #define l_rand() random() #define l_srand(x) srandom(x) #define L_RANDMAX 2147483647 /* (2^31 - 1), following POSIX */ diff -Paur --no-dereference -- lua.upstream/src/luac.c lua/src/luac.c --- lua.upstream/src/luac.c +++ lua/src/luac.c @@ -265,7 +265,7 @@ case LUA_TNUMFLT: { char buff[100]; - sprintf(buff,LUA_NUMBER_FMT,fltvalue(o)); + snprintf(buff,sizeof(buff),LUA_NUMBER_FMT,fltvalue(o)); printf("%s",buff); if (buff[strspn(buff,"-0123456789")]=='\0') printf(".0"); break; diff -Paur --no-dereference -- lua.upstream/src/luaconf.h lua/src/luaconf.h --- lua.upstream/src/luaconf.h +++ lua/src/luaconf.h @@ -200,9 +200,6 @@ #else /* }{ */ -#define LUA_ROOT "/usr/local/" -#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" -#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" #define LUA_PATH_DEFAULT \ LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" \ diff -Paur --no-dereference -- lua.upstream/src/Makefile lua/src/Makefile --- lua.upstream/src/Makefile +++ lua/src/Makefile @@ -6,22 +6,19 @@ # Your platform. See PLATS for possible values. PLAT= none -CC= gcc -std=gnu99 -CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_2 $(SYSCFLAGS) $(MYCFLAGS) -LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) -LIBS= -lm $(SYSLIBS) $(MYLIBS) +CC?= gcc +CFLAGS?= -O2 +LDFLAGS?= +LIBS?= + +CFLAGS+= -std=c99 -Wall -Wextra -DLUA_COMPAT_5_2 \ + -DLUA_LDIR=\"$(LMODDIR)\" -DLUA_CDIR=\"$(CMODDIR)\" $(SYSCFLAGS) +LIBS+= -llua -lm $(SYSLIBS) -AR= ar rcu -RANLIB= ranlib +AR?= ar +RANLIB?= ranlib RM= rm -f -SYSCFLAGS= -SYSLDFLAGS= -SYSLIBS= - -MYCFLAGS= -MYLDFLAGS= -MYLIBS= MYOBJS= # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= @@ -43,7 +40,7 @@ LUAC_O= luac.o ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) -ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +ALL_T= $(LUA_T) $(LUAC_T) ALL_A= $(LUA_A) # Targets start here. @@ -56,17 +53,17 @@ a: $(ALL_A) $(LUA_A): $(BASE_O) - $(AR) $@ $(BASE_O) + $(AR) rcu $@ $(BASE_O) $(RANLIB) $@ -$(LUA_T): $(LUA_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) +$(LUA_T): $(LUA_O) + $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LIBS) -$(LUAC_T): $(LUAC_O) $(LUA_A) - $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) +$(LUAC_T): $(LUAC_O) + $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LIBS) clean: - $(RM) $(ALL_T) $(ALL_O) + $(RM) $(ALL_T) $(ALL_A) $(ALL_O) depend: @$(CC) $(CFLAGS) -MM l*.c @@ -119,7 +116,10 @@ $(MAKE) "LUAC_T=luac.exe" luac.exe posix: - $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX" + $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_READLINE" SYSLIBS="-lreadline -lterminfo" + +posix-lib: + $(MAKE) $(ALL_A) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_READLINE" SYSLIBS="-lreadline -lterminfo" solaris: $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN -D_REENTRANT" SYSLIBS="-ldl"