Macro’s¶
PMake allows for custom defined variables and options that can be set and read at runtime from the PMake.tx file. The following functions are defined for this purpose;
procedure set_(name: string; value: boolean);
procedure set_(name: string; value: integer);
procedure set_(name: string; value: string);
procedure set_(name: string; value: double);
function val_(name: string): string;
function val_(name: string): boolean;
function val_(name: string): integer;
function val_(name: string): double;
You can use set_ to create a custom variable and use val_ in any PMake.txt file.
All API functions will do a macro expand internally. The following ;
- $(PMAKE_HOST_SYSTEM_NAME)
- Expands to the target OS that PMake is invoked on. Example is win64 on a 64bit windows machine.
- $(PMAKE_HOST_SYSTEM_PROCESSOR)
- Expands to the target CPU that PMake is invoked on. Example is x86_64 on a 64bit machine.
- $(PMAKE_PAS_COMPILER)
- The full path to the pascal compiler
- $(PMAKE_SOURCE_DIR)
- The path to the top level of the source tree.
- $(PMAKE_CURRENT_SOURCE_DIR)
- The path to the source directory currently being processed.
- $(PMAKE_BINARY_DIR)
- The path to the top level of the build tree.
- $(PMAKE_CURRENT_BINARY_DIR)
- The path to the binary directory currently being processed.
- $(PMAKE_PAS_COMPILER_VERSION)
- Compiler version string.
- $(UNITSOUTPUTDIR)
Expands to the unit output directory that is defined for the specific package. The value is equivalent to:
.\units\$(PMAKE_HOST_SYSTEM_PROCESSOR)-$(PMAKE_HOST_SYSTEM_NAME)
- $(BINOUTPUTDIR)
Expands to the binary output directory that is defined for the specific package. The value is equivalent to:
.\bin\$(PMAKE_HOST_SYSTEM_PROCESSOR)-$(PMAKE_HOST_SYSTEM_NAME)
- $(EXE)
- Expands to the executable file extension defined for the platform PMake is invoked on. On UNIX systems executables have no extension by default, on the other platforms this is .exe.
- $(DLL)
- Expands to the shared library file extension defined for the platform PMake is invoked on.
Operating systems | Library prefix | Library extension |
---|---|---|
Apple | lib | .so |
BeOS | lib | .so |
FreeBSD | lib | .so |
Linux | lib | .so |
NetBSD | lib | .so |
Windows | none | .dll |