ISFDB Build Process
The ISFDB software build process is configured by two files: INSTALLDIRS and common/localdefs.py . The build process is started by running make install in the base directory (i.e. isfdb2/ assuming you checked it out of CVS).
The base directory Makefile simply runs make with two targets (install and LOCAL) in each of the following subdirs: common/, biblio/, edit/, mod/, css/, and rest/. (common/ and css/ don't run LOCAL).
The common/ Makefile creates subdirectories named local/ in the other 4 directories (except css/), then copies nearly all the files in common/ into each of the other directories. It doesn't copy isfdblib.py anywhere, and it copies localdefs.py into the local subdirs, as well as copying it into css/ and scripts/. It also doesn't copy about half the files (called CLASS_FILES) into biblio/.
The biblio/ Makefile first creates a file, .TARGETS that defines a list of the contents of the directory, but with local/ prepended, and the .py extension replaced with .cgi. It then runs make on local.mk and install.mk. local.mk runs install.py (copied from common/ above) on all the files listed in .TARGETS (i.e. all the files). See below for what install.py does. Then it copies some of the files (called LIBS and MYLIBS) in biblio/ into it's local/ subdirectory.