- Build shared library in addition to static [1]

- Fix compilation with gcc43 [2]

PRs:		126659 [1], 126660 [2]
Submitted by:	Tim Niemueller <tim at niemueller dot de>
This commit is contained in:
Dmitry Marakasov 2008-08-19 20:40:20 +00:00
parent 276ae79a29
commit c138873fb4
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=218867
8 changed files with 286 additions and 1 deletions

View File

@ -7,7 +7,7 @@
PORTNAME= tolua++
PORTVERSION= 1.0.92
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= lang devel
MASTER_SITES= http://www.codenix.com/~tolua/ \
http://www.amdmi3.ru/distfiles/
@ -31,5 +31,6 @@ do-install:
${LN} -sf ${LUA_SUBDIR}/tolua++ ${PREFIX}/bin/tolua++-${LUA_VER}
${INSTALL_DATA} ${WRKSRC}/include/tolua++.h ${LUA_INCDIR}
${INSTALL_DATA} ${WRKSRC}/lib/libtolua++.a ${LUA_LIBDIR}
${INSTALL_DATA} ${WRKSRC}/lib/libtolua++.so ${LUA_LIBDIR}
.include <bsd.port.mk>

View File

@ -0,0 +1,130 @@
--- include/tolua++.h.orig 2006-04-27 05:33:40.000000000 +0200
+++ include/tolua++.h 2008-03-13 23:20:12.000000000 +0100
@@ -53,7 +53,7 @@
#define TOLUA_NOPEER LUA_REGISTRYINDEX /* for lua 5.1 */
TOLUA_API const char* tolua_typename (lua_State* L, int lo);
-TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err);
+TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err);
TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err);
TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err);
TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err);
@@ -84,16 +84,15 @@
TOLUA_API int tolua_register_gc (lua_State* L, int lo);
TOLUA_API int tolua_default_collect (lua_State* tolua_S);
-TOLUA_API void tolua_usertype (lua_State* L, char* type);
-TOLUA_API void tolua_beginmodule (lua_State* L, char* name);
+TOLUA_API void tolua_usertype (lua_State* L, const char* type);
+TOLUA_API void tolua_beginmodule (lua_State* L, const char* name);
TOLUA_API void tolua_endmodule (lua_State* L);
-TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar);
-TOLUA_API void tolua_class (lua_State* L, char* name, char* base);
-TOLUA_API void tolua_cclass (lua_State* L, char* lname, char* name, char* base, lua_CFunction col);
-TOLUA_API void tolua_function (lua_State* L, char* name, lua_CFunction func);
-TOLUA_API void tolua_constant (lua_State* L, char* name, double value);
-TOLUA_API void tolua_variable (lua_State* L, char* name, lua_CFunction get, lua_CFunction set);
-TOLUA_API void tolua_array (lua_State* L,char* name, lua_CFunction get, lua_CFunction set);
+TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar);
+TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col);
+TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func);
+TOLUA_API void tolua_constant (lua_State* L, const char* name, double value);
+TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set);
+TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set);
/* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */
/* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */
--- src/lib/tolua_is.c.orig 2005-12-19 02:13:05.000000000 +0100
+++ src/lib/tolua_is.c 2008-03-13 23:11:27.000000000 +0100
@@ -85,7 +85,7 @@
return lua_tostring(L,-1);
}
-TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err)
+TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err)
{
if (msg[0] == '#')
{
--- src/lib/tolua_map.c.orig 2006-03-13 23:37:49.000000000 +0100
+++ src/lib/tolua_map.c 2008-03-13 23:21:58.000000000 +0100
@@ -389,7 +389,7 @@
* It creates the correspoding metatable in the registry, for both 'type' and 'const type'.
* It maps 'const type' as being also a 'type'
*/
-TOLUA_API void tolua_usertype (lua_State* L, char* type)
+TOLUA_API void tolua_usertype (lua_State* L, const char* type)
{
char ctype[128] = "const ";
strncat(ctype,type,120);
@@ -403,7 +403,7 @@
/* Begin module
* It pushes the module (or class) table on the stack
*/
-TOLUA_API void tolua_beginmodule (lua_State* L, char* name)
+TOLUA_API void tolua_beginmodule (lua_State* L, const char* name)
{
if (name)
{
@@ -426,7 +426,7 @@
* It creates a new module
*/
#if 1
-TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar)
+TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar)
{
if (name)
{
@@ -462,7 +462,7 @@
lua_pop(L,1); /* pop module */
}
#else
-TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar)
+TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar)
{
if (name)
{
@@ -518,7 +518,7 @@
/* Map C class
* It maps a C class, setting the appropriate inheritance and super classes.
*/
-TOLUA_API void tolua_cclass (lua_State* L, char* lname, char* name, char* base, lua_CFunction col)
+TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col)
{
char cname[128] = "const ";
char cbase[128] = "const ";
@@ -577,7 +577,7 @@
/* Map function
* It assigns a function into the current module (or class)
*/
-TOLUA_API void tolua_function (lua_State* L, char* name, lua_CFunction func)
+TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func)
{
lua_pushstring(L,name);
lua_pushcfunction(L,func);
@@ -600,7 +600,7 @@
/* Map constant number
* It assigns a constant number into the current module (or class)
*/
-TOLUA_API void tolua_constant (lua_State* L, char* name, double value)
+TOLUA_API void tolua_constant (lua_State* L, const char* name, double value)
{
lua_pushstring(L,name);
tolua_pushnumber(L,value);
@@ -611,7 +611,7 @@
/* Map variable
* It assigns a variable into the current module (or class)
*/
-TOLUA_API void tolua_variable (lua_State* L, char* name, lua_CFunction get, lua_CFunction set)
+TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set)
{
/* get func */
lua_pushstring(L,".get");
@@ -663,7 +663,7 @@
/* Map an array
* It assigns an array into the current module (or class)
*/
-TOLUA_API void tolua_array (lua_State* L, char* name, lua_CFunction get, lua_CFunction set)
+TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set)
{
lua_pushstring(L,".get");
lua_rawget(L,-2);

View File

@ -0,0 +1,10 @@
--- src/lib/SCsub.orig 2005-11-28 16:51:15.000000000 +0300
+++ src/lib/SCsub 2008-08-19 22:57:11.000000000 +0400
@@ -9,5 +9,6 @@
'tolua_to.c',
]
-env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources)
+env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources)
+env.lib_target += env.SharedLibrary('#/lib/'+env['tolua_lib'], sources)

View File

@ -1,4 +1,5 @@
%%LUA_BINDIR%%/tolua++
bin/tolua++-%%LUA_VER%%
%%LUA_LIBDIR%%/libtolua++.a
%%LUA_LIBDIR%%/libtolua++.so
%%LUA_INCDIR%%/tolua++.h

View File

@ -7,6 +7,7 @@
PORTNAME= tolua++
PORTVERSION= 1.0.92
PORTREVISION= 1
PKGNAMESUFFIX= 50
CATEGORIES= lang devel
MASTER_SITES= http://www.codenix.com/~tolua/ \
@ -28,5 +29,6 @@ do-install:
${LN} -sf ${LUA_SUBDIR}/tolua++ ${PREFIX}/bin/tolua++-${LUA_VER}
${INSTALL_DATA} ${WRKSRC}/include/tolua++.h ${LUA_INCDIR}
${INSTALL_DATA} ${WRKSRC}/lib/libtolua++.a ${LUA_LIBDIR}
${INSTALL_DATA} ${WRKSRC}/lib/libtolua++.so ${LUA_LIBDIR}
.include <bsd.port.mk>

View File

@ -0,0 +1,130 @@
--- include/tolua++.h.orig 2006-04-27 05:33:40.000000000 +0200
+++ include/tolua++.h 2008-03-13 23:20:12.000000000 +0100
@@ -53,7 +53,7 @@
#define TOLUA_NOPEER LUA_REGISTRYINDEX /* for lua 5.1 */
TOLUA_API const char* tolua_typename (lua_State* L, int lo);
-TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err);
+TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err);
TOLUA_API int tolua_isnoobj (lua_State* L, int lo, tolua_Error* err);
TOLUA_API int tolua_isvalue (lua_State* L, int lo, int def, tolua_Error* err);
TOLUA_API int tolua_isboolean (lua_State* L, int lo, int def, tolua_Error* err);
@@ -84,16 +84,15 @@
TOLUA_API int tolua_register_gc (lua_State* L, int lo);
TOLUA_API int tolua_default_collect (lua_State* tolua_S);
-TOLUA_API void tolua_usertype (lua_State* L, char* type);
-TOLUA_API void tolua_beginmodule (lua_State* L, char* name);
+TOLUA_API void tolua_usertype (lua_State* L, const char* type);
+TOLUA_API void tolua_beginmodule (lua_State* L, const char* name);
TOLUA_API void tolua_endmodule (lua_State* L);
-TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar);
-TOLUA_API void tolua_class (lua_State* L, char* name, char* base);
-TOLUA_API void tolua_cclass (lua_State* L, char* lname, char* name, char* base, lua_CFunction col);
-TOLUA_API void tolua_function (lua_State* L, char* name, lua_CFunction func);
-TOLUA_API void tolua_constant (lua_State* L, char* name, double value);
-TOLUA_API void tolua_variable (lua_State* L, char* name, lua_CFunction get, lua_CFunction set);
-TOLUA_API void tolua_array (lua_State* L,char* name, lua_CFunction get, lua_CFunction set);
+TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar);
+TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col);
+TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func);
+TOLUA_API void tolua_constant (lua_State* L, const char* name, double value);
+TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set);
+TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set);
/* TOLUA_API void tolua_set_call_event(lua_State* L, lua_CFunction func, char* type); */
/* TOLUA_API void tolua_addbase(lua_State* L, char* name, char* base); */
--- src/lib/tolua_is.c.orig 2005-12-19 02:13:05.000000000 +0100
+++ src/lib/tolua_is.c 2008-03-13 23:11:27.000000000 +0100
@@ -85,7 +85,7 @@
return lua_tostring(L,-1);
}
-TOLUA_API void tolua_error (lua_State* L, char* msg, tolua_Error* err)
+TOLUA_API void tolua_error (lua_State* L, const char* msg, tolua_Error* err)
{
if (msg[0] == '#')
{
--- src/lib/tolua_map.c.orig 2006-03-13 23:37:49.000000000 +0100
+++ src/lib/tolua_map.c 2008-03-13 23:21:58.000000000 +0100
@@ -389,7 +389,7 @@
* It creates the correspoding metatable in the registry, for both 'type' and 'const type'.
* It maps 'const type' as being also a 'type'
*/
-TOLUA_API void tolua_usertype (lua_State* L, char* type)
+TOLUA_API void tolua_usertype (lua_State* L, const char* type)
{
char ctype[128] = "const ";
strncat(ctype,type,120);
@@ -403,7 +403,7 @@
/* Begin module
* It pushes the module (or class) table on the stack
*/
-TOLUA_API void tolua_beginmodule (lua_State* L, char* name)
+TOLUA_API void tolua_beginmodule (lua_State* L, const char* name)
{
if (name)
{
@@ -426,7 +426,7 @@
* It creates a new module
*/
#if 1
-TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar)
+TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar)
{
if (name)
{
@@ -462,7 +462,7 @@
lua_pop(L,1); /* pop module */
}
#else
-TOLUA_API void tolua_module (lua_State* L, char* name, int hasvar)
+TOLUA_API void tolua_module (lua_State* L, const char* name, int hasvar)
{
if (name)
{
@@ -518,7 +518,7 @@
/* Map C class
* It maps a C class, setting the appropriate inheritance and super classes.
*/
-TOLUA_API void tolua_cclass (lua_State* L, char* lname, char* name, char* base, lua_CFunction col)
+TOLUA_API void tolua_cclass (lua_State* L, const char* lname, const char* name, const char* base, lua_CFunction col)
{
char cname[128] = "const ";
char cbase[128] = "const ";
@@ -577,7 +577,7 @@
/* Map function
* It assigns a function into the current module (or class)
*/
-TOLUA_API void tolua_function (lua_State* L, char* name, lua_CFunction func)
+TOLUA_API void tolua_function (lua_State* L, const char* name, lua_CFunction func)
{
lua_pushstring(L,name);
lua_pushcfunction(L,func);
@@ -600,7 +600,7 @@
/* Map constant number
* It assigns a constant number into the current module (or class)
*/
-TOLUA_API void tolua_constant (lua_State* L, char* name, double value)
+TOLUA_API void tolua_constant (lua_State* L, const char* name, double value)
{
lua_pushstring(L,name);
tolua_pushnumber(L,value);
@@ -611,7 +611,7 @@
/* Map variable
* It assigns a variable into the current module (or class)
*/
-TOLUA_API void tolua_variable (lua_State* L, char* name, lua_CFunction get, lua_CFunction set)
+TOLUA_API void tolua_variable (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set)
{
/* get func */
lua_pushstring(L,".get");
@@ -663,7 +663,7 @@
/* Map an array
* It assigns an array into the current module (or class)
*/
-TOLUA_API void tolua_array (lua_State* L, char* name, lua_CFunction get, lua_CFunction set)
+TOLUA_API void tolua_array (lua_State* L, const char* name, lua_CFunction get, lua_CFunction set)
{
lua_pushstring(L,".get");
lua_rawget(L,-2);

View File

@ -0,0 +1,10 @@
--- src/lib/SCsub.orig 2005-11-28 16:51:15.000000000 +0300
+++ src/lib/SCsub 2008-08-19 22:57:11.000000000 +0400
@@ -9,5 +9,6 @@
'tolua_to.c',
]
-env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources)
+env.lib_target = env.Library('#/lib/'+env['tolua_lib'], sources)
+env.lib_target += env.SharedLibrary('#/lib/'+env['tolua_lib'], sources)

View File

@ -1,4 +1,5 @@
%%LUA_BINDIR%%/tolua++
bin/tolua++-%%LUA_VER%%
%%LUA_LIBDIR%%/libtolua++.a
%%LUA_LIBDIR%%/libtolua++.so
%%LUA_INCDIR%%/tolua++.h