Skip to content

Commit 794fbc5

Browse files
committed
macos
1 parent 8e26727 commit 794fbc5

3 files changed

Lines changed: 36 additions & 38 deletions

File tree

jsrc/jeload.c

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
#ifdef _WIN32
77
#include <windows.h>
88
#define GETPROCADDRESS(h,p) GetProcAddress(h,p)
9-
#define JDLLNAME "j.dll"
9+
#define JDLLNAME "j"
10+
#define JDLLEXT ".dll"
1011
#define filesep '\\'
1112
#define filesepx "\\"
1213
#ifdef MMSC_VER
@@ -19,12 +20,13 @@
1920
#define _stdcall
2021
#define filesep '/'
2122
#define filesepx "/"
22-
#ifdef __MACH__
23+
#define JDLLNAME "libj"
24+
#ifdef __APPLE__
2325
extern int _NSGetExecutablePath(char*, int*);
24-
#define JDLLNAME "libj.dylib"
26+
#define JDLLEXT ".dylib"
2527
#else
2628
#include <sys/utsname.h>
27-
#define JDLLNAME "libj.so"
29+
#define JDLLEXT ".so"
2830
#endif
2931
#endif
3032
#include "j.h"
@@ -132,6 +134,7 @@ void jepath(char* arg,char* lib)
132134
strcpy(pathdll,path);
133135
strcat(pathdll,"/lib/");
134136
strcat(pathdll,JDLLNAME);
137+
strcat(pathdll,JDLLEXT);
135138
if(stat(path,&st)){ /* android 5 or newer */
136139
strcpy(path,"/data/user/0/");
137140
strcat(path,AndroidPackage);
@@ -149,19 +152,19 @@ void jepath(char* arg,char* lib)
149152
int i;
150153
for(i=0;i<20;i++){
151154
if(i)
152-
sprintf(pathdll,"/data/app/%s-%d/lib/%s/%s",AndroidPackage,i,arch,JDLLNAME);
155+
sprintf(pathdll,"/data/app/%s-%d/lib/%s/%s.%s",AndroidPackage,i,arch,JDLLNAME,JDLLEXT);
153156
else
154-
sprintf(pathdll,"/data/app/%s/lib/%s/%s",AndroidPackage,arch,JDLLNAME);
157+
sprintf(pathdll,"/data/app/%s/lib/%s/%s.%s",AndroidPackage,arch,JDLLNAME,JDLLEXT);
155158
if(!stat(pathdll,&st))break;
156159
if(i)
157-
sprintf(pathdll,"/data/app-lib/%s-%d/%s",AndroidPackage,i,JDLLNAME);
160+
sprintf(pathdll,"/data/app-lib/%s-%d/%s.%s",AndroidPackage,i,JDLLNAME,JDLLEXT);
158161
else
159-
sprintf(pathdll,"/data/app-lib/%s/%s",AndroidPackage,JDLLNAME);
162+
sprintf(pathdll,"/data/app-lib/%s/%s.%s",AndroidPackage,JDLLNAME,JDLLEXT);
160163
if(!stat(pathdll,&st))break;
161164
if(i)
162-
sprintf(pathdll,"/mnt/asec/%s-%d/lib/%s",AndroidPackage,i,JDLLNAME);
165+
sprintf(pathdll,"/mnt/asec/%s-%d/lib/%s.%s",AndroidPackage,i,JDLLNAME,JDLLEXT);
163166
else
164-
sprintf(pathdll,"/mnt/asec/%s/lib/%s",AndroidPackage,JDLLNAME);
167+
sprintf(pathdll,"/mnt/asec/%s/lib/%s.%s",AndroidPackage,JDLLNAME,JDLLEXT);
165168
if(!stat(pathdll,&st))break;
166169
}
167170
}
@@ -188,7 +191,7 @@ void jepath(char* arg,char* lib)
188191
// fprintf(stderr,"arg0 %s\n",arg);
189192
// try host dependent way to get path to executable
190193
// use arg if they fail (arg command in PATH won't work)
191-
#ifdef __MACH__
194+
#ifdef __APPLE__
192195
n=_NSGetExecutablePath(arg2,&len);
193196
if(0!=n) strcat(arg2,arg);
194197
#else
@@ -237,6 +240,7 @@ void jepath(char* arg,char* lib)
237240
strcpy(pathdll,path);
238241
strcat(pathdll,filesepx);
239242
strcat(pathdll,JDLLNAME);
243+
strcat(pathdll,JDLLEXT);
240244
#ifdef ANDROID
241245
if(stat(pathdll,&st))strcpy(pathdll,tmp);
242246
#endif
@@ -260,8 +264,15 @@ void jepath(char* arg,char* lib)
260264
jdllver[1]='.';
261265
strcat(jdllver+2,_jdllver+1);
262266
strcpy(pathdll,JDLLNAME);
267+
#if defined(__APPLE__)
263268
strcat(pathdll,".");
264269
strcat(pathdll,jdllver);
270+
strcat(pathdll,JDLLEXT);
271+
#else
272+
strcat(pathdll,JDLLEXT);
273+
strcat(pathdll,".");
274+
strcat(pathdll,jdllver);
275+
#endif
265276
}
266277
}
267278
#endif
@@ -351,7 +362,7 @@ int jefirst(int type,char* arg)
351362
#endif
352363
#if defined(_WIN32)
353364
strcat(input,"[UNAME_z_=:'Win'");
354-
#elif defined(__MACH__)
365+
#elif defined(__APPLE__)
355366
strcat(input,"[UNAME_z_=:'Darwin'");
356367
#elif defined(__OpenBSD__)
357368
strcat(input,"[UNAME_z_=:'OpenBSD'");

make2/build_all.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ else
2626
jplatform="${jplatform:=linux}"
2727
fi
2828
if [ "`uname -m`" = "x86_64" ]; then
29+
if [ -z "${jplatform##*linux*}" ]; then
2930
j64x="${j64x:=j64avx}"
31+
else
32+
j64x="${j64x:=j64}"
33+
fi
3034
elif [ "`uname -m`" = "aarch64" ]; then
3135
j64x="${j64x:=j64}"
3236
elif [ "`uname -m`" = "arm64" ] && [ -z "${jplatform##*darwin*}" ]; then

make2/cpbin.sh

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ cop(){
1010
# MUST rename/remove object first; overwrite cause cache error
1111
if [ -f "../bin/${jplatform}/$1/$2" ]; then
1212
if [ -f "../jlibrary/$3/$4" ]; then
13-
mv -f "../jlibrary/$3/$4" "../jlibrary/$3/$4.old"
13+
mv -f "../jlibrary/$3/$4" "/tmp/$4.old.$$"
1414
fi
1515
echo \# cp "../bin/${jplatform}/$1/$2" "../jlibrary/$3/$4"
1616
cp "../bin/${jplatform}/$1/$2" "../jlibrary/$3/$4"
@@ -34,29 +34,21 @@ if [ $jplatform = "darwin" ]; then
3434
# macos 64-bit
3535
if [ -f "../bin/${jplatform}/j64/jconsole" ] && [ -f "../bin/${jplatform}/j64arm/jconsole" ]; then
3636
# fat binary
37-
if [ -f "../jlibrary/bin/jconsole" ]; then
38-
mv -f "../jlibrary/bin/jconsole" "../jlibrary/bin/jconsole.old"
37+
if [ -f "../jlibrary/bin/jconsole-mac" ]; then
38+
mv -f "../jlibrary/bin/jconsole-mac" "/tmp/jconsole-mac.old.$$"
3939
fi
40-
echo \# lipo "../bin/${jplatform}/j64/jconsole" "../bin/${jplatform}/j64arm/jconsole" -create -output "../jlibrary/bin/jconsole"
41-
lipo "../bin/${jplatform}/j64/jconsole" "../bin/${jplatform}/j64arm/jconsole" -create -output "../jlibrary/bin/jconsole"
40+
echo \# lipo "../bin/${jplatform}/j64/jconsole" "../bin/${jplatform}/j64arm/jconsole" -create -output "../jlibrary/bin/jconsole-mac"
41+
lipo "../bin/${jplatform}/j64/jconsole" "../bin/${jplatform}/j64arm/jconsole" -create -output "../jlibrary/bin/jconsole-mac"
4242
elif [ -f "../bin/${jplatform}/j64/jconsole" ]; then
43-
cop j64 jconsole bin jconsole
43+
cop j64 jconsole bin jconsole-mac
4444
elif [ -f "../bin/${jplatform}/j64arm/jconsole" ]; then
45-
cop j64arm jconsole bin jconsole
46-
fi
47-
48-
if [ -f "../jlibrary/bin/jconsole" ]; then
49-
if [ -f "../jlibrary/bin/jconsole-mac" ]; then
50-
mv -f "../jlibrary/bin/jconsole-mac" "../jlibrary/bin/jconsole-mac.old"
51-
fi
52-
echo \# cp "../jlibrary/bin/jconsole" "../jlibrary/bin/jconsole-mac"
53-
cp "../jlibrary/bin/jconsole" "../jlibrary/bin/jconsole-mac"
45+
cop j64arm jconsole bin jconsole-mac
5446
fi
5547

5648
if [ -f "../bin/${jplatform}/j64/libtsdll.dylib" ] && [ -f "../bin/${jplatform}/j64arm/libtsdll.dylib" ]; then
5749
# fat binary
5850
if [ -f "../jlibrary/bin/libtsdll.dylib" ]; then
59-
mv -f "../jlibrary/bin/libtsdll.dylib" "../jlibrary/bin/libtsdll.dylib.old"
51+
mv -f "../jlibrary/bin/libtsdll.dylib" "/tmp/libtsdll.dylib.old.$$"
6052
fi
6153
echo \# lipo "../bin/${jplatform}/j64/libtsdll.dylib" "../bin/${jplatform}/j64arm/libtsdll.dylib" -create -output "../jlibrary/bin/libtsdll.dylib"
6254
lipo "../bin/${jplatform}/j64/libtsdll.dylib" "../bin/${jplatform}/j64arm/libtsdll.dylib" -create -output "../jlibrary/bin/libtsdll.dylib"
@@ -69,7 +61,7 @@ fi
6961
if [ -f "../bin/${jplatform}/j64/libj.dylib" ] && [ -f "../bin/${jplatform}/j64arm/libj.dylib" ]; then
7062
# fat binary
7163
if [ -f "../jlibrary/bin/libj.dylib" ]; then
72-
mv -f "../jlibrary/bin/libj.dylib" "../jlibrary/bin/libj.dylib.old"
64+
mv -f "../jlibrary/bin/libj.dylib" "/tmp/libj.dylib.old.$$"
7365
fi
7466
echo \# lipo "../bin/${jplatform}/j64/libj.dylib" "../bin/${jplatform}/j64arm/libj.dylib" -create -output "../jlibrary/bin/libj.dylib"
7567
lipo "../bin/${jplatform}/j64/libj.dylib" "../bin/${jplatform}/j64arm/libj.dylib" -create -output "../jlibrary/bin/libj.dylib"
@@ -79,14 +71,6 @@ elif [ -f "../bin/${jplatform}/j64arm/libj.dylib" ]; then
7971
cop j64arm libj.dylib bin libj.dylib
8072
fi
8173

82-
if [ -f "../jlibrary/bin/libj.dylib" ]; then
83-
if [ -f "../jlibrary/bin/libj-nonavx.dylib" ]; then
84-
mv -f "../jlibrary/bin/libj-nonavx.dylib" "../jlibrary/bin/libj-nonavx.dylib.old"
85-
fi
86-
echo \# cp "../jlibrary/bin/libj.dylib" "../jlibrary/bin/libj-nonavx.dylib"
87-
cp "../jlibrary/bin/libj.dylib" "../jlibrary/bin/libj-nonavx.dylib"
88-
fi
89-
9074
cop j64avx libj.dylib bin libjavx.dylib
9175
cop j64avx2 libj.dylib bin libjavx2.dylib
9276

@@ -97,7 +81,6 @@ cop j64 jconsole bin jconsole
9781
cop j64 jconsole bin jconsole-lx
9882
cop j64 libtsdll.so bin libtsdll.so
9983
cop j64 libj.so bin libj.so
100-
cop j64 libj.so bin libj-nonavx.so
10184
cop j64avx libj.so bin libjavx.so
10285
cop j64avx2 libj.so bin libjavx2.so
10386

0 commit comments

Comments
 (0)