1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
# Use with GNU Make.
# Lrexlib version
VERSION = 2.9.2
# User Settings ------------------------------------------------------------
# Target Lua version (51 for Lua 5.1, etc.)
LUAVERSION = 51
LUADOTVERSION = $(subst 5,5.,$(LUAVERSION))
# Target bitness: 32 or 64
DIRBIT = 32
# GCC location (GCC32 and GCC64 are defined environment variables)
PATH = $(GCC$(DIRBIT))
# INSTALLPATH : Path to install the built DLL.
# LUADLL : Lua DLL to link to (.dll should be omitted).
# LUAEXE : Lua interpreter.
# LUAINC : Path of Lua include files.
# LIBPATH : Path of lua51.dll, lua52.dll, pcre.dll, etc.
INSTALLPATH = S:\Progr\Exe\lib$(DIRBIT)\lua\$(LUADOTVERSION)
LUADLL = lua$(LUAVERSION)
LUAINC = $(PATH_SYSTEM)\include\lua\$(LUADOTVERSION)
LIBPATH = $(CROOT)\Programs\EXE$(DIRBIT)
ifeq ($(LUAVERSION),51)
LUAEXE = $(LIBPATH)\lua.exe
CREATEGLOBAL = -DREX_CREATEGLOBALVAR
else
LUAEXE = $(LIBPATH)\lua$(LUAVERSION).exe
endif
# --------------------------------------------------------------------------
BIN = $(PROJECT).dll
BININSTALL = $(INSTALLPATH)\$(BIN)
CC = gcc
AR = ar rcu
RANLIB = ranlib
CFLAGS = -W -Wall -O2 $(INCS) -DREX_OPENLIB=luaopen_$(PROJECT) \
-DREX_LIBNAME=\"$(PROJECT)\" -DVERSION=\"$(VERSION)\" \
-m$(DIRBIT) $(CREATEGLOBAL) $(MYCFLAGS)
DEFFILE = $(PROJECT).def
EXPORTED = luaopen_$(PROJECT)
INCS = -I$(LUAINC) $(MYINCS)
LIBS = -l$(LUADLL) -m$(DIRBIT) -s $(MYLIBS)
SRCPATH = ..\..\src
TESTPATH = ..\..\test
.PHONY: all install test vtest clean
vpath %.c $(SRCPATH);$(SRCPATH)\$(PROJDIR)
vpath %.h $(SRCPATH);$(SRCPATH)\$(PROJDIR)
all: $(BIN)
clean:
del $(OBJ) $(BIN) $(DEFFILE)
install: $(BININSTALL)
test:
cd $(TESTPATH) && $(LUAEXE) runtest.lua $(TESTNAME) -d$(CURDIR)
vtest:
cd $(TESTPATH) && $(LUAEXE) runtest.lua -v $(TESTNAME) -d$(CURDIR)
$(BIN): $(OBJ) $(DEFFILE)
$(CC) $(DEFFILE) $(OBJ) -L$(LIBPATH) $(LIBS) -o $@ -shared
lib$(PROJECT)$(LUAVERSION).a: $(OBJ)
$(AR) $@ $?
$(RANLIB) $@
$(DEFFILE):
echo EXPORTS > $@
for %%d in ($(EXPORTED)) do echo %%d>> $@
$(BININSTALL): $(BIN)
copy /Y $< $@
|