commit 99fc598068825661fa07f5a1b6e9c63df0d21c9f
parent df1f85b6edb655a5b922bbd82ef6e4cee9848940
Author: Remy Noulin <loader2x@gmail.com>
Date: Tue, 9 Jul 2019 16:17:29 +0200
add build command for musl libc
README.md | 10 ++++++++++
buildMusl.sh | 30 ++++++++++++++++++++++++++++++
example/README.template | 10 ++++++++++
3 files changed, 50 insertions(+)
Diffstat:
3 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
@@ -128,6 +128,16 @@ The compiled lib and headers are in release/ after `make all` or `build.sh` succ
The lib is installed in `/usr/local/` and in `/data/data/com.termux/files/usr/` in Termux
+On systems using glibc, it is possible to link against the musl libc (musl libc must be installed in the system, typically on /usr/local/) by running:
+
+```
+./clean.sh
+./buildMusl.sh
+./install.sh
+```
+
+For the musl libc setup in sheepy, see [README.md](https://spartatek.se/r/sheepy/file/README.md.html) in the sheepy repo
+
# Examples
This code shows some features of the smallArray and smallJson classes:
diff --git a/buildMusl.sh b/buildMusl.sh
@@ -0,0 +1,30 @@
+CC="gcc -ggdb -std=gnu99 -fPIC -pipe -mrdrnd -pthread -specs /usr/local/musl/lib/musl-gcc.specs -DMUSL_LIBC=1"
+STATIC="ar -cvq"
+DYNAMIC="-shared"
+
+echo "Compiling C files"
+$CC -c release/libsheepy.c
+$CC -c release/libsheepySmall.c
+$CC -c src/json/libsheepyObject.c
+$CC -c src/json/libsheepyCSmallJson.c
+$CC -c src/json/libsheepyCUndefined.c
+$CC -c src/json/libsheepyCSmallDict.c
+$CC -c src/json/libsheepyCSmallArray.c
+$CC -c src/json/libsheepyCSmallBytes.c
+$CC -c src/json/libsheepyCSmallBool.c
+$CC -c src/json/libsheepyCSmallContainer.c
+$CC -c src/json/libsheepyCSmallDouble.c
+$CC -c src/json/libsheepyCSmallInt.c
+$CC -c src/json/libsheepyCSmallString.c
+$CC -c src/json/laxjson.c
+$CC -c src/json/ymlParser.c
+$CC -c src/json/ymlApi.c
+$CC -c src/json/ymlScanner.c
+$CC -c src/json/ymlReader.c
+$CC -c src/tpool.c
+
+echo "Building static lib"
+$STATIC release/libsheepy.a libsheepy.o libsheepySmall.o libsheepyObject.o libsheepyCSmallJson.o libsheepyCUndefined.o libsheepyCSmallDict.o libsheepyCSmallArray.o libsheepyCSmallBytes.o libsheepyCSmallBool.o libsheepyCSmallContainer.o libsheepyCSmallDouble.o libsheepyCSmallInt.o libsheepyCSmallString.o laxjson.o ymlParser.o ymlApi.o ymlScanner.o ymlReader.o tpool.o
+
+echo "Building dynamic lib"
+$CC $DYNAMIC -o release/libsheepy.so release/libsheepy.c release/libsheepySmall.c src/json/libsheepyObject.c src/json/libsheepyCSmallJson.c src/json/libsheepyCUndefined.c src/json/libsheepyCSmallDict.c src/json/libsheepyCSmallArray.c src/json/libsheepyCSmallBytes.c src/json/libsheepyCSmallBool.c src/json/libsheepyCSmallContainer.c src/json/libsheepyCSmallDouble.c src/json/libsheepyCSmallInt.c src/json/libsheepyCSmallString.c src/json/laxjson.c src/json/ymlParser.c src/json/ymlApi.c src/json/ymlScanner.c src/json/ymlReader.c src/tpool.c
diff --git a/example/README.template b/example/README.template
@@ -128,6 +128,16 @@ The compiled lib and headers are in release/ after `make all` or `build.sh` succ
The lib is installed in `/usr/local/` and in `/data/data/com.termux/files/usr/` in Termux
+On systems using glibc, it is possible to link against the musl libc (musl libc must be installed in the system, typically on /usr/local/) by running:
+
+```
+./clean.sh
+./buildMusl.sh
+./install.sh
+```
+
+For the musl libc setup in sheepy, see [README.md](https://spartatek.se/r/sheepy/file/README.md.html) in the sheepy repo
+
# Examples
This code shows some features of the smallArray and smallJson classes: