Difference between revisions of "ISFDB Build Process"

From ISFDB
Jump to navigation Jump to search
(add basic description; will expand)
 
(add more)
Line 1: Line 1:
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 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.

Revision as of 05:00, 22 November 2010

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.