Skip to content

Commit

Permalink
Prepare for RaptorJIT 1.0 with installation fixes
Browse files Browse the repository at this point in the history
Fix installation paths.
Remove unnecessary installed files.
Add test for (and fix) bytecode file version compatibility.
  • Loading branch information
lukego committed Oct 14, 2018
1 parent d44450e commit 56a88b2
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 56 deletions.
71 changes: 23 additions & 48 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
MAJVER= 1
MINVER= 0
RELVER= 0
PREREL= -alpha1
PREREL=
VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL)
ABIVER= 5.1

Expand All @@ -33,40 +33,31 @@ DPREFIX= $(DESTDIR)$(PREFIX)
INSTALL_BIN= $(DPREFIX)/bin
INSTALL_LIB= $(DPREFIX)/$(MULTILIB)
INSTALL_SHARE= $(DPREFIX)/share
INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
INSTALL_INC= $(DPREFIX)/include/raptorjit-$(MAJVER).$(MINVER)

INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION)
INSTALL_LJLIBD= $(INSTALL_SHARE)/raptorjit-$(VERSION)
INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit
INSTALL_LMODD= $(INSTALL_SHARE)/lua
INSTALL_LMOD= $(INSTALL_LMODD)/$(ABIVER)
INSTALL_CMODD= $(INSTALL_LIB)/lua
INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER)
INSTALL_MAN= $(INSTALL_SHARE)/man/man1
INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig

INSTALL_TNAME= luajit-$(VERSION)
INSTALL_TSYMNAME= luajit
INSTALL_ANAME= libluajit-$(ABIVER).a
INSTALL_SOSHORT1= libluajit-$(ABIVER).so
INSTALL_SOSHORT2= libluajit-$(ABIVER).so.$(MAJVER)

INSTALL_TNAME= raptorjit-$(VERSION)
INSTALL_TSYMNAME= raptorjit
INSTALL_ANAME= libraptorjit-$(ABIVER).a
INSTALL_SOSHORT1= libraptorjit-$(ABIVER).so
INSTALL_SOSHORT2= libraptorjit-$(ABIVER).so.$(MAJVER)
INSTALL_SONAME= $(INSTALL_SOSHORT2).$(MINVER).$(RELVER)
INSTALL_DYLIBSHORT1= libluajit-$(ABIVER).dylib
INSTALL_DYLIBSHORT2= libluajit-$(ABIVER).$(MAJVER).dylib
INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib
INSTALL_PCNAME= luajit.pc
INSTALL_DYLIBSHORT1= libraptorjit-$(ABIVER).dylib
INSTALL_DYLIBSHORT2= libraptorjit-$(ABIVER).$(MAJVER).dylib
INSTALL_DYLIBNAME= libraptorjit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib

INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1)
INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2)
INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)

INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
$(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC) \
$(INSTALL_LMOD) $(INSTALL_LMODD) $(INSTALL_CMOD) $(INSTALL_CMODD)
INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) \
$(INSTALL_JITLIB)
UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC)

RM= rm -f
MKDIR= mkdir -p
Expand All @@ -76,19 +67,12 @@ INSTALL_X= install -m 0755
INSTALL_F= install -m 0644
UNINSTALL= $(RM)
LDCONFIG= ldconfig -n
SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \
-e "s|^multilib=.*|multilib=$(MULTILIB)|"

FILE_T= luajit
FILE_A= libluajit.a
FILE_SO= libluajit.so
FILE_MAN= luajit.1
FILE_PC= luajit.pc

FILE_T= raptorjit
FILE_A= libraptorjit.a
FILE_SO= libraptorjit.so
FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h
FILES_JITLIB= bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \
dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua \
dis_ppc.lua dis_mips.lua dis_mipsel.lua dis_mips64.lua \
dis_mips64el.lua vmdef.lua
FILES_JITLIB= bc.lua bcsave.lua vmdef.lua

ifeq (,$(findstring Windows,$(OS)))
HOST_SYS:= $(shell uname -s)
Expand All @@ -106,7 +90,7 @@ endif

##############################################################################

INSTALL_DEP= src/luajit
INSTALL_DEP= src/raptorjit

default all $(INSTALL_DEP):
@echo "==== Building RaptorJIT $(VERSION) ===="
Expand All @@ -127,24 +111,15 @@ install: $(INSTALL_DEP)
$(LDCONFIG) $(INSTALL_LIB) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
$(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
$(RM) $(FILE_PC).tmp
cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
@echo "==== Successfully installed RaptorJIT $(VERSION) to $(PREFIX) ===="
@echo ""
@echo "Note: the development releases deliberately do NOT install a symlink for luajit"
@echo "You can do this now by running this command (with sudo):"
@echo ""
@echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
$(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)
@echo ""


uninstall:
@echo "==== Uninstalling RaptorJIT $(VERSION) from $(PREFIX) ===="
$(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC)
$(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
for file in $(FILES_JITLIB); do \
$(UNINSTALL) $(INSTALL_JITLIB)/$$file; \
done
Expand Down
11 changes: 10 additions & 1 deletion default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,22 @@ let
old: { NIX_CFLAGS_COMPILE = "-Werror"; });
in

# Build RaptorJIT and run mulitple test suites.
# Build RaptorJIT and run multiple test suites.
{
raptorjit = raptorjit;
test-O3 = test "O3" "-O3";
test-O2 = test "O2" "-O2";
test-O1 = test "O1" "-O1";
test-nojit = test "nojit" "-joff";
# Test that generated bytecode is compatible
test-bytecode-compat = pkgs.runCommand "test-bytecode-compat"
{ buildInputs = [ raptorjit ]; }
''
echo "print('ok')" > test.lua
raptorjit -bg test.lua test.raw
raptorjit test.raw | grep ok
touch $out
'';
} //
(if check then { inherit nowarnings check-generated-code; } else {})

7 changes: 5 additions & 2 deletions raptorjit.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@ mkDerivation rec {
src = source;
buildInputs = [ luajit ]; # LuaJIT to bootstrap DynASM
dontStrip = true;
patchPhase = ''
substituteInPlace Makefile --replace "/usr/local" "$out"
'';
configurePhase = false;
installPhase = ''
install -D src/raptorjit $out/bin/raptorjit
install -D src/lj_dwarf.dwo $out/lib/raptorjit.dwo
make install PREFIX="$out"
'';

enableParallelBuilding = true; # Do 'make -j'
Expand Down
2 changes: 1 addition & 1 deletion src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ endif

TARGET_XCFLAGS+= -fno-stack-protector
TARGET_XLIBS+= -ldl
HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_LINUX
Host_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_LINUX

##############################################################################
# Files and pathnames.
Expand Down
2 changes: 1 addition & 1 deletion src/luaconf.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
#endif
#define LUA_LROOT "/usr/local"
#define LUA_LUADIR "/lua/5.1/"
#define LUA_LJDIR "/luajit-2.1.0-beta2/"
#define LUA_LJDIR "/raptorjit-1.0.0/"

#ifdef LUA_ROOT
#define LUA_JROOT LUA_ROOT
Expand Down
6 changes: 3 additions & 3 deletions src/luajit.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@

#include "lua.h"

#define LUAJIT_VERSION "RaptorJIT 1.0.0-alpha1"
#define LUAJIT_VERSION_NUM 100000 /* Version 1.0.0 = 01.00.00. */
#define LUAJIT_VERSION_SYM luaJIT_version_2_1_0_beta2
#define LUAJIT_VERSION "RaptorJIT 1.0.0"
#define LUAJIT_VERSION_NUM 10000 /* Version 1.0.0 = 01.00.00. */
#define LUAJIT_VERSION_SYM luaJIT_version_1_0_0

#define LUAJIT_URL "http://github.com/raptorjit/raptorjit"

Expand Down

0 comments on commit 56a88b2

Please sign in to comment.