@@ -60,6 +60,9 @@ else ifneq ($(filter shared_lib install-shared, $(MAKECMDGOALS)),)
6060else ifneq ($(filter static_lib install-static, $(MAKECMDGOALS)),)
6161 DEBUG_LEVEL=0
6262 LIB_MODE=static
63+ else ifneq ($(filter xcframework, $(MAKECMDGOALS)),)
64+ DEBUG_LEVEL=0
65+ LIB_MODE=static
6366else ifneq ($(filter jtest rocksdbjava%, $(MAKECMDGOALS)),)
6467 OBJ_DIR=jl
6568 LIB_MODE=shared
@@ -281,14 +284,6 @@ endif
281284
282285CXXFLAGS += $(ARCHFLAG )
283286
284- ifeq (,$(shell $(CXX ) -fsyntax-only -march=armv8-a+crc+crypto -xc /dev/null 2>&1) )
285- ifneq ($(PLATFORM ) ,OS_MACOSX)
286- CXXFLAGS += -march=armv8-a+crc+crypto
287- CFLAGS += -march=armv8-a+crc+crypto
288- ARMCRC_SOURCE =1
289- endif
290- endif
291-
292287export JAVAC_ARGS
293288CLEAN_FILES += make_config.mk rocksdb.pc
294289
@@ -1302,8 +1297,14 @@ package:
13021297# Unit tests and tools
13031298# ---------------------------------------------------------------------------
13041299$(STATIC_LIBRARY ) : $(LIB_OBJECTS )
1305- $(AM_V_AR ) rm -f $@ $(SHARED1 ) $(SHARED2 ) $(SHARED3 ) $(SHARED4 )
1306- $(AM_V_at )$(AR ) $(ARFLAGS ) $@ $(LIB_OBJECTS )
1300+ $(AM_V_AR ) rm -f iphonesimulator-$@ $(SHARED1 ) $(SHARED2 ) $(SHARED3 ) $(SHARED4 )
1301+ $(AM_V_at )$(AR ) $(ARFLAGS ) iphonesimulator-$@ $(addprefix ./iphonesimulator/, $(LIB_OBJECTS ) )
1302+
1303+ $(AM_V_AR)rm -f iphonedevice-$@ $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED4)
1304+ $(AM_V_at)$(AR) $(ARFLAGS) iphonedevice-$@ $(addprefix ./iphonedevice/, $(LIB_OBJECTS))
1305+
1306+ $(AM_V_AR)rm -f maccatalyst-$@ $(SHARED1) $(SHARED2) $(SHARED3) $(SHARED4)
1307+ $(AM_V_at)$(AR) $(ARFLAGS) maccatalyst-$@ $(addprefix maccatalyst/, $(LIB_OBJECTS))
13071308
13081309$(STATIC_TEST_LIBRARY ) : $(TEST_OBJECTS )
13091310 $(AM_V_AR ) rm -f $@ $(SHARED_TEST_LIBRARY )
@@ -2537,25 +2538,32 @@ build_size:
25372538ifeq ($(PLATFORM ) , IOS)
25382539# For iOS, create universal object files to be used on both the simulator and
25392540# a device.
2540- XCODEROOT =$(shell xcode-select -print-path)
2541- PLATFORMSROOT =$(XCODEROOT ) /Platforms
2542- SIMULATORROOT =$(PLATFORMSROOT ) /iPhoneSimulator.platform/Developer
2543- DEVICEROOT =$(PLATFORMSROOT ) /iPhoneOS.platform/Developer
2544- IOSVERSION =$(shell defaults read $(PLATFORMSROOT ) /iPhoneOS.platform/version CFBundleShortVersionString)
2541+ SIMULATORSDK =$(shell xcrun --sdk iphonesimulator --show-sdk-path)
2542+ IPHONESDK =$(shell xcrun --sdk iphoneos --show-sdk-path)
2543+ MACOSSDK =$(shell xcrun --sdk macosx --show-sdk-path)
25452544
25462545.cc.o :
2547- mkdir -p ios-x86/$(dir $@ )
2548- $(CXX ) $(CXXFLAGS ) -isysroot $(SIMULATORROOT ) /SDKs/iPhoneSimulator$(IOSVERSION ) .sdk -arch i686 -arch x86_64 -c $< -o ios-x86/$@
2549- mkdir -p ios-arm/$(dir $@ )
2550- xcrun -sdk iphoneos $(CXX ) $(CXXFLAGS ) -isysroot $(DEVICEROOT ) /SDKs/iPhoneOS$(IOSVERSION ) .sdk -arch armv6 -arch armv7 -arch armv7s -arch arm64 -c $< -o ios-arm/$@
2551- lipo ios-x86/$@ ios-arm/$@ -create -output $@
2546+ mkdir -p iphonesimulator/$(dir $@ )
2547+ xcrun -sdk iphonesimulator $(CXX ) $(CXXFLAGS ) -mios-simulator-version-min=15.0 -isysroot $(SIMULATORSDK ) -arch x86_64 -arch arm64 -c $< -o iphonesimulator/$@
2548+ mkdir -p iphonedevice/$(dir $@ )
2549+ xcrun -sdk iphoneos $(CXX ) $(CXXFLAGS ) -miphoneos-version-min=15.0 -isysroot $(IPHONESDK ) -arch arm64 -c $< -o iphonedevice/$@
2550+ mkdir -p maccatalyst/$(dir $@ )
2551+ xcrun -sdk macosx $(CXX ) $(CXXFLAGS ) -isysroot $(MACOSSDK ) -arch x86_64 -arch arm64 -target x86_64-apple-ios15.0-macabi -c $< -o maccatalyst/$@
25522552
25532553.c.o :
2554- mkdir -p ios-x86/$(dir $@ )
2555- $(CC ) $(CFLAGS ) -isysroot $(SIMULATORROOT ) /SDKs/iPhoneSimulator$(IOSVERSION ) .sdk -arch i686 -arch x86_64 -c $< -o ios-x86/$@
2556- mkdir -p ios-arm/$(dir $@ )
2557- xcrun -sdk iphoneos $(CC ) $(CFLAGS ) -isysroot $(DEVICEROOT ) /SDKs/iPhoneOS$(IOSVERSION ) .sdk -arch armv6 -arch armv7 -arch armv7s -arch arm64 -c $< -o ios-arm/$@
2558- lipo ios-x86/$@ ios-arm/$@ -create -output $@
2554+ mkdir -p iphonesimulator/$(dir $@ )
2555+ xcrun -sdk iphonesimulator $(CC ) $(CFLAGS ) -mios-simulator-version-min=15.0 -isysroot $(SIMULATORSDK ) -arch x86_64 -arch arm64 -c $< -o iphonesimulator/$@
2556+ mkdir -p iphonedevice/$(dir $@ )
2557+ xcrun -sdk iphoneos $(CC ) $(CFLAGS ) -miphoneos-version-min=15.0 -isysroot $(IPHONESDK ) -arch arm64 -c $< -o iphonedevice/$@
2558+ mkdir -p maccatalyst/$(dir $@ )
2559+ xcrun -sdk macosx $(CC ) $(CFLAGS ) -isysroot $(MACOSSDK ) -arch x86_64 -arch arm64 -target x86_64-apple-ios15.0-macabi -c $< -o maccatalyst/$@
2560+
2561+ xcframework :
2562+ xcodebuild -create-xcframework \
2563+ -library iphonedevice-librocksdb.a -headers ./include \
2564+ -library iphonesimulator-librocksdb.a -headers ./include \
2565+ -library maccatalyst-librocksdb.a -headers ./include \
2566+ -output RocksDB.xcframework
25592567
25602568else
25612569ifeq ($(HAVE_POWER8 ) ,1)
0 commit comments