@@ -11,8 +11,6 @@ __PROJECT__=$(
11
11
)
12
12
cd ${__PROJECT__}
13
13
14
- ROOT=${__PROJECT__}
15
-
16
14
PHP_VERSION=' 8.2.27'
17
15
SWOOLE_VERSION=' v6.0.0'
18
16
X_PHP_VERSION=' 8.2'
@@ -38,83 +36,98 @@ MONGODB_VERSION=1.17.2
38
36
YAML_VERSION=2.2.2
39
37
IMAGICK_VERSION=3.7.0
40
38
41
- if [ ! -d pool/ext ]; then
42
- mkdir -p pool/ext
43
- fi
44
-
45
- test -d ext && rm -rf ext
46
- test -d pool/ext && rm -rf pool/ext
47
39
mkdir -p pool/ext
48
- mkdir -p ext
49
- cd pool/ext
50
-
51
- if [ ! -d $ROOT /ext/redis ]; then
52
- if [ ! -f redis-${REDIS_VERSION} .tgz ]; then
53
- curl -fSLo redis-${REDIS_VERSION} .tgz https://pecl.php.net/get/redis-${REDIS_VERSION} .tgz
54
- fi
55
- tar xvf redis-${REDIS_VERSION} .tgz
56
- mv redis-${REDIS_VERSION} $ROOT /ext/redis
40
+ mkdir -p pool/lib
41
+ mkdir -p pool/php-tar
42
+
43
+ WORK_TEMP_DIR=${__PROJECT__} /var/cygwin-build/
44
+ EXT_TEMP_CACHE_DIR=${WORK_TEMP_DIR} /pool/ext/
45
+ mkdir -p ${WORK_TEMP_DIR}
46
+ mkdir -p ${EXT_TEMP_CACHE_DIR}
47
+ test -d ${WORK_TEMP_DIR} /ext/ && rm -rf ${WORK_TEMP_DIR} /ext/
48
+ mkdir -p ${WORK_TEMP_DIR} /ext/
49
+
50
+ cd ${__PROJECT__} /pool/ext
51
+ if [ ! -f redis-${REDIS_VERSION} .tgz ]; then
52
+ curl -fSLo ${EXT_TEMP_CACHE_DIR} /redis-${REDIS_VERSION} .tgz https://pecl.php.net/get/redis-${REDIS_VERSION} .tgz
53
+ mv ${EXT_TEMP_CACHE_DIR} /redis-${REDIS_VERSION} .tgz ${__PROJECT__} /pool/ext
57
54
fi
55
+ mkdir -p ${WORK_TEMP_DIR} /ext/redis/
56
+ tar --strip-components=1 -C ${WORK_TEMP_DIR} /ext/redis/ -xf redis-${REDIS_VERSION} .tgz
58
57
59
- # mongodb no support cygwin
60
- if [ ! -d $ROOT /ext/mongodb ]; then
61
- if [ ! -f mongodb-${MONGODB_VERSION} .tgz ]; then
62
- curl -fSLo mongodb-${MONGODB_VERSION} .tgz https://pecl.php.net/get/mongodb-${MONGODB_VERSION} .tgz
63
- fi
64
- tar xvf mongodb-${MONGODB_VERSION} .tgz
65
- mv mongodb-${MONGODB_VERSION} $ROOT /ext/mongodb
58
+ : << EOF
59
+ # mongodb 扩展 不支持 cygwin 环境下构建
60
+ # 详见: https://github.com/mongodb/mongo-php-driver/issues/1381
61
+
62
+ cd ${__PROJECT__} /pool/ext
63
+ if [ ! -f mongodb-${MONGODB_VERSION} .tgz ]; then
64
+ curl -fSLo ${EXT_TEMP_CACHE_DIR} /mongodb-${MONGODB_VERSION} .tgz https://pecl.php.net/get/mongodb-${MONGODB_VERSION} .tgz
65
+ mv ${EXT_TEMP_CACHE_DIR} /redis-${REDIS_VERSION} .tgz ${__PROJECT__} /pool/ext
66
66
fi
67
+ mkdir -p ${WORK_TEMP_DIR} /ext/mongodb/
68
+ tar --strip-components=1 -C ${WORK_TEMP_DIR} /ext/mongodb/ -xf redis-${REDIS_VERSION} .tgz
69
+
70
+ EOF
67
71
68
- if [ ! -d $ROOT /ext/yaml ]; then
69
- if [ ! -f yaml-${YAML_VERSION} .tgz ]; then
70
- curl -fSLo yaml-${YAML_VERSION} .tgz https://pecl.php.net/get/yaml-${YAML_VERSION} .tgz
71
- fi
72
- tar xvf yaml-${YAML_VERSION} .tgz
73
- mv yaml-${YAML_VERSION} $ROOT /ext/yaml
72
+ cd ${__PROJECT__} /pool/ext
73
+ if [ ! -f yaml-${YAML_VERSION} .tgz ]; then
74
+ curl -fSLo ${EXT_TEMP_CACHE_DIR} /yaml-${YAML_VERSION} .tgz https://pecl.php.net/get/yaml-${YAML_VERSION} .tgz
75
+ mv ${EXT_TEMP_CACHE_DIR} /yaml-${YAML_VERSION} .tgz ${__PROJECT__} /pool/ext
74
76
fi
77
+ mkdir -p ${WORK_TEMP_DIR} /ext/yaml/
78
+ tar --strip-components=1 -C ${WORK_TEMP_DIR} /ext/yaml/ -xf yaml-${YAML_VERSION} .tgz
75
79
76
- if [ ! -d $ROOT /ext/imagick ]; then
77
- if [ ! -f imagick-${IMAGICK_VERSION} .tgz ]; then
78
- curl -fSLo imagick-${IMAGICK_VERSION} .tgz https://pecl.php.net/get/imagick-${IMAGICK_VERSION} .tgz
79
- fi
80
- tar xvf imagick-${IMAGICK_VERSION} .tgz
81
- mv imagick-${IMAGICK_VERSION} $ROOT /ext/imagick
82
- if [ " $X_PHP_VERSION " = " 8.4" ]; then
83
- sed -i.backup " s/php_strtolower(/zend_str_tolower(/" $ROOT /ext/imagick/imagick.c
84
- fi
80
+ cd ${__PROJECT__} /pool/ext
81
+ if [ ! -f imagick-${IMAGICK_VERSION} .tgz ]; then
82
+ curl -fSLo ${EXT_TEMP_CACHE_DIR} /imagick-${IMAGICK_VERSION} .tgz https://pecl.php.net/get/imagick-${IMAGICK_VERSION} .tgz
83
+ mv ${EXT_TEMP_CACHE_DIR} /imagick-${IMAGICK_VERSION} .tgz ${__PROJECT__} /pool/ext
85
84
fi
85
+ mkdir -p ${WORK_TEMP_DIR} /ext/imagick/
86
+ tar --strip-components=1 -C ${WORK_TEMP_DIR} /ext/imagick/ -xf imagick-${IMAGICK_VERSION} .tgz
86
87
88
+ cd ${__PROJECT__} /pool/ext
87
89
if [ ! -f swoole-${SWOOLE_VERSION} .tgz ]; then
88
- test -d /tmp/swoole && rm -rf /tmp/swoole
89
- git clone -b ${SWOOLE_VERSION} https://github.com/swoole/swoole-src.git /tmp/swoole
90
- cd /tmp/swoole
91
- tar -czvf $ROOT /pool/ext/swoole-${SWOOLE_VERSION} .tgz .
92
- cd $ROOT /pool/ext/
90
+ test -d ${WORK_TEMP_DIR} /swoole && rm -rf ${WORK_TEMP_DIR} /swoole
91
+ git clone -b ${SWOOLE_VERSION} https://github.com/swoole/swoole-src.git ${WORK_TEMP_DIR} /swoole
92
+ cd ${WORK_TEMP_DIR} /swoole
93
+ tar -czvf ${EXT_TEMP_CACHE_DIR} /swoole-${SWOOLE_VERSION} .tgz .
94
+ mv ${EXT_TEMP_CACHE_DIR} /swoole-${SWOOLE_VERSION} .tgz ${__PROJECT__} /pool/ext
95
+ cd ${__PROJECT__} /pool/ext
93
96
fi
94
- mkdir -p swoole-${SWOOLE_VERSION}
95
- tar --strip-components=1 -C swoole-${SWOOLE_VERSION} -xf swoole-${SWOOLE_VERSION} .tgz
96
- test -d $ROOT /ext/swoole && rm -rf $ROOT /ext/swoole
97
- mv swoole-${SWOOLE_VERSION} $ROOT /ext/swoole
97
+ mkdir -p ${WORK_TEMP_DIR} /ext/swoole/
98
+ tar --strip-components=1 -C ${WORK_TEMP_DIR} /ext/swoole/ -xf swoole-${SWOOLE_VERSION} .tgz
98
99
99
- cd $ROOT
100
+ cd ${__PROJECT__}
101
+ # clean extension folder
102
+ NO_BUILT_IN_EXTENSIONS=$( ls ${WORK_TEMP_DIR} /ext/)
103
+ for EXT_NAME in $NO_BUILT_IN_EXTENSIONS ; do
104
+ echo " EXTENSION_NAME: $EXT_NAME "
105
+ test -d ${__PROJECT__} /ext/${EXT_NAME} && rm -rf ${__PROJECT__} /ext/${EXT_NAME}
106
+ done
100
107
101
108
# download php-src source code
102
-
109
+ cd ${__PROJECT__} /pool/php-tar
103
110
if [ ! -f php-${PHP_VERSION} .tar.gz ]; then
104
111
curl -fSLo php-${PHP_VERSION} .tar.gz https://github.com/php/php-src/archive/refs/tags/php-${PHP_VERSION} .tar.gz
105
112
fi
106
- test -d php-src && rm -rf php-src
107
- mkdir -p php-src
108
- tar --strip-components=1 -C php-src -xf php-${PHP_VERSION} .tar.gz
113
+ test -d ${WORK_TEMP_DIR} / php-src && rm -rf ${WORK_TEMP_DIR} / php-src
114
+ mkdir -p ${WORK_TEMP_DIR} / php-src
115
+ tar --strip-components=1 -C ${WORK_TEMP_DIR} / php-src -xf php-${PHP_VERSION} .tar.gz
109
116
110
- cd $ROOT
117
+ cd ${__PROJECT__}
118
+ # copy extension
119
+ # cp -rf var/cygwin-build/ext/* var/cygwin-build/php-src/ext/
120
+ cp -rf ${WORK_TEMP_DIR} /ext/* ${WORK_TEMP_DIR} /php-src/ext/
111
121
112
- if [ ! -d $ROOT /ext/pgsql ]; then
113
- mv $ROOT /php-src/ext/pgsql $ROOT /ext/pgsql
122
+ # extension hook
123
+ if [ " $X_PHP_VERSION " = " 8.4" ]; then
124
+ sed -i.backup " s/php_strtolower(/zend_str_tolower(/" ${WORK_TEMP_DIR} /php-src/ext/imagick/imagick.c
114
125
fi
115
126
116
- cd $ROOT
127
+ # php source code hook
128
+ cd ${WORK_TEMP_DIR} /php-src
129
+ if [ " $X_PHP_VERSION " = " 8.4" ] || [ " $X_PHP_VERSION " = " 8.3" ] || [ " $X_PHP_VERSION " = " 8.2" ] || [ " $X_PHP_VERSION " = " 8.1" ]; then
130
+ sed -i.backup ' s/!defined(__HAIKU__)/!defined(__HAIKU__) \&\& !defined(__CYGWIN__)/' TSRM/TSRM.c
131
+ fi
117
132
118
- ls -lh $ROOT
119
- ls -lh $ROOT /ext/
120
- cd $ROOT
133
+ cd ${__PROJECT__}
0 commit comments