diff options
author | lufia <lufia@lufia.org> | 2019-03-26 22:26:05 +0900 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-07-31 00:23:25 +0200 |
commit | 84aba180e22c1cfab41cae8074af01dcb20adb16 (patch) | |
tree | ddef5d0e97667398df819c8e154a0892bb2bf4d9 /plan9 | |
parent | 6cd5c355092c9811acd5a4b339e5a453d23045e2 (diff) | |
download | curl-84aba180e22c1cfab41cae8074af01dcb20adb16.tar.gz |
plan9: add support for running on Plan 9
Closes #3701
Diffstat (limited to 'plan9')
-rw-r--r-- | plan9/BUILD.PLAN9.txt | 55 | ||||
-rw-r--r-- | plan9/include/mkfile | 34 | ||||
-rw-r--r-- | plan9/lib/mkfile | 39 | ||||
-rwxr-xr-x | plan9/lib/mkfile.inc | 25 | ||||
-rw-r--r-- | plan9/mkfile | 36 | ||||
-rw-r--r-- | plan9/mkfile.proto | 30 | ||||
-rw-r--r-- | plan9/src/mkfile | 45 | ||||
-rwxr-xr-x | plan9/src/mkfile.inc | 25 |
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 |