5.1 Information about the Project

The project should get a name (PROJECTNAME) and a version (combined from numbers given a MAJORVERSION, MINORVERSION, and PATCHVERSION). The value of projectname should simply be that of PROJECTNAME converted to lower case letters.

There are some restrictions for the values of PROJECTNAME and projectname. Neither of the values must contain LATEX special characters. The value of PROJECTNAME must be an Aldor identifier; it is used for the identifiers LibraryInformationMyAlps in the generated file src/mymyalpsversion.as as well as for the assertions DontNeedLibraryMyAlps and MacrosMyAlps in the Makefile targets loop and the Makefile variables FLAGSal and FLAGSx.

The name of the generated libraries is by default the project name in lower case letters, but can be set to be something else. The libraries

lib$(LIBRARYNAME).al  
lib$(LIBRARYNAME).a

will be generated.

Convention 2 Since the project and library name is used in several places as an argument to some LATEX command, it is required that the name does not contain any LATEX special characters. The value of PROJECTNAME must be an Aldor identifier when it is prepended by the letter A. The values of the variables projectname and LIBRARYNAME must be valid filenames.

The .al library consists of .ao files whose names are the same as the corresponding .as.nw files in the src (sub-)directory except that they will have an additional prefix which is given by LIBPREFIX. For example, if there is a source file src/basic/data.as.nw and LIBPREFIX=cx then the corresponding file inside the .al library will be generated as cxdata.ao.

The same rule applies to the .a library and the .o files therein.

The intention of such a prefix is to make the filenames inside the library unique with respect to other projects. Currently the building process will not work if the variable LIBPREFIX has no value, i. e., is empty.

23name of the game and its version 23  (21)  24
PROJECTNAME=$(ALLPROSELIBPROJECTNAME)
projectname=$(ALLPROSELIBRARYNAME)
LIBRARYNAME=$(projectname)
MAJORVERSION=$(ALLPROSEMAJORVERSION)
MINORVERSION=$(ALLPROSEMINORVERSION)
PATCHVERSION=$(ALLPROSEPATCHVERSION)
LIBPREFIX=$(ALLPROSELIBPREFIX)

Defines:
LIBPREFIX, never used.
LIBRARYNAME, never used.
MAJORVERSION, never used.
MINORVERSION, never used.
PATCHVERSION, never used.
PROJECTNAME, never used.
projectname, used in chunk 13.

It ist important to list the value of CREDITS with double quotes.

24name of the game and its version 23+   (21)  23
CREDITS="Ralf Hemmecke (ralf@hemmecke.de)"

Defines:
CREDITS, never used.
If there is more than one person or institution that needs to be given credits, write it in the following form. In particular note that there is a comma after the equal sign.
CREDITS+=,"Somebody Else"

Among others the file src/mymyalpsversion.as is generated from the above data.

Its code generation appears in src/Makefile.nw. The file src/mymyalpsversion.as provides information about the library and looks as follows.

-- Generated from src/Makefile  
#assert DontNeedLibraryMyAlps  
#include "myalps"  
LibraryInformationMyAlps: VersionInformationType == add {  
        name: String == "MyAlps";  
        version: String == "0.2.6";  
        major: MachineInteger == 0;  
        minor: MachineInteger == 2;  
        patch: MachineInteger == 6;  
        credits: List String == ["Ralf Hemmecke (ralf@hemmecke.de)"];  
}