Browse code

remove .bootstrap, remove bin, add mulle-project, remove templates

Nat! authored on 19-02-2018 23:49:51
Showing 14 changed files
1 1
deleted file mode 100644
... ...
@@ -1 +0,0 @@
1
-MULLE_REPOSITORIES merge=ours
2 0
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-${MULLE_EMBEDDED_REPOSITORIES:-https://github.com/mulle-nat}/mulle-tests;tests/mulle-tests;${MULLE_TESTS_BRANCH:-release}
2
-${MULLE_EMBEDDED_REPOSITORIES:-https://github.com/mulle-nat}/mulle-configuration;;${MULLE_CONFIGURATION_BRANCH:-release}
3 0
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-# aba pulls threads and allocators
2
-${MULLE_REPOSITORIES:-https://github.com/mulle-nat}/mulle-aba;;${MULLE_ABA_BRANCH:-release}
3 0
deleted file mode 100644
... ...
@@ -1 +0,0 @@
1
-repository-info.sh merge=ours
2 0
deleted file mode 100644
... ...
@@ -1,5 +0,0 @@
1
-PROJECT="mulle-concurrent"
2
-DESC="Lock- and Wait-free Hashtable (and an Array too) in C"
3
-DEPENDENCIES='${DEPENDENCY_TAP}mulle-allocator
4
-${DEPENDENCY_TAP}mulle-aba
5
-${DEPENDENCY_TAP}mulle-thread'
6 0
deleted file mode 100755
... ...
@@ -1,146 +0,0 @@
1
-#! /usr/bin/env bash
2
-#
3
-#   Copyright (c) 2017 Nat! - Codeon GmbH
4
-#   All rights reserved.
5
-#
6
-#   Redistribution and use in source and binary forms, with or without
7
-#   modification, are permitted provided that the following conditions are met:
8
-#
9
-#   Redistributions of source code must retain the above copyright notice, this
10
-#   list of conditions and the following disclaimer.
11
-#
12
-#   Redistributions in binary form must reproduce the above copyright notice,
13
-#   this list of conditions and the following disclaimer in the documentation
14
-#   and/or other materials provided with the distribution.
15
-#
16
-#   Neither the name of Mulle kybernetiK nor the names of its contributors
17
-#   may be used to endorse or promote products derived from this software
18
-#   without specific prior written permission.
19
-#
20
-#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
-#   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
-#   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23
-#   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24
-#   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
-#   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
-#   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
-#   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
-#   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
-#   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
-#   POSSIBILITY OF SUCH DAMAGE.
31
-#
32
-#
33
-# For documentation and help see:
34
-#    https://github.com/mulle-nat/mulle-homebrew
35
-#
36
-# Run this somewhat like this (for real: remove -n):
37
-#   ./bin/release.sh -v -n --publisher mulle-nat --publisher-tap mulle-kybernetik/software/
38
-#
39
-
40
-#######
41
-# If you are using mulle-build, you don't hafta change anything
42
-#######
43
-
44
-#
45
-# Generate your `def install` `test do` lines here. echo them to stdout.
46
-#
47
-generate_brew_formula_build()
48
-{
49
-   local project="$1"
50
-   local name="$2"
51
-   local version="$3"
52
-
53
-   generate_brew_formula_mulle_build "${project}" "${name}" "${version}"
54
-   generate_brew_formula_mulle_test  "${project}" "${name}" "${version}"
55
-}
56
-
57
-
58
-#
59
-# If you are unhappy with the formula in general, then change
60
-# this function. Print your formula to stdout.
61
-#
62
-generate_brew_formula()
63
-{
64
-#   local project="$1"
65
-#   local name="$2"
66
-#   local version="$3"
67
-#   local dependencies="$4"
68
-#   local builddependencies="$5"
69
-#   local homepage="$6"
70
-#   local desc="$7"
71
-#   local archiveurl="$8"
72
-
73
-   _generate_brew_formula "$@"
74
-}
75
-
76
-
77
-#######
78
-# Ideally changes to the following values are done with the command line
79
-# which makes it easier for forks.
80
-#######
81
-
82
-MULLE_BOOTSTRAP_FAIL_PREFIX="`basename -- $0`"
83
-MULLE_HOMEBREW_VERSION="5.1.0"
84
-
85
-if [ -z "`command -v mulle-homebrew-env`" ]
86
-then
87
-   cat <<EOF >&2
88
-mulle-homebrew-env not found in PATH.
89
-Visit the homepage for installation instructions:
90
-   https://github.com/mulle-nat/mulle-homebrew
91
-EOF
92
-   exit 1
93
-fi
94
-
95
-INSTALLED_MULLE_HOMEBREW_VERSION="`mulle-homebrew-env version`" || exit 1
96
-LIBEXEC_DIR="`mulle-homebrew-env libexec-path`" || exit 1
97
-
98
-. "${LIBEXEC_DIR}/mulle-files.sh"       || exit 1
99
-. "${LIBEXEC_DIR}/mulle-homebrew.sh"    || exit 1
100
-. "${LIBEXEC_DIR}/mulle-git.sh"         || exit 1
101
-. "${LIBEXEC_DIR}/mulle-version.sh"     || exit 1
102
-. "${LIBEXEC_DIR}/mulle-environment.sh" || exit 1
103
-
104
-
105
-main()
106
-{
107
-   if [ "${DO_GIT_RELEASE}" != "YES" -a "${DO_GENERATE_FORMULA}" != "YES" ]
108
-   then
109
-      fail "Nothing to do! bin/version-info.sh and bin/formula-info.sh are missing"
110
-   fi
111
-
112
-   if [ "${DO_GIT_RELEASE}" = "YES" ]
113
-   then
114
-     # do the release
115
-      git_main "${BRANCH}" "${ORIGIN}" "${TAG}" "${GITHUB}" || exit 1
116
-   fi
117
-
118
-   if [ "${DO_GENERATE_FORMULA}" != "YES" ]
119
-   then
120
-       return
121
-   fi
122
-
123
-   if [ -z "${PUBLISHER}" ]
124
-   then
125
-      fail "You need to specify a publisher with --publisher (hint: https://github.com/<publisher>)"
126
-   fi
127
-
128
-   if [ -z "${PUBLISHER_TAP}" ]
129
-   then
130
-      fail "You need to specify a publisher tap with --tap (hint: <mulle-kybernetik/software>)"
131
-   fi
132
-
133
-   # generate the formula and push it
134
-   homebrew_main "${PROJECT}" \
135
-                 "${NAME}" \
136
-                 "${VERSION}" \
137
-                 "${DEPENDENCIES}" \
138
-                 "${BUILD_DEPENDENCIES}" \
139
-                 "${HOMEPAGE_URL}" \
140
-                 "${DESC}" \
141
-                 "${ARCHIVE_URL}" \
142
-                 "${HOMEBREW_TAP}" \
143
-                 "${RBFILE}"
144
-}
145
-
146
-main "$@"
147 0
deleted file mode 100644
... ...
@@ -1,18 +0,0 @@
1
-#! /bin/sh
2
-
3
-# ARCHIVEURL will be evaled later! keep it in single quotes
4
-# where homebrew grabs the archive off
5
-ARCHIVEURL='https://github.com/mulle-nat/${NAME}/archive/${VERSION}.tar.gz'
6
-
7
-# written into formula for homebrew, will be evaled
8
-HOMEPAGE='https://github.com/mulle-nat/${NAME}'
9
-
10
-# git remote to push to, usually origin
11
-ORIGIN='public'
12
-
13
-# base tap for dependencies
14
-DEPENDENCY_TAP='mulle-kybernetik/software'
15
-
16
-
17
-# keep this
18
-:
19 0
new file mode 100755
... ...
@@ -0,0 +1,31 @@
1
+# -- Formula Info --
2
+# If you don't have this file, there will be no homebrew
3
+# formula operations.
4
+#
5
+PROJECT="mulle-concurrent"      # your project/repository name
6
+DESC="mulle-concurrent is ..."
7
+# LANGUAGE="c"             # c,cpp, objc, bash ...
8
+# NAME="${PROJECT}"        # formula filename without .rb extension
9
+
10
+#
11
+# Specify needed homebrew packages by name as you would when saying
12
+# `brew install`.
13
+#
14
+# Use the ${DEPENDENCY_TAP} prefix for non-official dependencies.
15
+# DEPENDENCIES and BUILD_DEPENDENCIES will be evaled later!
16
+# So keep them single quoted.
17
+#
18
+# DEPENDENCIES='${DEPENDENCY_TAP}mulle-concurrent
19
+# libpng
20
+# '
21
+
22
+#
23
+# Build via mulle-build. If you don't like this
24
+# edit bin/release.sh. Need to specify mulle-build dependencies
25
+# so that brew picks up the internal path!
26
+#
27
+BUILD_DEPENDENCIES='${BUILDTOOLS_TAP}mulle-craft
28
+${BUILDTOOLS_TAP}mulle-make
29
+${BUILDTOOLS_TAP}mulle-sourcetree
30
+${BUILDTOOLS_TAP}mulle-fetch
31
+cmake'
0 32
new file mode 100755
... ...
@@ -0,0 +1,65 @@
1
+#
2
+# For documentation and help see:
3
+#    https://github.com/mulle-sde/mulle-project
4
+#
5
+#
6
+
7
+generate_brew_formula_build
8
+{
9
+   local project="$1"
10
+   local name="$2"
11
+   local version="$3"
12
+
13
+   generate_brew_configure_formula_build
14
+#   generate_brew_cmake_formula_build
15
+#   generate_script_brew_formula_build
16
+}
17
+
18
+
19
+####
20
+#### Example code
21
+####
22
+generate_brew_configure_formula_build()
23
+{
24
+  cat <<EOF
25
+
26
+  def install
27
+    system "./configure", "--disable-debug",
28
+                          "--disable-dependency-tracking",
29
+                          "--disable-silent-rules",
30
+                          "--prefix=#{prefix}"
31
+    system "make", "install"
32
+  end
33
+
34
+  test do
35
+    system "false"
36
+  end
37
+EOF
38
+}
39
+
40
+
41
+generate_brew_cmake_formula_build()
42
+{
43
+  cat <<EOF
44
+
45
+  def install
46
+    system "cmake", ".", *std_cmake_args
47
+    system "make", "install"
48
+  end
49
+
50
+  test do
51
+    system "false"
52
+  end
53
+EOF
54
+}
55
+
56
+
57
+generate_script_brew_formula_build()
58
+{
59
+   cat <<EOF
60
+def install
61
+  system "./install.sh", "#{prefix}"
62
+end
63
+EOF
64
+}
65
+
0 66
similarity index 58%
1 67
rename from bin/version-info.sh
2 68
rename to mulle-project/version-info.sh
... ...
@@ -1,8 +1,8 @@
1 1
 # -- Version Info --
2 2
 #
3 3
 # Keep these commented out, if the automatic detection works well
4
-# enough for you. If you don't have this file, there will be 
5
-# not git operations. 
4
+# enough for you. If you don't have this file, there will be
5
+# not git operations.
6 6
 #
7 7
 # VERSIONFILE=
8 8
 # VERSIONNAME=
9 9
deleted file mode 100644
... ...
@@ -1,17 +0,0 @@
1
-# Templates to support forks
2
-
3
-The templates in this directory structure were initially created with
4
-`mulle-objc-create-templates`.
5
-
6
-Recreate the original files from the templates with
7
-
8
-```
9
-mulle-objc-process-templates --publisher 'mulle-nat' --tap 'mulle-kybernetik/software'
10
-```
11
-
12
-or substitute with your own publisher information.
13
-
14
-
15
-`mulle-objc-process-templates` and `mulle-objc-create-templates` are part of
16
-[mulle-objc-developer](https://github.com/mulle-objc/mulle-objc-developer)
17 0
deleted file mode 100644
... ...
@@ -1,62 +0,0 @@
1
-# mulle-concurrent
2
-
3
-**mulle-concurrent** is a library for lock- and wait-free data structures.
4
-Wait-freeness is a desirable property for "hotly" contested data structures
5
-in multi-threaded environments.
6
-
7
-> Many of the ideas are taken from [Preshing on Programming: A Resizable, Concurrent Map](http://preshing.com/20160222/a-resizable-concurrent-map/).
8
-> The definition of concurrent and wait-free are from [concurrencyfreaks.blogspot.de](http://concurrencyfreaks.blogspot.de/2013/05/lock-free-and-wait-free-definition-and.html)
9
-
10
-
11
-Fork      |  Build Status | Release Version
12
-{% if PUBLISHER != "mulle-objc" %}
13
-[{{PUBLISHER_FULLNAME}}](//github.com/{{PUBLISHER}}/mulle-concurrent) | [![Build Status](https://travis-ci.org/{{PUBLISHER}}/mulle-concurrent.svg?branch=release)](https://travis-ci.org/{{PUBLISHER}}/mulle-concurrent) | ![{{PUBLISHER_FULLNAME}} tag](https://img.shields.io/github/tag/{{PUBLISHER}}/mulle-concurrent.svg) [![Build Status](https://travis-ci.org/{{PUBLISHER}}/mulle-concurrent.svg?branch=release)](https://travis-ci.org/{{PUBLISHER}}/mulle-concurrent)
14
-{% endif %}
15
-[Community](https://github.com/mulle-objc/mulle-concurrent/tree/release) | [![Build Status](https://travis-ci.org/mulle-objc/mulle-concurrent.svg)](https://travis-ci.org/mulle-objc/mulle-concurrent) | ![Community tag](https://img.shields.io/github/tag/mulle-objc/mulle-concurrent.svg) [![Build Status](https://travis-ci.org/mulle-objc/mulle-concurrent.svg?branch=release)](https://travis-ci.org/mulle-objc/mulle-concurrent)
16
-
17
-
18
-## Data structures
19
-
20
-API                                                   | Description    | Example
21
-[`mulle_concurrent_hashmap`](dox/API_POINTERARRAY.md) | A growing, mutable map of pointers, indexed by a hash. A.k.a. hashtable, dictionary, maptable | [Example](tests/hashmap/example.c)
22
-[`mulle_concurrent_pointerarray`](dox/API_HASHMAP.md) | A growing array of pointers                                                               | [Example](tests/array/example.c)
23
-
24
-
25
-## Install
26
-
27
-On OS X and Linux you can use
28
-[homebrew](//brew.sh), respectively
29
-[linuxbrew](//linuxbrew.sh)
30
-to install the library:
31
-
32
-```
33
-brew install mulle-objc/softwaremulle-concurrent
34
-```
35
-
36
-On other platforms you can use **mulle-install** from
37
-[mulle-build](//www.mulle-kybernetik.com/software/git/mulle-build)
38
-to install the library:
39
-
40
-```
41
-mulle-install --prefix /usr/local --branch release https://github.com/mulle-objc/mulle-concurrent
42
-```
43
-
44
-Otherwise read:
45
-
46
-* [How to Build](dox/BUILD.md)
47
-
48
-
49
-### Platforms and Compilers
50
-
51
-All platforms and compilers supported by
52
-[mulle-c11](//www.mulle-kybernetik.com/software/git/mulle-c11/) and
53
-[mulle-thread](//www.mulle-kybernetik.com/software/git/mulle-thread/).
54
-
55
-
56
-## Author
57
-
58
-[Nat!](//www.mulle-kybernetik.com/weblog) for
59
-[Mulle kybernetiK](//www.mulle-kybernetik.com) and
60
-[Codeon GmbH](//www.codeon.de)
61 0
deleted file mode 100644
... ...
@@ -1,2 +0,0 @@
1
-<!-- [comment]: <> ({{COMMENT}}) -->
2
-{% includes TEMPLATE_FILE %}
3 0
deleted file mode 100644
... ...
@@ -1,123 +0,0 @@
1
-# How to build mulle-concurrent
2
-
3
-
4
-## What you get
5
-
6
-* `libmulle_concurrent.a` the mulle-concurrent static library along with a
7
-bunch of headers.
8
-
9
-
10
-## Prerequisites
11
-
12
-#### mulle-aba
13
-
14
-[mulle-aba](//www.mulle-kybernetik.com/software/git/mulle-aba/) provides the
15
-ABA safe freeing of resources. Or use your own ABA free routine and place it
16
-in the allocator.
17
-
18
-#### mulle-allocator
19
-
20
-[mulle-allocator](//www.mulle-kybernetik.com/software/git/mulle-allocator/)
21
-contains the memory-allocation scheme, that mulle-concurrent uses.
22
-
23
-#### mulle-c11
24
-
25
-[mulle-c11](//www.mulle-kybernetik.com/software/git/mulle-c11/) is a header
26
-that abstracts a small set of non-standardized compiler features.
27
-
28
-#### mulle-configuration
29
-
30
-[mulle-configuration](//www.mulle-kybernetik.com/software/git/mulle-configuration/)
31
-are configuration files for building with Xcode or cmake. This is expected to
32
-exist in the project directory root.
33
-
34
-#### mulle-thread
35
-
36
-[mulle-thread](//www.mulle-kybernetik.com/software/git/mulle-thread/) contains
37
-the necessary atomic operations.
38
-
39
-
40
-
41
-## Nice to have
42
-
43
-#### mulle-build
44
-
45
-[mulle-build](//www.mulle-kybernetik.com/software/git/mulle-build) is used
46
-to assemble the dependencies together and build the library.
47
-
48
-#### mulle-homebrew
49
-
50
-[mulle-homebrew](//www.mulle-kybernetik.com/software/git/mulle-homebrew/) is
51
-support for generating homebrew formulae. This is expected to
52
-exist in `./bin`, if you want to release a fork.
53
-
54
-#### mulle-tests
55
-
56
-[mulle-tests](//www.mulle-kybernetik.com/software/git/mulle-tests/) are
57
-scripts to provide an environment for running the tests. This is expected to
58
-exist in `./tests`, if you want to run tests.
59
-
60
-
61
-### Windows: Installing further prerequisites
62
-
63
-Check the [mulle-build README.md](//www.mulle-kybernetik.com/software/git/mulle-build/README.md)
64
-for instructions how to get the "Git for Windows" bash going.
65
-
66
-
67
-### OSX: Install mulle-build using homebrew
68
-
69
-Install the [homebrew](//brew.sh/) package manager, then
70
-
71
-```
72
-brew tap {{PUBLISHER_TAP}}
73
-brew install mulle-build
74
-```
75
-
76
-### Linux: Install mulle-build using linuxbrew
77
-
78
-Install the [linuxbrew](//linuxbrew.sh/) package manager, then it seems you
79
-may need `python-setuptools` dependency as well:
80
-
81
-```
82
-sudo apt-get install python-setuptools
83
-```
84
-
85
-and then
86
-
87
-```
88
-brew tap {{PUBLISHER_TAP}}
89
-brew install mulle-build
90
-```
91
-
92
-### All: Install mulle-build using git
93
-
94
-```
95
-git clone --branch release https://github.com/{{PUBLISHER}}/mulle-bootstrap
96
-( cd mulle-bootstrap ; ./install.sh )
97
-git clone --branch release https://github.com/{{PUBLISHER}}/mulle-build
98
-( cd mulle-build ; ./install.sh )
99
-```
100
-
101
-## All: Install mulle-concurrent using mulle-build
102
-
103
-
104
-Grab the latest **mulle-concurrent** release and go into the project directory:
105
-
106
-```
107
-git clone --branch release https://github.com/mulle-objc/mulle-concurrent
108
-cd mulle-concurrent
109
-```
110
-
111
-Then let **mulle-build** fetch the dependencies and
112
-build **mulle-concurrent** in debug mode:
113
-
114
-```
115
-mulle-build --debug
116
-```
117
-
118
-Build library in release mode and install into `tmp` :
119
-
120
-```
121
-mulle-clean ;
122
-mulle-install --prefix /tmp
123
-```