@@ -7,6 +7,7 @@ COMPILE_ARM64 := aarch64-unknown-linux-gnu-gcc
77COMPILE_PPC64LE := powerpc64le-unknown-linux-gnu-gcc
88COMPILE_SOLARIS_X86 := x86_64-sun-solaris2.10-gcc
99COMPILE_SOLARIS_SPARC := sparc-sun-solaris2.10-gcc
10+ COMPILE_LOONGARCH64 := gcc
1011COMPILE_OSX_X86 := o32-clang
1112COMPILE_OSX_X86_64 := o64-clang
1213COMPILE_OSX_ARM64 := oa64-clang
@@ -59,6 +60,7 @@ OBJECTSarmv7hf := $(BUILD_DIR)/armv7hf/SerialPort_Posix.o $(BUILD_D
5960OBJECTSarmv8_32 := $(BUILD_DIR ) /armv8_32/SerialPort_Posix.o $(BUILD_DIR ) /armv8_32/PosixHelperFunctions.o
6061OBJECTSarmv8_64 := $(BUILD_DIR ) /armv8_64/SerialPort_Posix.o $(BUILD_DIR ) /armv8_64/PosixHelperFunctions.o
6162OBJECTSppc64le := $(BUILD_DIR ) /ppc64le/SerialPort_Posix.o $(BUILD_DIR ) /ppc64le/PosixHelperFunctions.o
63+ OBJECTSloongarch64 := $(BUILD_DIR ) /loongarch64/SerialPort_Posix.o $(BUILD_DIR ) /loongarch64/PosixHelperFunctions.o
6264OBJECTSsolaris32 := $(BUILD_DIR ) /solaris_x86/SerialPort_Posix.o $(BUILD_DIR ) /solaris_x86/PosixHelperFunctions.o
6365OBJECTSsolaris64 := $(BUILD_DIR ) /solaris_x86_64/SerialPort_Posix.o $(BUILD_DIR ) /solaris_x86_64/PosixHelperFunctions.o
6466OBJECTSsolarisSparc32 := $(BUILD_DIR ) /solaris_sparc32/SerialPort_Posix.o $(BUILD_DIR ) /solaris_sparc32/PosixHelperFunctions.o
@@ -79,6 +81,7 @@ FLAGSarmv7hf := -mthumb -mthumb-interwork -march=armv7+fp -mfloat
7981FLAGSarmv8_32 := -mthumb -mthumb-interwork -march=armv8-a
8082FLAGSarmv8_64 := -march=armv8-a
8183FLAGSppc64le := -mtune=powerpc64le -m64
84+ FLAGSloongarch64 := -march=loongarch64
8285FLAGSsolaris32 := -m32
8386FLAGSsolaris64 := -m64
8487FLAGSsolarisSparc32 := -mno-app-regs -mcpu=v8 -mv8plus -m32
@@ -93,7 +96,7 @@ FLAGSosx64 := -arch x86_64 -m64
9396FLAGSosxaarch64 := -arch arm64
9497
9598# Define phony and suffix rules
96- .PHONY : all clean linux linux32 linux64 arm armv5 armv6hf armv7hf armv8_32 armv8_64 powerpc ppc64le solaris solaris32 solaris64 solarisSparc32 solarisSparc64 osx osx32 osx64 osxaarch64 android freebsd freebsd32 freebsd64 freebsdArm64 openbsd openbsd32 openbsd64
99+ .PHONY : all clean linux linux32 linux64 arm armv5 armv6hf armv7hf armv8_32 armv8_64 loonogarch64 powerpc ppc64le solaris solaris32 solaris64 solarisSparc32 solarisSparc64 osx osx32 osx64 osxaarch64 android freebsd freebsd32 freebsd64 freebsdArm64 openbsd openbsd32 openbsd64
97100.SUFFIXES :
98101.SUFFIXES : .cpp .c .o .class .java .h
99102
@@ -172,6 +175,12 @@ armv8_64 : $(JAVA_CLASS_DIR) $(BUILD_DIR)/armv8_64 $(BUILD_DIR)/armv8_64/$(LIBRA
172175 $(MKDIR ) -p $(RESOURCE_DIR_LINUX ) /armv8_64/
173176 $(COPY ) $(BUILD_DIR ) /armv8_64/* .* $(RESOURCE_DIR_LINUX ) /armv8_64/
174177
178+ # Build architecture-specific LOONGARCH libraries
179+ loongarch64 : $(JAVA_CLASS_DIR ) $(BUILD_DIR ) /loongarch64 $(BUILD_DIR ) /loongarch64/$(LIBRARY_NAME_POSIX )
180+ $(DELETE ) -rf $(BUILD_DIR ) /loongarch64/* .o
181+ $(MKDIR ) -p $(RESOURCE_DIR_LINUX ) /loongarch64/
182+ $(COPY ) $(BUILD_DIR ) /loongarch64/* .* $(RESOURCE_DIR_LINUX ) /loongarch64/
183+
175184# Build architecture-specific POWERPC libraries
176185ppc64le : $(JAVA_CLASS_DIR ) $(BUILD_DIR ) /ppc64le $(BUILD_DIR ) /ppc64le/$(LIBRARY_NAME_POSIX )
177186 $(DELETE ) -rf $(BUILD_DIR ) /ppc64le/* .o
@@ -253,6 +262,8 @@ $(BUILD_DIR)/armv8_32 :
253262 $(MKDIR ) -p $@
254263$(BUILD_DIR ) /armv8_64 :
255264 $(MKDIR ) -p $@
265+ $(BUILD_DIR ) /loongarch64 :
266+ $(MKDIR ) -p $@
256267$(BUILD_DIR ) /ppc64le :
257268 $(MKDIR ) -p $@
258269$(BUILD_DIR ) /solaris_x86 :
@@ -297,6 +308,8 @@ $(BUILD_DIR)/armv8_32/$(LIBRARY_NAME_POSIX) : $(JNI_HEADER) $(OBJECTSarmv8_32)
297308 $(COMPILE_ARM32 ) $(LDFLAGS_POSIX ) $(FLAGSarmv8_32 ) -o $@ $(OBJECTSarmv8_32 ) $(LIBRARIES_POSIX )
298309$(BUILD_DIR ) /armv8_64/$(LIBRARY_NAME_POSIX ) : $(JNI_HEADER ) $(OBJECTSarmv8_64 )
299310 $(COMPILE_ARM64 ) $(LDFLAGS_POSIX ) $(FLAGSarmv8_64 ) -o $@ $(OBJECTSarmv8_64 ) $(LIBRARIES_POSIX )
311+ $(BUILD_DIR ) /loongarch64/$(LIBRARY_NAME_POSIX ) : $(JNI_HEADER ) $(OBJECTSloongarch64 )
312+ $(COMPILE_LOONGARCH64 ) $(LDFLAGS_POSIX ) $(FLAGloongarch64 ) -o $@ $(OBJECTSloongarch64 ) $(LIBRARIES_POSIX )
300313$(BUILD_DIR ) /ppc64le/$(LIBRARY_NAME_POSIX ) : $(JNI_HEADER ) $(OBJECTSppc64le )
301314 $(COMPILE_PPC64LE ) $(LDFLAGS_POSIX ) $(FLAGSppc64le ) -o $@ $(OBJECTSppc64le ) $(LIBRARIES_POSIX )
302315$(BUILD_DIR ) /solaris_x86/$(LIBRARY_NAME_POSIX ) : $(JNI_HEADER ) $(OBJECTSsolaris32 )
@@ -339,6 +352,8 @@ $(BUILD_DIR)/armv8_32/%.o : %.c
339352 $(COMPILE_ARM32 ) $(INCLUDES ) $(CFLAGS_POSIX ) $(FLAGSarmv8_32 ) -c $< -o $@
340353$(BUILD_DIR ) /armv8_64/% .o : % .c
341354 $(COMPILE_ARM64 ) $(INCLUDES ) $(CFLAGS_POSIX ) $(FLAGSarmv8_64 ) -c $< -o $@
355+ $(BUILD_DIR ) /loongarch64/% .o : % .c
356+ $(COMPILE_LOONGARCH64 ) $(INCLUDES ) $(CFLAGS_POSIX ) $(FLAGSloongarch64 ) -c $< -o $@
342357$(BUILD_DIR ) /ppc64le/% .o : % .c
343358 $(COMPILE_PPC64LE ) $(INCLUDES ) $(CFLAGS_POSIX ) $(FLAGSppc64le ) -c $< -o $@
344359$(BUILD_DIR ) /solaris_x86/% .o : % .c
0 commit comments