🔧 build: 修改 makefile

develop
xiaojin 5 years ago
parent 3818bdcad8
commit 841999c589

@ -1,19 +0,0 @@
Copyright (C) 2010-2013 nsf <no.smile.face@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

@ -21,6 +21,9 @@ SHIFTTIMER_SO = $(LUA_CLIB_PATH)/shiftimer.so
CLUA_SO = $(LUA_CLIB_PATH)/clua.so
AOI_SO = $(LUA_CLIB_PATH)/aoi.so
ECS_SO = $(LUA_CLIB_PATH)/ecs.so
LUASOCKET_SO = $(LUA_CLIB_PATH)/socket.so
TERMFX_SO = $(LUA_CLIB_PATH)/termfx.so
RC4_SO = $(LUA_CLIB_PATH)/rc4.so
#####################################################
all: $(LFS_SO) \
@ -31,6 +34,9 @@ all: $(LFS_SO) \
$(SHIFTTIMER_SO) \
$(AOI_SO) \
$(ECS_SO) \
$(LUASOCKET_SO) \
$(TERMFX_SO) \
$(RC4_SO) \
$(CLUA_SO)
#####################################################
@ -61,11 +67,25 @@ $(CLUA_SO):
$(ECS_SO):
cd lua-ecs && $(MAKE) PLAT=$(PLAT)
#####################################################
$(RC4_SO):
cd lua-rc4 && $(MAKE) PLAT=$(PLAT)
$(TERMFX_SO):
cd lua-termfx && $(MAKE)
cp -f lua-termfx/termfx.so $@
$(LUASOCKET_SO):
cd luasocket && $(MAKE) DEBUG=DEBUG PLAT=$(PLAT) LUAINC_$(PLAT)=$(SKYNET_ROOT)/3rd/lua/ CDIR_$(PLAT)=$(SKYNET_ROOT)/3rd/lua/ LDIR_$(PLAT)=$(SKYNET_ROOT)/3rd/lua/
cp -f luasocket/src/socket-3.0-rc1.so $@
#####################################################
cleanall:
rm -f $(LUA_CLIB_PATH)/*.so && \
rm -rf $(LUA_CLIB_PATH)/*.dSYM && \
rm -f $(LUA_CLIB_PATH)/*.o
rm -f $(LUA_CLIB_PATH)/*.o && \
cd lua-termfx && $(MAKE) clean && \
cd .. && \
cd luasocket && $(MAKE) clean && \
cd ../../
.PHONY: all cleanall

@ -1,26 +1,30 @@
PROJECT = rc4
SRC = .
INC = -I. -I/usr/local/include
CC = gcc
CC_FLAGS = -O2 -fPIC $(INC) -Wall -Wextra -c
SKYNET_ROOT ?= ../../skynet
include $(SKYNET_ROOT)/platform.mk
SRC_C = $(foreach dir, $(SRC), $(wildcard $(dir)/*.c))
OBJ_C = $(patsubst %.c, %.o, $(SRC_C))
OBJ = $(OBJ_C)
PLAT ?= none
.PHONY : all
all: $(PROJECT).so
TARGET = ../../luaclib/rc4.so
$(PROJECT).so: $(OBJ)
ld -shared $(OBJ) -o $(PROJECT).so
ifdef OUTPUT
cp -f $(PROJECT).so $(OUTPUT)
ifeq ($(PLAT), macosx)
CFLAGS = -g -O2 -dynamiclib -Wl,-undefined,dynamic_lookup
else
ifeq ($(PLAT), linux)
CFLAGS = -g -O2 -shared -fPIC
endif
endif
LUA_LIB ?= $(SKYNET_ROOT)/3rd/lua/
LUA_INC ?= $(SKYNET_ROOT)/3rd/lua/
SKYNET_SRC ?= $(SKYNET_ROOT)/skynet-src
SRC = .
.PHONY: all clean
all: $(TARGET)
$(OBJ_C) : %.o : %.c
$(CC) $(CC_FLAGS) -o $@ $<
$(TARGET): $(foreach dir, $(SRC), $(wildcard $(dir)/*.c))
$(CC) $(CFLAGS) $(SHARED) -I$(LUA_INC) -I$(SKYNET_SRC) $^ -o $@
.PHONY : clean
clean:
rm -f $(PROJECT).so $(OBJ)
rm -f *.o $(TARGET)

@ -3,14 +3,15 @@
# Gunnar Zötl <gz@tset.de>, 2014-2015.
# Released under the terms of the MIT license. See file LICENSE for details.
TERMBOX = ../../3rd//termbox_next
TERMBOX = ../../3rd/termbox_next
SKYNET_ROOT ?= ../../skynet
# try some automatic discovery. If that does not work for you, just set
# the following values manually.
OS = $(shell uname -s)
LUAVERSION = $(shell lua -e "print(string.match(_VERSION, '%d+%.%d+'))")
LUA_BINDIR = $(shell dirname `which lua`)
LUAROOT = $(shell dirname $(LUA_BINDIR))
# LUA_BINDIR = $(shell dirname `which lua`)
# LUAROOT = $(shell dirname $(LUA_BINDIR))
OBJS = termfx.o termfx_color.o tbutils.o
@ -18,8 +19,9 @@ TARGET = termfx.so
CC = gcc
CFLAGS = -fPIC -Wall
LUA_INCDIR = $(LUAROOT)/include
LUA_LIBDIR = $(LUAROOT)/lib
LUA_INCDIR ?= $(SKYNET_ROOT)/3rd/lua/
LUA_LIBDIR ?= $(SKYNET_ROOT)/3rd/lua/
# OS specialities
ifeq ($(OS),Darwin)

@ -21,3 +21,13 @@ print("profile", profile)
local clua = require "clua"
print("clua", clua)
local rc4 = require "rc4.c"
print("rc4", rc4)
local termfx = require "termfx"
print("termfx", termfx)
local socket = require "socket"
print("socket", socket)

@ -1,19 +1,18 @@
-- sample for termfx
-- Gunnar Zötl <gz@tset.de>, 2014-2015
-- Released under the terms of the MIT license. See file LICENSE for details.
tfx = require "termfx"
tfx.init()
function makespr(s, fg, bg)
local c = "-:+=%ZXH#"
local spr = tfx.newbuffer(s, s/2)
local spr = tfx.newbuffer(s, s / 2)
spr:attributes(fg, bg)
for y=1, s/2 do
for x=1, s do
local lx, ly = (x-0.5)/s, (2*y-1)/s
local v = math.floor((math.sin(lx*math.pi) + math.sin(ly*math.pi)) / 2 * #c)
for y = 1, s / 2 do
for x = 1, s do
local lx, ly = (x - 0.5) / s, (2 * y - 1) / s
local v = math.floor((math.sin(lx * math.pi) + math.sin(ly * math.pi)) / 2 * #c)
local ch = string.sub(c, v, v)
spr:setcell(x, y, ch)
end
@ -27,14 +26,14 @@ ok, err = pcall(function()
local sprites = {}
local blit2screen = true
for i=1, 5 do
sprites[i] = makespr(2^(i+2), i+1, tfx.color.BLACK)
for i = 1, 5 do
sprites[i] = makespr(2 ^ (i + 2), i + 1, tfx.color.BLACK)
end
local snum = 1
local spr = sprites[snum]
local sw, sh = spr:width(), spr:height()
local x, y = 1-sw, 1-sh
local x, y = 1 - sw, 1 - sh
local xo, yo = 1, 1
local fw, fh = tfx.width(), tfx.height()
local target = tfx.newbuffer(fw - 2, fh - 2)
@ -53,12 +52,17 @@ ok, err = pcall(function()
end
x = x + xo
if x > w or x < 1-sw then xo = -xo end
if x > w or x < 1 - sw then
xo = -xo
end
y = y + yo
if y > h or y < 1-sh then yo = -yo end
if y > h or y < 1 - sh then
yo = -yo
end
tfx.printat(1, tfx.height(), "print 1.."..#sprites.." for sprite size, t to toggle blit to screen or buffer, q to quit")
tfx.printat(1, 1, "Current size: "..snum.." ("..spr:width().."x"..spr:height()..")")
tfx.printat(1, tfx.height(),
"print 1.." .. #sprites .. " for sprite size, t to toggle blit to screen or buffer, q to quit")
tfx.printat(1, 1, "Current size: " .. snum .. " (" .. spr:width() .. "x" .. spr:height() .. ")")
tfx.present()
evt = tfx.pollevent(333)
@ -66,8 +70,14 @@ ok, err = pcall(function()
if snum >= 1 and snum <= #sprites then
spr = sprites[snum]
sw, sh = spr:width(), spr:height()
if x < 1-sw then x = 1-sw xo = 1 end
if y < 1-sh then y = 1-sh yo = 1 end
if x < 1 - sw then
x = 1 - sw
xo = 1
end
if y < 1 - sh then
y = 1 - sh
yo = 1
end
end
if evt and evt.char == 't' then
@ -78,4 +88,6 @@ ok, err = pcall(function()
end)
tfx.shutdown()
if not ok then print("Error: "..err) end
if not ok then
print("Error: " .. err)
end

@ -1,7 +1,6 @@
-- sample for termfx
-- Gunnar Zötl <gz@tset.de>, 2014-2015
-- Released under the terms of the MIT license. See file LICENSE for details.
--[[ screenshot.lua
a simple screenshot facility for termfx programs, outputs html in
a string. Cell colors and attributes are preserved. Note, this only
@ -21,19 +20,17 @@
html = screenshot(buf)
-- then write it to a file, surrounded by a html template as necessary.
--]]
local tfx = require "termfx"
--]] local tfx = require "termfx"
local function to_html(scr)
local fg, bg
local res = { "<pre>" }
for y=1, scr.h do
for x=1, scr.w do
local res = {"<pre>"}
for y = 1, scr.h do
for x = 1, scr.w do
local cel = scr[y][x]
if fg ~= cel.fg or bg ~= cel.bg then
if fg then
res[#res+1] = "</span>"
res[#res + 1] = "</span>"
end
local fgcol, fgattr = tfx.colorinfo(cel.fg % 256), math.floor(cel.fg / 256)
local bgcol = tfx.colorinfo(cel.bg % 256)
@ -50,17 +47,17 @@ local function to_html(scr)
fgcol, bgcol = bgcol, fgcol
end
res[#res+1] = string.format('<span style="color: %s; background-color: %s', fgcol, bgcol)
res[#res+1] = weight .. style
res[#res+1] = '">'
res[#res + 1] = string.format('<span style="color: %s; background-color: %s', fgcol, bgcol)
res[#res + 1] = weight .. style
res[#res + 1] = '">'
fg = cel.fg
bg = cel.bg
end
res[#res+1] = string.format('%c', cel.ch)
res[#res + 1] = string.format('%c', cel.ch)
end
res[#res+1] = "<br>"
res[#res + 1] = "<br>"
end
res[#res+1] = "</span></pre>"
res[#res + 1] = "</span></pre>"
return table.concat(res)
end
@ -68,16 +65,21 @@ local function screenshot(buf)
local w, h, getcell
if buf then
w, h = buf:size()
getcell = function(x, y) return buf:getcell(x, y) end
getcell = function(x, y)
return buf:getcell(x, y)
end
else
w, h = tfx.size()
getcell = tfx.getcell
end
local res = {w = w, h = h}
for y=1, h do
local res = {
w = w,
h = h,
}
for y = 1, h do
res[y] = {}
for x=1, w do
for x = 1, w do
res[y][x] = getcell(x, y)
end
end

@ -1,7 +1,6 @@
-- sample for termfx
-- Gunnar Zötl <gz@tset.de>, 2014-2015
-- Released under the terms of the MIT license. See file LICENSE for details.
--[[
simpleui.lua
@ -34,18 +33,18 @@ local function draw_box(x, y, w, h)
local hcell = tfx.newcell('-')
local vcell = tfx.newcell('|')
for i = x, x+w do
tfx.setcell(i, y-1, hcell)
tfx.setcell(i, y+h, hcell)
for i = x, x + w do
tfx.setcell(i, y - 1, hcell)
tfx.setcell(i, y + h, hcell)
end
for i = y, y+h do
tfx.setcell(x-1, i, vcell)
tfx.setcell(x+w, i, vcell)
for i = y, y + h do
tfx.setcell(x - 1, i, vcell)
tfx.setcell(x + w, i, vcell)
end
tfx.setcell(x-1, y-1, ccell)
tfx.setcell(x-1, y+h, ccell)
tfx.setcell(x+w, y-1, ccell)
tfx.setcell(x+w, y+h, ccell)
tfx.setcell(x - 1, y - 1, ccell)
tfx.setcell(x - 1, y + h, ccell)
tfx.setcell(x + w, y - 1, ccell)
tfx.setcell(x + w, y + h, ccell)
tfx.rect(x, y, w, h, ' ', fg, bg)
end
@ -54,8 +53,12 @@ _M.box = draw_box
local function frame(w, h)
local tw, th = tfx.size()
if w + 2 > tw then w = tw - 2 end
if h + 2 > th then h = th - 2 end
if w + 2 > tw then
w = tw - 2
end
if h + 2 > th then
h = th - 2
end
local x = math.floor((tw - w) / 2)
local y = math.floor((th - h) / 2)
@ -66,14 +69,16 @@ end
function _M.ask(msg)
local mw = #msg
if mw < 6 then mw = 6 end
if mw < 6 then
mw = 6
end
local x, y, w, h = frame(mw, 3)
tfx.printat(x, y, msg, w)
local p = x + math.floor((w - 6) / 2)
tfx.attributes(tfx.color.BLACK, tfx.color.GREEN)
tfx.printat(p, y+2, "Yes")
tfx.printat(p, y + 2, "Yes")
tfx.attributes(tfx.color.BLACK, tfx.color.RED)
tfx.printat(p+4, y+2, "No")
tfx.printat(p + 4, y + 2, "No")
tfx.present()
local answer = nil
@ -94,7 +99,7 @@ function _M.message(msg)
tfx.printat(x, y, msg, w)
local p = x + math.floor((w - 2) / 2)
tfx.attributes(tfx.color.BLACK, tfx.color.GREEN)
tfx.printat(p, y+2, "Ok")
tfx.printat(p, y + 2, "Ok")
tfx.present()
local evt
@ -106,15 +111,19 @@ end
function _M.select(msg, tbl)
local mw = #msg
local mh = #tbl
if mh > 9 then mh = 9 end
for i=1, mh do
if mw < #tbl[i] + 2 then mw = #tbl[i] + 2 end
if mh > 9 then
mh = 9
end
for i = 1, mh do
if mw < #tbl[i] + 2 then
mw = #tbl[i] + 2
end
end
local x, y, w, h = frame(mw, mh+2)
local x, y, w, h = frame(mw, mh + 2)
tfx.printat(x, y, msg, w)
for i=1, mh do
tfx.printat(x, y+1+i, i.." "..tbl[i], w)
for i = 1, mh do
tfx.printat(x, y + 1 + i, i .. " " .. tbl[i], w)
end
tfx.present()

Loading…
Cancel
Save