summaryrefslogtreecommitdiff
path: root/plan9
diff options
context:
space:
mode:
authorlufia <lufia@lufia.org>2019-03-26 22:26:05 +0900
committerDaniel Stenberg <daniel@haxx.se>2019-07-31 00:23:25 +0200
commit84aba180e22c1cfab41cae8074af01dcb20adb16 (patch)
treeddef5d0e97667398df819c8e154a0892bb2bf4d9 /plan9
parent6cd5c355092c9811acd5a4b339e5a453d23045e2 (diff)
downloadcurl-84aba180e22c1cfab41cae8074af01dcb20adb16.tar.gz
plan9: add support for running on Plan 9
Closes #3701
Diffstat (limited to 'plan9')
-rw-r--r--plan9/BUILD.PLAN9.txt55
-rw-r--r--plan9/include/mkfile34
-rw-r--r--plan9/lib/mkfile39
-rwxr-xr-xplan9/lib/mkfile.inc25
-rw-r--r--plan9/mkfile36
-rw-r--r--plan9/mkfile.proto30
-rw-r--r--plan9/src/mkfile45
-rwxr-xr-xplan9/src/mkfile.inc25
8 files changed, 289 insertions, 0 deletions
diff --git a/plan9/BUILD.PLAN9.txt b/plan9/BUILD.PLAN9.txt
new file mode 100644
index 000000000..1d04c5e7f
--- /dev/null
+++ b/plan9/BUILD.PLAN9.txt
@@ -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/portable/pull/510
+
+Instruction
+===========
+First, you should construct namespace as like described below:
+
+% bind -a ../lib lib
+% bind -a ../src src
+% bind -a ../include include
+% bind -a .. .
+
+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
diff --git a/plan9/include/mkfile b/plan9/include/mkfile
new file mode 100644
index 000000000..c1ed850fa
--- /dev/null
+++ b/plan9/include/mkfile
@@ -0,0 +1,34 @@
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+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
diff --git a/plan9/lib/mkfile b/plan9/lib/mkfile
new file mode 100644
index 000000000..d7a7ac5e2
--- /dev/null
+++ b/plan9/lib/mkfile
@@ -0,0 +1,39 @@
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+<../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
diff --git a/plan9/lib/mkfile.inc b/plan9/lib/mkfile.inc
new file mode 100755
index 000000000..0966d773e
--- /dev/null
+++ b/plan9/lib/mkfile.inc
@@ -0,0 +1,25 @@
+#!/bin/rc
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+# rename $(VAR) -> $VAR
+sed 's/\$\(([A-Z_]+)\)/$\1/g' Makefile.inc
diff --git a/plan9/mkfile b/plan9/mkfile
new file mode 100644
index 000000000..a9b4fe6da
--- /dev/null
+++ b/plan9/mkfile
@@ -0,0 +1,36 @@
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+</sys/src/ape/config
+
+DIRS=\
+ lib\
+ src\
+ include\
+
+default:V: all
+
+all install clean nuke:V:
+ for(i in $DIRS) @{
+ cd $i
+ mk $target
+ }
diff --git a/plan9/mkfile.proto b/plan9/mkfile.proto
new file mode 100644
index 000000000..edb79f50d
--- /dev/null
+++ b/plan9/mkfile.proto
@@ -0,0 +1,30 @@
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+</sys/src/ape/config
+
+CFLAGS=\
+ -D__PLAN9__\
+ -D_POSIX_SOURCE\
+ -D_BSD_EXTENSION\
+ -D_SUSV2_SOURCE\
+ -D_REENTRANT_SOURCE\
diff --git a/plan9/src/mkfile b/plan9/src/mkfile
new file mode 100644
index 000000000..889d06686
--- /dev/null
+++ b/plan9/src/mkfile
@@ -0,0 +1,45 @@
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+<../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
diff --git a/plan9/src/mkfile.inc b/plan9/src/mkfile.inc
new file mode 100755
index 000000000..0966d773e
--- /dev/null
+++ b/plan9/src/mkfile.inc
@@ -0,0 +1,25 @@
+#!/bin/rc
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 1998 - 2019, 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.haxx.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.
+#
+###########################################################################
+
+# rename $(VAR) -> $VAR
+sed 's/\$\(([A-Z_]+)\)/$\1/g' Makefile.inc