summaryrefslogtreecommitdiffhomepage
path: root/README.SOFORT
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2019-01-01 13:21:04 -0500
committermidipix <writeonce@midipix.org>2019-01-01 13:21:04 -0500
commitac79774f4090410c09aaff50d4004fc9793cc34f (patch)
tree6782f6cdf759ae96c89e781385249d22fd55e798 /README.SOFORT
parent6ebaa61bdfb2b3134af9b1f8a039336b9ee3b1c2 (diff)
downloadsofort-ac79774f4090410c09aaff50d4004fc9793cc34f.tar.bz2
sofort-ac79774f4090410c09aaff50d4004fc9793cc34f.tar.xz
renamed README --> README.SOFORT for seamless merging into existing projects.
Diffstat (limited to 'README.SOFORT')
-rw-r--r--README.SOFORT78
1 files changed, 78 insertions, 0 deletions
diff --git a/README.SOFORT b/README.SOFORT
new file mode 100644
index 0000000..3ba8441
--- /dev/null
+++ b/README.SOFORT
@@ -0,0 +1,78 @@
+sofort: portable software project template
+------------------------------------------
+
+This README file aims to speed-up the initial use of sofort
+with your own project while accounting for diverse groups
+of learners.
+
+On that note, and in addition to making the most out of this document,
+you might want to join the (un)usually friendly #midipix channel on
+the freenode irc network.
+
+======================================================================
+
+LEARN BY COMPARISON:
+
+# git clone git://midipix.org/sofort
+# git clone git://midipix.org/mdso
+# diff -u sofort/config.project mdso/config.project
+# diff -ru sofort/project mdso/project
+
+======================================================================
+
+LEARN BY EXAMPLE:
+
+* mdso: basic configuration, explicit source list
+https://git.midipix.org/cgit.cgi/mdso/
+
+* bfirm: an external build project for libfirm, using wildcards
+ in project/common.mk and project/headers.mk.
+https://git.midipix.org/cgit.cgi/compilers/bfirm/
+
+* sbpython3: an external build project for python3.x, utilizing
+ sofort's config test framework (cfgtest.sh) and a custom config
+ step (project/config/cfgdefs.sh).
+
+======================================================================
+
+LEARN BY INSTRUCTION:
+
+First Use-Case: using sofort with an existing project
+-- keep your original repository and the build project separate;
+-- allow testing the new build system (sofort) against the old one;
+-- merge the two at the time of your choice.
+
+-- for the purpose of illustration:
+:: foo (directory containing your original project)
+:: bfoo (directory containing the new build project)
+:: temp (where you'll run configure, which could be bfoo or elsewhere)
+
+* copy all files and folders from the top-level sofort repository
+ into bfoo; the _include_ and _src_ sub-directories are place-holders,
+ and may thus be removed.
+
+* edit config.project, keeping all three components (front-end, shared,
+ static) disabled for the time being.
+
+* test that everything is ready:
+ cd temp && /path/to/bfoo/configure --source-dir=/path/to/foo && make
+
+* the default location for public (api) headers is include/foo/
+
+* edit project/common.mk and project/headers.mk. Whether you use
+ wildcards or explicit references to source files and headers is
+ entirely up to you, and bears no effect on the build process.
+
+* edit config.project again, and enable the relevant component(s), that
+ is, any or all of front-end, shared, and static); note also that you
+ may remove whichever portion of config.project that is irrelevant to
+ your project.
+
+* test again.
+
+Second Use-Case: using sofort with a new project
+-- keeping everything under a single repository;
+-- no need to pass --source-dir=/path/to/foo to configure;
+-- otherwise identical to the first use-case, as outlined above.
+
+======================================================================