Skip to content

Commit cc1d250

Browse files
committed
Fix building threadfix in MacOS
1 parent af09f7f commit cc1d250

File tree

4 files changed

+18
-20
lines changed

4 files changed

+18
-20
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ __pycache__/
55

66
# C extensions
77
*.so
8+
*.dylib
89

910
# Distribution / packaging
1011
.Python

__PySiddhiProxy/threadfix_c_code/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ echo "Compiling C++ Code used for fixing threading issue"
1818
echo "Invoking G++ Compiler"
1919

2020
if [["$OSTYPE" == "darwin"*]]; then
21-
g++ -I "$JAVA_HOME/include" -I "$JAVA_HOME/include/darwin" -I "$PYTHONHOME" -shared -fPIC -o libio_siddhi_pythonapi_threadfix_pythreadfix.so io_siddhi_pythonapi_threadfix_PyThreadFix.c
21+
g++ -I "$JAVA_HOME/include" -I "$JAVA_HOME/include/darwin" -I "$PYTHONHOME" -shared -flat_namespace -undefined suppress -dynamiclib -o libio_siddhi_pythonapi_threadfix_pythreadfix.so io_siddhi_pythonapi_threadfix_PyThreadFix.c
2222
elif [["$OSTYPE" == "linux-gnu"]]; then
2323
g++ -I "$JAVA_HOME/include" -I "$JAVA_HOME/include/linux" -I "$PYTHONHOME" -shared -fPIC -o libio_siddhi_pythonapi_threadfix_pythreadfix.so io_siddhi_pythonapi_threadfix_PyThreadFix.c
2424
fi

__PySiddhiProxy/threadfix_c_code/makefile

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
# use g++ compiler
1717
CC = g++
1818

19-
CFLAGS =-shared -fPIC -c
20-
2119
# define JAVA_HOME here
2220
JAVAHOME = ${JAVA_HOME}
2321

@@ -31,13 +29,15 @@ OS = ${shell uname}
3129

3230
CP = cp
3331

34-
#Find include files
35-
INCLUDES_LINUX = -I "$(JAVAHOME)/include" -I "$(JAVAHOME)/include/linux" -I "$(LINUX_PYTHON_PATH)"
36-
37-
INCLUDES_MACOS = -I "$(JAVAHOME)/include" -I "$(JAVAHOME)/include/darwin" -I "$(MACOS_PYTHON_PATH)"
38-
39-
40-
32+
ifeq ($(OS), Darwin)
33+
CFLAGS = -shared -flat_namespace -undefined suppress -dynamiclib
34+
INCLUDES = -I "$(JAVAHOME)/include" -I "$(JAVAHOME)/include/darwin" -I "$(MACOS_PYTHON_PATH)"
35+
OUT_EXT = dylib
36+
else
37+
CFLAGS = -shared -fPIC
38+
INCLUDES = -I "$(JAVAHOME)/include" -I "$(JAVAHOME)/include/linux" -I "$(LINUX_PYTHON_PATH)"
39+
OUT_EXT = so
40+
endif
4141

4242
# build target details
4343
TARGET_SOURCE_NAME = io_siddhi_pythonapi_threadfix_PyThreadFix
@@ -47,19 +47,15 @@ TARGET = threadfix
4747

4848
all: install
4949

50-
$(TARGET_OUTPUT_NAME).so: $(TARGET_SOURCE_NAME).c $(TARGET_SOURCE_NAME).h
50+
$(TARGET_OUTPUT_NAME).$(OUT_EXT): $(TARGET_SOURCE_NAME).c $(TARGET_SOURCE_NAME).h
5151
@echo "Building Target..."
52-
ifeq ($(OS), Darwin)
53-
$(CC) $(CFLAGS) $(INCLUDES_MACOS) -o $(TARGET_OUTPUT_NAME).so $(TARGET_SOURCE_NAME).c
54-
else ifeq ($(OS), Linux)
55-
$(CC) $(CFLAGS) $(INCLUDES_LINUX) -o $(TARGET_OUTPUT_NAME).so $(TARGET_SOURCE_NAME).c
56-
endif
52+
$(CC) $(CFLAGS) $(INCLUDES) -o $(TARGET_OUTPUT_NAME).$(OUT_EXT) $(TARGET_SOURCE_NAME).c
5753
@echo
5854

59-
install: $(TARGET_OUTPUT_NAME).so
55+
install: $(TARGET_OUTPUT_NAME).$(OUT_EXT)
6056
@echo "Copying Target to Root..."
61-
$(CP) $(TARGET_OUTPUT_NAME).so ../$(TARGET_INSTALL_NAME).so
57+
$(CP) $(TARGET_OUTPUT_NAME).$(OUT_EXT) ../$(TARGET_INSTALL_NAME).$(OUT_EXT)
6258
@echo
6359

6460
clean:
65-
$(RM) $(TARGET_OUTPUT_NAME).so
61+
$(RM) $(TARGET_OUTPUT_NAME).$(OUT_EXT)

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ def run(self):
5050
package_data={
5151
"PySiddhi": ["../__PySiddhiProxy/target/lib/*.jar",
5252
"../__PySiddhiProxy/target/*.jar",
53-
"../__PySiddhiProxy/*.so"]
53+
"../__PySiddhiProxy/*.so",
54+
"../__PySiddhiProxy/*.dylib"]
5455
},
5556

5657
# metadata for upload to PyPI

0 commit comments

Comments
 (0)