From d1cea3ebf96f61b5bbac1e74975700770e06add6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 26 Oct 2010 18:07:22 +1030 Subject: [PATCH 1/1] gitify the tree, especially the web makefile. --- .bzrignore => .gitignore | 2 ++ Makefile | 2 +- Makefile-web | 36 +++++++++++++++++------------------- web/staticindex.php | 40 +++++++++++++++++++--------------------- 4 files changed, 39 insertions(+), 41 deletions(-) rename .bzrignore => .gitignore (93%) diff --git a/.bzrignore b/.gitignore similarity index 93% rename from .bzrignore rename to .gitignore index 10cbbc33..cc82ce6a 100644 --- a/.bzrignore +++ b/.gitignore @@ -1,5 +1,7 @@ .depends *.d +*.o +ccan/*-Makefile *~ tools/ccan_depends tools/doc_extract diff --git a/Makefile b/Makefile index 28ea503b..c1f5ea8f 100644 --- a/Makefile +++ b/Makefile @@ -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. diff --git a/Makefile-web b/Makefile-web index 472070e2..6079c9d9 100644 --- a/Makefile-web +++ b/Makefile-web @@ -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 diff --git a/web/staticindex.php b/web/staticindex.php index 9e8f1935..0a521023 100644 --- a/web/staticindex.php +++ b/web/staticindex.php @@ -18,33 +18,36 @@ CCAN is loosely modelled after the successful CPAN pro for Perl code development and sharing.

-

Getting The Code

+

Get The Code

+

You can get each module as a tarball (see +list), get a tarball of the whole repository with tools, +or clone our git repository (git clone git://git.ozlabs.org/~ccan/ccan). +

+ +

Use The Code

-Once you grab some modules, there are two basic -ways to use it: +There are two ways to use it:

    -
  1. Just hack it to compile in your project. +
  2. Put modules into a ccan/ subdirectory into your project. Add a "config.h" (like + this example) and compile every .c file + in ccan/* (as in this Makefile)). -
  3. Use it in place by giving it a "config.h" (steal - this example) and compiling all the .c - files (simply, or as in this Makefile). +
  4. Alternatively, just hack whatever parts you want so it compiles in +your project.

+

Add Code

-There's also a -Bazaar repository for all the CCAN -infrastructure at http://ccan.ozlabs.org/repo (browse). +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.

-

Module Contributions

- -

-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 +

Anyone can send code or a git pull request to the friendly -mailing list or just upload it. +mailing list or just upload it using the web form.

@@ -67,10 +70,5 @@ We also have an IRC channel: #ccan on Freenode

We also have a wiki; feel free to enhance it.

- -

-Rusty Russell -

-
-- 2.39.2