ISFDB Build Process

From ISFDB
Revision as of 05:00, 22 November 2010 by JesseW (talk | contribs) (add more)
Jump to navigation Jump to search

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.