Commit d1cea3eb authored by Rusty Russell's avatar Rusty Russell

gitify the tree, especially the web makefile.

parent 61ab4524
.depends
*.d
*.o
ccan/*-Makefile
*~
tools/ccan_depends
tools/doc_extract
......
......@@ -94,7 +94,7 @@ libccan.a(%.o): ccan/%.o
$(AR) r $@ $<
clean: tools-clean
$(RM) `find . -name '*.o'` `find . -name '.depends'` `find . -name '*.a'` `find . -name info` `find . -name '*.d'`
$(RM) `find * -name '*.o'` `find * -name '.depends'` `find * -name '*.a'` `find * -name info` `find * -name '*.d'`
$(RM) inter-depends lib-depends test-depends ccan/*-Makefile
# Creates a dependency from the tests to the object files which it needs.
......
......@@ -2,7 +2,7 @@
WEBDIR=/home/rusty/www/html/ccan
# Ignore EXCLUDE when making webpages.
REALLY_ALL=$(patsubst ccan/%/_info, %, $(shell bzr ls -R ccan | grep '/_info$$'))
REALLY_ALL=$(patsubst ccan/%/_info, %, $(wildcard ccan/*/_info))
ALL_PAGES=$(patsubst %, $(WEBDIR)/info/%.html, $(REALLY_ALL))
DIRECT_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/%.tar.bz2, $(REALLY_ALL))
DEPEND_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/with-deps/%.tar.bz2, $(REALLY_ALL))
......@@ -10,28 +10,29 @@ WEB_SUBDIRS=$(WEBDIR)/tarballs $(WEBDIR)/junkcode $(WEBDIR)/tarballs/with-deps $
JUNKDIRS=$(wildcard junkcode/*)
JUNKPAGES=$(JUNKDIRS:%=$(WEBDIR)/%.html)
JUNKBALLS=$(JUNKDIRS:%=$(WEBDIR)/%.tar.bz2)
BZRBROWSE=$(WEBDIR)/bzrbrowse.cgi $(WEBDIR)/file.png $(WEBDIR)/folder.png $(WEBDIR)/symlink.png
upload: fastcheck webpages
bzr push
send-web # Rusty's upload script.
upload: fastcheck
git push origin HEAD:master
webpages: $(WEB_SUBDIRS) $(WEBDIR)/index.html $(WEBDIR)/upload.html $(WEBDIR)/uploader.php $(WEBDIR)/example-config.h $(WEBDIR)/ccan.jpg $(BZRBROWSE) $(DIRECT_TARBALLS) $(DEPEND_TARBALLS) $(WEBDIR)/ccan.tar.bz2 $(WEBDIR)/Makefile-ccan $(ALL_PAGES) junkpages
clean-tree:
! git status --porcelain | grep .
junkpages: $(WEBDIR)/list.html $(WEBDIR)/junkcode $(JUNKPAGES) $(JUNKBALLS)
$(WEB_SUBDIRS):
webpages: clean-tree $(WEB_SUBDIRS) $(WEBDIR)/index.html $(WEBDIR)/upload.html $(WEBDIR)/uploader.php $(WEBDIR)/example-config.h $(WEBDIR)/ccan.jpg $(DIRECT_TARBALLS) $(DEPEND_TARBALLS) $(WEBDIR)/ccan.tar.bz2 $(WEBDIR)/Makefile-ccan $(ALL_PAGES) junkpages
junkpages: $(WEBDIR)/list.html $(WEBDIR)/junkcode $(JUNKPAGES) $(JUNKBALLS)
$(WEB_SUBDIRS): $(WEBDIR)
mkdir -p $@
$(WEBDIR)/junkcode/%.tar.bz2: junkcode/% $(WEBDIR)/junkcode
(bzr ls --recursive --versioned --kind=file --null $<; bzr ls --recursive --versioned --kind=symlink --null $<) | xargs -0 -x tar cvfj $@
git ls-files -z $< | xargs -0 -x tar cvfj $@
$(WEBDIR)/junkcode/%.html: $(WEBDIR)/junkcode/%.tar.bz2
cd $(WEBDIR) && tar xfj junkcode/$*.tar.bz2
php5 web/staticjunkcode.php junkcode/$* $* > $@
# We want tarball to contain ccan/
$(WEBDIR)/ccan.tar.bz2: config.h Makefile Makefile-ccan $(shell bzr ls --versioned --kind=file --recursive ccan) $(shell bzr ls --versioned --recursive --kind=file tools) $(shell bzr ls --versioned --kind=symlink --recursive ccan) $(shell bzr ls --versioned --recursive --kind=symlink tools)
DIR=`pwd` && cd /tmp && ln -sf "$$DIR" ccan && tar cvfj $@ `for f in $^; do echo ccan/$$f; done` && rm ccan
# We want tarball to contain ccan/; we put junkcode in, but don't depend on it.
$(WEBDIR)/ccan.tar.bz2: config.h Makefile Makefile-ccan $(shell git ls-files ccan tools licenses)
DIR=`pwd` && cd /tmp && ln -sf "$$DIR" ccan && tar cvfj $@ `for f in $^; do echo ccan/$$f; done` ccan/junkcode && rm ccan
$(ALL_PAGES): tools/doc_extract web/staticmoduleinfo.php
......@@ -57,17 +58,14 @@ $(WEBDIR)/Makefile-ccan: Makefile-ccan
$(WEBDIR)/ccan.jpg: web/ccan.jpg
cp $< $@
$(BZRBROWSE): $(WEBDIR)/%: web/bzrbrowse/%
cp $< $@
$(WEBDIR)/info/%.html: $(WEBDIR)/tarballs/%.tar.bz2 $(WEBDIR)/tarballs/with-deps/%.tar.bz2
URLPREFIX=../ php5 web/staticmoduleinfo.php `pwd`/ccan/$* > $@
$(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info
tar -c -j -f $@ `bzr ls --recursive --versioned --kind=file ccan/$*` `bzr ls --recursive --versioned --kind=symlink ccan/$*` $$(for l in $$(bzr ls --recursive --versioned --kind=symlink ccan/$* | xargs -r ls -l | sed 's,.*/,,'); do echo licenses/$$l; done | sort -u)
$(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info clean-tree
tar -c -j -f $@ $$(git ls-files ccan/$*) $$(git ls-files ccan/$* | xargs -n1 -r readlink | sed -n 's,^../../,,p' | sort -u)
$(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/%/_info tools/ccan_depends
tar cfj $@ $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) | xargs -n 1 bzr ls --recursive --versioned --kind=file) $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) | xargs -n 1 bzr ls --recursive --versioned --kind=symlink) $$(for l in $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) | xargs -r -n 1 bzr ls --recursive --versioned --kind=symlink | xargs -r ls -l | sed 's,.*/,,'); do echo licenses/$$l; done | sort -u)
$(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/%/_info tools/ccan_depends clean-tree
tar -c -j -f $@ $$(git ls-files $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) ) ) $$(git ls-files $$(echo ccan/$* $$(tools/ccan_depends ccan/$*) ) | xargs -n1 -r readlink | sed -n 's,^../../,,p' | sort -u)
distclean: distclean-web
......
......@@ -18,33 +18,36 @@ CCAN is loosely modelled after the successful <a href="http://cpan.org">CPAN pro
for Perl code development and sharing.
</p>
<h2>Getting The Code</h2>
<h2>Get The Code</h2>
<p> You can get each module as a tarball (<a href="list.html">see
list</a>), get a tarball of <a href="ccan.tar.bz2">the whole repository</a> with tools,
or clone our <a href="http://git.ozlabs.org/?p=ccan">git repository</a> (<tt>git clone git://git.ozlabs.org/~ccan/ccan</tt>).
</p>
<h2>Use The Code</h2>
<p>
Once you <a href="list.html">grab some modules</a>, there are two basic
ways to use it:
There are two ways to use it:
<ol>
<li> Just hack it to compile in your project.
<li> Put modules into a ccan/ subdirectory into your project. Add a "config.h" (like
<a href="example-config.h">this example</a>) and compile every .c file
in ccan/* (as in this <a href="Makefile-ccan">Makefile</a>)).
<li> Use it in place by giving it a "config.h" (steal
<a href="example-config.h">this example</a>) and compiling all the .c
files (simply, or as in this <a href="Makefile-ccan">Makefile</a>).
<li> Alternatively, just hack whatever parts you want so it compiles in
your project.
</ol>
</p>
<h2>Add Code</h2>
<p>
There's also a
<a href="http://bazaar-vcs.org/">Bazaar</a> repository for all the CCAN
infrastructure at http://ccan.ozlabs.org/repo (<a href="http://ccan.ozlabs.org/browse">browse</a>).
We always welcome new code! Copy an existing module and run the "ccanlint"
tool over it, or just send any code you have lying around any let someone
else polish it up.
</p>
<h2>Module Contributions</h2>
<p>
We welcome new code! The guide to creating new modules is a work in
progress (just copy an existing module), but anyone can send code to
<p>Anyone can send code or a git pull request to
the <a href="http://ozlabs.org/mailman/listinfo/ccan">friendly
mailing list</a> or just <a href="upload.html">upload it</a>.
mailing list</a> or just <a href="upload.html">upload it using the web form</a>.
</p>
<p>
......@@ -67,10 +70,5 @@ We also have an IRC channel: #ccan on <a href="http://freenode.net">Freenode</a>
<p>
We also have a <a href="Wiki/">wiki</a>; feel free to enhance it.
</p>
<p>
<i>Rusty Russell</i>
</p>
<hr>
</body></html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment