nmake for UWIN allows the use of nmake on the Windows® 2000 operating systems running UWIN 3.1.
/'). Colon ('
:') and back-slash ('
\') are not allowed in pathnames in makefiles. Pathnames must be valid on hosting file systems. FAT and NTFS file systems do not allow some characters in pathnames, such as
::operators can build both static (
.a) and dynamic (
.dll/.lib) libraries. The generated
.libfiles are installed in
LIBDIRby default. Following standard practice on win32 platforms, the generated
.dllfiles are installed in BINDIR. When building dynamic libraries the PIC compiler flag should be included (
CCFLAGS+=$$(CC.PIC)). The following examples show the assertions that can be used to build libraries.
abc :LIBRARY: abc.c
libabc.a) by default, or both static and dynamic libraries (
installcommon action is asserted.
libabc.a :: abc.c
abc.dll :: abc.c
abc.dll) and corresponding compile-time lib file (
abc.lib). A static library (
libabc.a) is also generated and used for the generation of the dynamic library files.
abc.lib :: abc.c
:LIBRARY:operator provides target abstraction for platform portability. When using
::to make dynamic libraries it is recommended to use
$$(CC.SUFFIX.SHARED)for platform portability. For example, the following will make
libabc.soon Solaris, and
libabc$$(CC.SUFFIX.SHARED) :: a.c
lib". When searching for libraries specified as
-lnamenmake will search for files both with and without the leading "
lib" in the filename such that the following library names can be found:
-lname(dynamic libraries take precedence) is:
+lname(static libraries take precedence) is:
CC.SHARED.ALL = -Bwhole-archive
ld. All members of the libraries following this argument are linked in the generated target. This flag is used to make a dynamic library from a static library and include all the symbols from static library.
CC.SHARED.UNDEF = -Bno-whole-archive
ld. Only members that resolve undefined symbols in the libraries following this argument are linked in the generated target.
CC.SUFFIX.DYNAMIC = .dll
CC.SUFFIX.DLL = .exp .def .map
.exesuffix. The executable targets in makefiles do not need to include the
.exesuffix. Binary executables will always be generated with the
.exesuffix, and nmake can find these executables to match the targets in the makefiles.
\r\n" line endings are supported.
This release can not automatically identify the case-ignorant attribute
of a file system. The environment variable,
case_sensitive_file_system, must be used to inform nmake
if a case-ignorant file system is being used. The variable must be
exported in the environment and not set on the nmake command line.
On a case-ignorant file system,
must be unset or set to
0. For example:
unset case_sensitive_file_system or export case_sensitive_file_system=0
On a case-sensitive file system,
should be set to
It is the user's responsibility to keep this variable consistent with the setting of the underlying file system. Failing to set it correctly may cause unexpected results.
-I-, is used
\r\n" line endings are supported.
jar.mk, in any combination of case, will conflict with the rules files
JAR.mkthat are delivered in nmake_install_root
/lib/make/. When trying to load a rules file
nmakewill see the corresponding user makefile first and will not load the necessary rules which will cause build errors. It is recommened to avoid using filenames that differ only by case with files in nmake_install_root
/home/loginusually corresponds to
C:\Program Files\UWIN3.1\home, so working with the java tools under the default home directory may cause problems. You must work in a UWIN directory that corresponds to a win32 directory that contains no spaces in the path. JavaDeps must also be installed in a similar directory with no spaces in the win32 directory path.