Commit d1cea3eb authored by Rusty Russell's avatar Rusty Russell

gitify the tree, especially the web makefile.

parent 61ab4524
.depends .depends
*.d *.d
*.o
ccan/*-Makefile
*~ *~
tools/ccan_depends tools/ccan_depends
tools/doc_extract tools/doc_extract
......
...@@ -94,7 +94,7 @@ libccan.a(%.o): ccan/%.o ...@@ -94,7 +94,7 @@ libccan.a(%.o): ccan/%.o
$(AR) r $@ $< $(AR) r $@ $<
clean: tools-clean 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 $(RM) inter-depends lib-depends test-depends ccan/*-Makefile
# Creates a dependency from the tests to the object files which it needs. # Creates a dependency from the tests to the object files which it needs.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
WEBDIR=/home/rusty/www/html/ccan WEBDIR=/home/rusty/www/html/ccan
# Ignore EXCLUDE when making webpages. # 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)) ALL_PAGES=$(patsubst %, $(WEBDIR)/info/%.html, $(REALLY_ALL))
DIRECT_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/%.tar.bz2, $(REALLY_ALL)) DIRECT_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/%.tar.bz2, $(REALLY_ALL))
DEPEND_TARBALLS=$(patsubst %, $(WEBDIR)/tarballs/with-deps/%.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 $ ...@@ -10,28 +10,29 @@ WEB_SUBDIRS=$(WEBDIR)/tarballs $(WEBDIR)/junkcode $(WEBDIR)/tarballs/with-deps $
JUNKDIRS=$(wildcard junkcode/*) JUNKDIRS=$(wildcard junkcode/*)
JUNKPAGES=$(JUNKDIRS:%=$(WEBDIR)/%.html) JUNKPAGES=$(JUNKDIRS:%=$(WEBDIR)/%.html)
JUNKBALLS=$(JUNKDIRS:%=$(WEBDIR)/%.tar.bz2) JUNKBALLS=$(JUNKDIRS:%=$(WEBDIR)/%.tar.bz2)
BZRBROWSE=$(WEBDIR)/bzrbrowse.cgi $(WEBDIR)/file.png $(WEBDIR)/folder.png $(WEBDIR)/symlink.png
upload: fastcheck webpages upload: fastcheck
bzr push git push origin HEAD:master
send-web # Rusty's upload script.
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) 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
$(WEB_SUBDIRS):
junkpages: $(WEBDIR)/list.html $(WEBDIR)/junkcode $(JUNKPAGES) $(JUNKBALLS)
$(WEB_SUBDIRS): $(WEBDIR)
mkdir -p $@ mkdir -p $@
$(WEBDIR)/junkcode/%.tar.bz2: junkcode/% $(WEBDIR)/junkcode $(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 $(WEBDIR)/junkcode/%.html: $(WEBDIR)/junkcode/%.tar.bz2
cd $(WEBDIR) && tar xfj junkcode/$*.tar.bz2 cd $(WEBDIR) && tar xfj junkcode/$*.tar.bz2
php5 web/staticjunkcode.php junkcode/$* $* > $@ php5 web/staticjunkcode.php junkcode/$* $* > $@
# We want tarball to contain 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 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) $(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` && rm ccan 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 $(ALL_PAGES): tools/doc_extract web/staticmoduleinfo.php
...@@ -57,17 +58,14 @@ $(WEBDIR)/Makefile-ccan: Makefile-ccan ...@@ -57,17 +58,14 @@ $(WEBDIR)/Makefile-ccan: Makefile-ccan
$(WEBDIR)/ccan.jpg: web/ccan.jpg $(WEBDIR)/ccan.jpg: web/ccan.jpg
cp $< $@ cp $< $@
$(BZRBROWSE): $(WEBDIR)/%: web/bzrbrowse/%
cp $< $@
$(WEBDIR)/info/%.html: $(WEBDIR)/tarballs/%.tar.bz2 $(WEBDIR)/tarballs/with-deps/%.tar.bz2 $(WEBDIR)/info/%.html: $(WEBDIR)/tarballs/%.tar.bz2 $(WEBDIR)/tarballs/with-deps/%.tar.bz2
URLPREFIX=../ php5 web/staticmoduleinfo.php `pwd`/ccan/$* > $@ URLPREFIX=../ php5 web/staticmoduleinfo.php `pwd`/ccan/$* > $@
$(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info $(WEBDIR)/tarballs/%.tar.bz2: ccan/%/_info clean-tree
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) 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 $(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/%/_info tools/ccan_depends clean-tree
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) 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 distclean: distclean-web
......
...@@ -18,33 +18,36 @@ CCAN is loosely modelled after the successful <a href="http://cpan.org">CPAN pro ...@@ -18,33 +18,36 @@ CCAN is loosely modelled after the successful <a href="http://cpan.org">CPAN pro
for Perl code development and sharing. for Perl code development and sharing.
</p> </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> <p>
Once you <a href="list.html">grab some modules</a>, there are two basic There are two ways to use it:
ways to use it:
<ol> <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 <li> Alternatively, just hack whatever parts you want so it compiles in
<a href="example-config.h">this example</a>) and compiling all the .c your project.
files (simply, or as in this <a href="Makefile-ccan">Makefile</a>).
</ol> </ol>
</p> </p>
<h2>Add Code</h2>
<p> <p>
There's also a We always welcome new code! Copy an existing module and run the "ccanlint"
<a href="http://bazaar-vcs.org/">Bazaar</a> repository for all the CCAN tool over it, or just send any code you have lying around any let someone
infrastructure at http://ccan.ozlabs.org/repo (<a href="http://ccan.ozlabs.org/browse">browse</a>). else polish it up.
</p> </p>
<h2>Module Contributions</h2> <p>Anyone can send code or a git pull request to
<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
the <a href="http://ozlabs.org/mailman/listinfo/ccan">friendly 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>
<p> <p>
...@@ -67,10 +70,5 @@ We also have an IRC channel: #ccan on <a href="http://freenode.net">Freenode</a> ...@@ -67,10 +70,5 @@ We also have an IRC channel: #ccan on <a href="http://freenode.net">Freenode</a>
<p> <p>
We also have a <a href="Wiki/">wiki</a>; feel free to enhance it. We also have a <a href="Wiki/">wiki</a>; feel free to enhance it.
</p> </p>
<p>
<i>Rusty Russell</i>
</p>
<hr> <hr>
</body></html> </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