1
# @(#) $Revision: 4.23 $ $Source: /judy/make_includes/platform.win_ia32.mk $
3
# Makefile fragment for Judy* for platform "win_ia32" (using MKS Toolkit and
4
# Visual Studio / VC++).
6
# Note: Porting the Judy makefile from HP-UX and Linux to win_ia32 was harder
7
# than any previous port. Ended up requiring BOTH MKS and VC++. The VC++
8
# compiler and linker are better than MKS versions (and in fact we need them to
9
# compile at all), but nmake (in VC++) doesn't work well with a UNIX-style
10
# makefile (various problems), and since the makefile needs MKS anyway for ksh,
11
# might as well use its make command too, which works now (after some minor
16
# Commands to run, using full paths where appropriate to avoid ambiguity:
18
# Note: MKS uses unusual path names. Giving the "user" versions of these
19
# names to make(1), even with quote marks to hide spaces, seems to fail, so
20
# instead use "real" names (either way without *.exe suffixes, they are
21
# unnecessary in this context).
23
SHELL = /PROGRA~1/MKSTOO~1/mksnt/ksh
25
# Use VC++ compile tools rather than MKS compile tools:
27
# CCPATH = /PROGRA~1/MKSTOO~1/mksnt/cc
28
CCPATH = /PROGRA~1/MICROS~3/VC98/BIN/CL
29
# LDPATH = /PROGRA~1/MKSTOO~1/mksnt/cc
30
LDPATH = /PROGRA~1/MICROS~3/VC98/BIN/LINK
32
# Can't find an "ar" command in VC++ so use the MKS version:
34
# TBD: Noted that in win_ipf cross-compile context the command to use was
35
# "LIB"; see win_ipf variation of this file.
37
ARPATH = /PROGRA~1/MKSTOO~1/mksnt/ar
41
# Object file directories:
43
# $INTDIR is the location for intermediate (non-deliverable) constructed files,
44
# optionally including a suffix component for recursive make calls.
46
# $DELDIR is the CPF-standard "deliver/" followed by various paths for
47
# different files so they are in an appropriate place for delivery to an HPUX
48
# system. Yes, this leads to annoyingly long full paths such as
49
# hpux_pa/product/deliver/usr/share/doc/Judy, but Judy-cious use of symlinks in
50
# the top of a personal sandbox can mitigate this.
52
# Note: Through version 4.56, files were placed in deliver/opt/Judy, but in
53
# preparation for 11.11 OEUR delivery we decided they belong in various "core
54
# HPUX" locations under /usr on the filesystem (see below).
56
# Note: For open source delivery, Judy files belong back in /opt/Judy; see the
59
# Note: For safety the values of $OBJDIR_OPT and the suffix of $DELDIR_DOC are
60
# hard-coded into the install and uninstall targets.
62
OBJDIR_OPT = /opt/Judy
64
# For Linux, $DELDIR_LIB_SUFFIX is simply null.
66
DELDIR_LIB = $(DELDIR)/usr/lib$(DELDIR_LIB_SUFFIX)
67
DELDIR_INC = $(DELDIR)/usr/include
68
DELDIR_DOC = $(DELDIR)/usr/share/doc/Judy
69
DELDIR_DEMO = $(DELDIR_DOC)/demo
70
DELDIR_MAN = $(DELDIR)/usr/share/man/man3$(MANDIR_SUFFIX)
72
# Use normal tools for building internal tools (programs):
74
CCPATH_TOOL = $(CCPATH)
76
# MKS lacks some commands that it's possible to do without:
78
CSTRIP = cstrip_not_present
80
# HP-UX has rmnl(1) but MKS does not, so use grep instead; note the tab:
82
RMNL = grep -v '^[ ]*$$'
85
PWD = /PROGRA~1/MKSTOO~1/mksnt/pwd
87
# Platform-specific library lists for win_ia32 for various "lib" targets:
91
LIBS_ALL_LIST = lib32lib
94
# Suffix for $LIB_ID (same as what's passed in $LIB_SUFFIX for a recursive
99
# Linker option to build a shared library:
101
# TBD: Fill this in when appropriate.
107
# Unfortunately there are CC_OPTS differences between both platforms AND
108
# flavors, so spell them out here by flavor, meaning this file cannot be
111
# CL -nologo hides the banner.
112
# CL -W4 is like -Wall, and "4" is the highest number it seems to accept.
114
CC_OPTS_product = -O2 -W4 -nologo
115
CC_OPTS_cov = -O2 -W4 -DJU_FLAVOR_COV -nologo
116
CC_OPTS_debug = -GZ -W4 -DJU_FLAVOR_DEBUG -nologo
118
# TBD: MKS has compress, but directory paths look like:
120
# C:/Program Files/MKS Toolkit/etc/cat1
122
# Unclear where to put manual entries or whether to compress them. Also, MKS
123
# compress complains: "Output in LZW compress format is not supported." For
124
# now just drop them uncompressed.
130
# Platform win_ia32 VC++ "CL" compiler needs -Fo to specify the object file and
131
# -Fe to specify the executable file: