Skip to content

Commit a72296f

Browse files
committed
Merge pull request #36 from andyque/fix-lua-compile
upgrade luajit to 2.0.3 and improve the output
2 parents 357f7da + 830f59c commit a72296f

File tree

6 files changed

+79
-23
lines changed

6 files changed

+79
-23
lines changed

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,27 @@
1919
*.exe
2020
*.out
2121
*.app
22+
/build/android/
23+
/build/ios/
24+
/build/mac/
25+
/build/tizen/
26+
/contrib/android-arm/
27+
/contrib/android-armv7/
28+
/contrib/android-x86/
29+
/contrib/install-android/
30+
/contrib/install-ios/
31+
/contrib/install-mac/
32+
/contrib/ios-arm64/
33+
/contrib/ios-armv7/
34+
/contrib/ios-armv7s/
35+
/contrib/ios-i386/
36+
/contrib/ios-x86_64/
37+
/contrib/mac-x86_64/
38+
/contrib/tarballs/Chipmunk-6.2.1/
39+
/contrib/tarballs/cjson/
40+
/contrib/tarballs/curl-7.39.0/
41+
/contrib/tarballs/libwebp-0.4.2/
42+
/contrib/tarballs/libwebsockets-1.3-chrome37-firefox30/
43+
/build/tizen.zip
44+
/build/log.txt
45+
/contrib/tarballs/LuaJIT-2.0.3/

build/build.sh

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -243,25 +243,21 @@ function create_fat_library()
243243
LIPO="xcrun -sdk iphoneos lipo"
244244
STRIP="xcrun -sdk iphoneos strip"
245245

246-
if [ -f $cfg_platform_name/$library_name/prebuilt/lib$library_name.a ]; then
247-
echo "removing old fat library..."
248-
rm $cfg_platform_name/$library_name/prebuilt/lib$library_name.a
249-
fi
250-
251-
all_static_libs=$(find $cfg_platform_name/$library_name/prebuilt -type f -name "lib$library_name.a")
246+
all_static_libs=$(find $cfg_platform_name -type f -name "lib$library_name.a")
252247

253248
echo "create fat library lib$library_name for $all_static_libs"
249+
if [ ! -d $cfg_platform_name/libs ];then
250+
mkdir -p $cfg_platform_name/libs
251+
fi
252+
254253
$LIPO -create $all_static_libs \
255-
-output $cfg_platform_name/lib$library_name.a
254+
-output $cfg_platform_name/libs/lib$library_name.a
256255

257256
# rm $all_static_libs
258257

259258
# remove debugging info don't strip
260259
# $STRIP -S $library_name/prebuilt/lib$library_name.a
261-
$LIPO -info $cfg_platform_name/lib$library_name.a
262-
263-
rm $all_static_libs
264-
rm -rf $cfg_platform_name/$library_name/prebuilt
260+
$LIPO -info $cfg_platform_name/libs/lib$library_name.a
265261
}
266262

267263

@@ -298,7 +294,7 @@ do
298294
ignore_arch_library=${lib}_ignore_arch_list
299295
ignore_arch_list=(${!ignore_arch_library})
300296
ignore_arch_list_array=(${ignore_arch_list//,/ })
301-
if [ ! -z ${ignore_arch_list} ]; then
297+
if [ ! -z ${ignore_arch_list} ] && [ $cfg_platform_name = "ios" ]; then
302298
echo ${ignore_arch_list}
303299
if [ $(contains "${ignore_arch_list_array[@]}" $arch) == "y" ];then
304300
echo "ingore $lib for $arch"
@@ -374,7 +370,7 @@ do
374370

375371
cd -
376372

377-
local_library_install_path=$cfg_platform_name/$original_arch_name
373+
local_library_install_path=$cfg_platform_name/$original_arch_name/libs
378374

379375
if [ ! -d $local_library_install_path ]; then
380376
echo "create folder for library with specify arch. $local_library_install_path"
@@ -400,10 +396,7 @@ do
400396

401397
for dep_archive in ${original_dependent_archive_list[@]}
402398
do
403-
local_library_install_path=$cfg_platform_name/${dep_archive}/prebuilt/$original_arch_name
404-
if [ $cfg_platform_name = "android"] || [ $cfg_platform_name = "linux" ];then
405-
local_library_install_path=$cfg_platform_name/$original_arch_name
406-
fi
399+
local_library_install_path=$cfg_platform_name/$original_arch_name
407400
mkdir -p $local_library_install_path
408401
cp $top_dir/contrib/$install_library_path/$arch/lib/lib${dep_archive}.a $local_library_install_path/lib${dep_archive}.a
409402

@@ -412,11 +405,24 @@ do
412405

413406

414407
echo "Copying needed heder files"
415-
mkdir -p $cfg_platform_name/$arch/include/$archive_name
408+
#copy header files for ios & mac
409+
if [ $cfg_platform_name = "ios" ] || [ $cfg_platform_name = "mac" ];then
410+
if [ ! -d $top_dir/build/$cfg_platform_name/include/$archive_name ];then
411+
mkdir -p $top_dir/build/$cfg_platform_name/include/$archive_name
412+
fi
413+
fi
414+
415+
mkdir -p $cfg_platform_name/$original_arch_name/include/$archive_name
416416
copy_include_file_path=${lib}_header_files
417417
src_directory=$top_dir/contrib/$install_library_path/$arch/include/${!copy_include_file_path}
418418
echo $src_directory
419-
destination_header_path=$cfg_platform_name/$arch/include/$archive_name/
419+
destination_header_path=$cfg_platform_name/$original_arch_name/include/$archive_name/
420+
421+
if [ $cfg_platform_name = "ios" ] || [ $cfg_platform_name = "mac" ];then
422+
destination_header_path=$cfg_platform_name/include/$archive_name
423+
fi
424+
425+
420426
if [ -d $src_directory ];then
421427
cp -r $src_directory/* $destination_header_path
422428
else
@@ -450,3 +456,12 @@ do
450456
fi
451457

452458
done
459+
460+
# do some cleanup work
461+
if [ $cfg_platform_name = "ios" ] || [ $cfg_platform_name = "mac" ];then
462+
build_arches=("arm64" "armv7" "armv7s" "i386" "x86_64")
463+
for arch in ${build_arches[@]}
464+
do
465+
rm -rf $cfg_platform_name/$arch
466+
done
467+
fi

build/main.ini

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ cfg_all_valid_platforms=(ios mac android linux win32 tizen)
55
#copy libraries header files
66
png_header_files=png*.h
77
luajit_header_files=luajit-2.0
8-
lua_header_files=l*.h*
8+
lua_header_files=l[au]*.h*
99
curl_header_files=curl
1010
freetype_header_files=freetype2
1111
jpeg_header_files=j*.h
@@ -49,7 +49,8 @@ openssl_dependent_archive_list=crypto
4949
##ignore arch list for specify libraries
5050
#because luajit doesn't support arm64!
5151
#luajit_ignore_arch_list=armv7,armv7s,arm64
52-
luajit_ignore_arch_list=arm64
52+
luajit_ignore_arch_list=arm64,x86_64
53+
lua_ignore_arch_list=i386,armv7,armv7s
5354

5455
#clean up flag
5556
cfg_is_cleanup_after_build=no

contrib/src/luajit/SHA512SUMS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
a5af5772d00dfedcf1c3449b1d74d45af25d111c91931735ad80f2c7a3b7837b51807eb3a0ce12688e38352ad32cdd70bea35b53906c945ddf86dfd706118518 luajit-2.0.1.tar.gz
1+
7b3e3de22ac3602299b5918b60801e45a3278e547a15c16fdae7359538d4ada27ba664935d5f97c7409f330c2f8efeaae9ea03415f5e9d5a9d81e022cd5d36e0 luajit-2.0.3.tar.gz

contrib/src/luajit/ldsize-512.patch

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/src/luaconf.h b/src/luaconf.h
2+
index affb7da..52abe0e 100644
3+
--- a/src/luaconf.h
4+
+++ b/src/luaconf.h
5+
@@ -106,7 +106,7 @@
6+
7+
/* Note: changing the following defines breaks the Lua 5.1 ABI. */
8+
#define LUA_INTEGER ptrdiff_t
9+
-#define LUA_IDSIZE 60 /* Size of lua_Debug.short_src. */
10+
+#define LUA_IDSIZE 512 /* Size of lua_Debug.short_src. */
11+
/*
12+
** Size of lauxlib and io.* on-stack buffers. Weird workaround to avoid using
13+
** unreasonable amounts of stack space, but still retain ABI compatibility.

contrib/src/luajit/rules.mak

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# luajit
22

3-
LUAJIT_VERSION := 2.0.1
3+
LUAJIT_VERSION := 2.0.3
44
LUAJIT_URL := http://luajit.org/download/LuaJIT-$(LUAJIT_VERSION).tar.gz
55

66
$(TARBALLS)/luajit-$(LUAJIT_VERSION).tar.gz:
@@ -12,6 +12,9 @@ luajit: luajit-$(LUAJIT_VERSION).tar.gz .sum-luajit
1212
$(UNPACK)
1313
ifeq ($(LUAJIT_VERSION),2.0.1)
1414
$(APPLY) $(SRC)/luajit/v2.0.1_hotfix1.patch
15+
endif
16+
ifeq ($(LUAJIT_VERSION),2.0.3)
17+
$(APPLY) $(SRC)/luajit/ldsize-512.patch
1518
endif
1619
$(MOVE)
1720

0 commit comments

Comments
 (0)