11OS := $(shell uname)
22CFLAGS := -Iinclude
33LDFLAGS := -lm
4+ ARCHS_IOS = x86_64-apple-ios aarch64-apple-ios aarch64-apple-ios-sim
5+ ARCHS_ANDROID = aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android
6+ LIB = libsql_experimental.a
7+ HEADER = libsql.h
8+ XCFRAMEWORK = libsql.xcframework
49
510# Set LIBSQL_PATH to the default path if not provided
611LIBSQL_EXPERIMENTAL_PATH ?= ../../target/release/libsql_experimental.a
@@ -9,8 +14,37 @@ ifeq ($(OS),Darwin)
914 CFLAGS += -framework Security -framework CoreServices
1015endif
1116
12- .PHONY : all
17+ .PHONY : all $(ARCHS_IOS ) ios $(ARCHS_ANDROID ) android
18+
1319all : example
1420
1521example : example.c
1622 $(CC ) -o $@ $(CFLAGS ) $< $(LIBSQL_EXPERIMENTAL_PATH ) $(LDFLAGS )
23+
24+ android : $(ARCHS_ANDROID )
25+ rm -rf generated
26+ mkdir -p generated/jniLibs
27+ mkdir -p generated/jniLibs/arm64-v8a
28+ mkdir -p generated/jniLibs/armeabi-v7a
29+ mkdir -p generated/jniLibs/x86_64
30+ mkdir -p generated/jniLibs/x86
31+
32+ cp ../../target/aarch64-linux-android/release/$(LIB) generated/jniLibs/arm64-v8a/$(LIB)
33+ cp ../../target/armv7-linux-androideabi/release/$(LIB) generated/jniLibs/armeabi-v7a/$(LIB)
34+ cp ../../target/x86_64-linux-android/release/$(LIB) generated/jniLibs/x86_64/$(LIB)
35+ cp ../../target/i686-linux-android/release/$(LIB) generated/jniLibs/x86/$(LIB)
36+
37+ $(ARCHS_ANDROID ) : % :
38+ cargo ndk --target $@ --platform 31 build --release
39+
40+ ios : $(XCFRAMEWORK )
41+
42+ $(ARCHS_IOS ) : % :
43+ cargo build --release --target $@
44+
45+ $(XCFRAMEWORK ) : $(ARCHS_IOS )
46+ rm -rf generated
47+ mkdir -p generated/simulator_fat
48+ rm -rf $@
49+ lipo -create $(wildcard ../../target/x86_64-apple-ios/release/$(LIB ) ) $(wildcard ../../target/aarch64-apple-ios-sim/release/$(LIB ) ) -output generated/simulator_fat/$(LIB )
50+ xcodebuild -create-xcframework -library $(wildcard ../../target/aarch64-apple-ios/release/$(LIB ) ) -headers include -library generated/simulator_fat/$(LIB ) -headers include -output $@
0 commit comments