Update networking layer w/ CURL and emscripten impl

This commit is contained in:
2025-11-08 01:50:36 +11:00
parent a17925904d
commit f6874dc55a
4105 changed files with 694617 additions and 179 deletions
+55
View File
@@ -0,0 +1,55 @@
Prerequirement
==============
This document describes how to compile, build and install curl and libcurl
from sources using mk. To build it, you will require to install latest
9legacy patches into Plan 9. Also Plan 9 still have no configuration option so
both zlib and libopenssl are required too.
The zlib that is available on Plan 9 can be downloaded from:
https://github.com/madler/zlib/pull/398
LibreSSL Portable can be downloaded from:
https://github.com/libressl/portable/pull/510
Instruction
===========
First, you should construct namespace as like described below:
% bind -ac ../lib lib
% bind -ac ../src src
% bind -ac ../include include
% bind -ac .. .
Then you will see as shown below (excerpt):
curl.git/
|_plan9
| |_BUILD.PLAN9.txt
| |_CHANGES
| |_CMake
| | :
| |_mkfile
| |_mkfile.proto
| |_include
| | |_Makefile.am
| | | :
| | |_mkfile
| |_lib
| | |_CMakeLists.txt
| | | :
| | |_mkfile
| | |_mkfile.inc
| |_src
| | |_CMakeLists.txt
| | | :
| | |_mkfile
| | |_mkfile.inc
|_lib
|_src
After constructing namespace, you can run mk on plan9 directory.
% mk
% mk install
+36
View File
@@ -0,0 +1,36 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
DIR=/sys/include/ape/curl
HFILES=`{ls curl/*.h}
all:V: $HFILES
install:V: all
mkdir -p $DIR
cp curl/*.h $DIR/
clean:V: $HFILES # do nothing
nuke:V: clean
+41
View File
@@ -0,0 +1,41 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
<../mkfile.proto
<|mkfile.inc
CFLAGS=$CFLAGS -I../include -I. -c
OFILES=${CSOURCES:%.c=%.$O}
HFILES=$HHEADERS
LIB=/$objtype/lib/ape/libcurl.a
CLEANFILES=\
${LIB_VAUTH_CFILES:%.c=%.$O}\
${LIB_VTLS_CFILES:%.c=%.$O}\
</sys/src/cmd/mklib
%.$O: %.c
$CC $CFLAGS -o $target $stem.c
+27
View File
@@ -0,0 +1,27 @@
#!/bin/rc
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
# rename $(VAR) -> $VAR
sed 's/\$\(([A-Z_]+)\)/$\1/g' Makefile.inc
+38
View File
@@ -0,0 +1,38 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
</sys/src/ape/config
DIRS=\
lib\
src\
include\
default:V: all
all install clean nuke:V:
for(i in $DIRS) @{
cd $i
mk $target
}
+32
View File
@@ -0,0 +1,32 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
</sys/src/ape/config
CFLAGS=\
-D__PLAN9__\
-D_POSIX_SOURCE\
-D_BSD_EXTENSION\
-D_SUSV2_SOURCE\
-D_REENTRANT_SOURCE\
+47
View File
@@ -0,0 +1,47 @@
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
<../mkfile.proto
<|mkfile.inc
CFLAGS=$CFLAGS -I../include -I../lib -c
OFILES=${CURL_CFILES:%.c=%.$O}
HFILES=$CURL_HFILES
LIB=\
/$objtype/lib/ape/libcurl.a\
/$objtype/lib/ape/libssl.a\
/$objtype/lib/ape/libcrypto.a\
/$objtype/lib/ape/libz.a\
BIN=/$objtype/bin
TARG=curl
CLEANFILES=tool_hugehelp.c
</sys/src/cmd/mkone
tool_hugehelp.c:
echo 'void hugehelp(void) {}' >$target
+27
View File
@@ -0,0 +1,27 @@
#!/bin/rc
#***************************************************************************
# _ _ ____ _
# Project ___| | | | _ \| |
# / __| | | | |_) | |
# | (__| |_| | _ <| |___
# \___|\___/|_| \_\_____|
#
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
# SPDX-License-Identifier: curl
#
###########################################################################
# rename $(VAR) -> $VAR
sed 's/\$\(([A-Z_]+)\)/$\1/g' Makefile.inc