# This file is maintained at http://git.mdcc.cx/caspar caspar - Makefile snippets for common tasks See doc/caspar.txt for general information about this package, see INSTALL for generic installation instructions. The caspar homepage is at http://mdcc.cx/caspar/ . Feedback (bugs, feature requests, etc.) can be sent to joostvb *dash* caspar *at* mdcc *dot* cx. After install, directories /usr/local/share/doc/caspar/, /usr/local/share/caspar/mk/ /usr/local/include/caspar/mk/ /usr/local/share/sgml/caspar/ are created and populated, and manpages caspar(7) and caspar-typesetting(7) are installed. - requirements, packages - - - - - - - - - - - - - - - - - - - - - - - - - GNU make. For the typesetting functionality, one needs Jade, LaTeX, W3M, Ghostscript, and Docbook DSSSL. Debian and Ubuntu ship a packaged caspar. If you're interested in a caspar RPM, the spec file on http://mdcc.cx/pub/caspar/caspar.spec might be helpful. - gimme some of the stuff you've been smoking! - - - - - - - - - - - - - - - - "What've you been smoking!? A completely fullblown autoconfiscated tarball for just a eeny weeny Makefile snippet, to be able to install my hosts configuration files from CVS!? I'm not gonna install that! No way!" Well, there's no accounting for taste... If I use the same files on many hosts, I prefer to install them from a tarball. If you were asked to work with a caspar-ized CVS tree, you can work around installing the tarball by doing something like this: cd ~/cvs/kingkong/include kingkong is a CVS module, holding files which should get installed on host kingkong. Create a file install.mk there, which looks like csp_UHOST = admin@kingkong.example.org include caspar/mk/caspar.mk Now, do echo caspar >> .cvsignore mkdir -p caspar/mk and copy caspar.mk to the just created directory caspar/mk/ . - hacking on caspar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Since 2009-12, the caspar code is maintained using git on http://git.mdcc.cx/caspar; start using it by running git clone http://git.mdcc.cx/caspar.git . Contact the author if you'd like to get commit messages in your mailbox. I might get to setting up a mailinglist for that. (The page at http://alioth.debian.org/projects/caspar/ is no longer very useful.) - some thoughts on include path - - - - - - - - - - - - - - - - - - - - - - - - The default GNU make include path is .:PREFIX/include:/usr/gnu/include: /usr/local/include:/usr/include . See make.info, node `Include'. FHS however says: '/usr/include [...] is where all of the system's general-use include files for the C and C++ programming languages should be placed.' This makes GNU make somewhat incompatible with the FHS :( . GNU make could better use something like '/usr/share/mk' in its default include path. We work around this by creating the following symlink when being 'make install'-ed: /usr/local/include/caspar/mk/caspar.mk -> /usr/local/share/caspar/mk/caspar.mk . This enables us to be able to call include caspar/mk/caspar.mk from a Makefile. - some thoughts on implicit rules - - - - - - - - - - - - - - - - - - - - - - - Add our implicit pattern rules to Make built-in implicit rules? When no ./Makefile exists, but ./foo.c does, make knows what to do when asked to ``make foo''. Furthermore, in absence of ./Makefile, ``TEX=latex make blah.dvi'' does something sane with blah.tex. It'd be cool if we could add to Make's built-in implicit rules, and have our implicit rules work, even if no Makefile exists in the current directory. However, I don't think this is possible with current (3.80-6) Make. The built-in implicit rules are compiled in make binary, so adding the caspar ones to some magic directory will likely not work.