1
# @(#) $Revision: 4.5 $ $Source: /judy/make_includes/platform.win_ipf.mk $
3
# Makefile fragment for Judy* for platform "win_ipf" (using MKS Toolkit and
4
# Visual Studio / VC++). See platform.win_ia32.mk for more comments.
8
# Commands to run, using full paths where appropriate to avoid ambiguity:
10
# Note: MKS uses unusual path names. Giving the "user" versions of these
11
# names to make(1), even with quote marks to hide spaces, seems to fail, so
12
# instead use "real" names (either way without *.exe suffixes).
16
# Use VC++ compile tools rather than MKS compile tools:
18
# CCPATH = /PROGRA~1/MKSTOO~1/mksnt/cc
19
CCPATH = /PROGRA~1/MICROS~3/Bin/Win64/CL
20
# LDPATH = /PROGRA~1/MKSTOO~1/mksnt/cc
21
LDPATH = /PROGRA~1/MICROS~3/Bin/Win64/LINK
23
# Must use the "lib" command:
25
ARPATH = /PROGRA~1/MICROS~3/Bin/Win64/LIB
29
# Object file directories:
31
# $INTDIR is the location for intermediate (non-deliverable) constructed files,
32
# optionally including a suffix component for recursive make calls.
34
# $DELDIR is the CPF-standard "deliver/" followed by various paths for
35
# different files so they are in an appropriate place for delivery to an HPUX
36
# system. Yes, this leads to annoyingly long full paths such as
37
# hpux_pa/product/deliver/usr/share/doc/Judy, but Judy-cious use of symlinks in
38
# the top of a personal sandbox can mitigate this.
40
# Note: Through version 4.56, files were placed in deliver/opt/Judy, but in
41
# preparation for 11.11 OEUR delivery we decided they belong in various "core
42
# HPUX" locations under /usr on the filesystem (see below).
44
# Note: For open source delivery, Judy files belong back in /opt/Judy; see the
47
# Note: For safety the values of $OBJDIR_OPT and the suffix of $DELDIR_DOC are
48
# hard-coded into the install and uninstall targets.
50
OBJDIR_OPT = /opt/Judy
52
# For Linux, $DELDIR_LIB_SUFFIX is simply null.
54
DELDIR_LIB = $(DELDIR)/usr/lib$(DELDIR_LIB_SUFFIX)
55
DELDIR_INC = $(DELDIR)/usr/include
56
DELDIR_DOC = $(DELDIR)/usr/share/doc/Judy
57
DELDIR_DEMO = $(DELDIR_DOC)/demo
58
DELDIR_MAN = $(DELDIR)/usr/share/man/man3$(MANDIR_SUFFIX)
60
# Use normal tools for building internal tools (programs):
62
CCPATH_TOOL = $(CCPATH)
64
# MKS lacks some commands that it's possible to do without:
66
CSTRIP = cstrip_not_present
68
# HP-UX has rmnl(1) but MKS does not, so use grep instead; note the tab:
70
RMNL = grep -v '^[ ]*$$'
75
# Platform-specific library lists for win_ipf for various "lib" targets:
79
LIBS_ALL_LIST = lib64lib
82
# Suffix for $LIB_ID (same as what's passed in $LIB_SUFFIX for a recursive
87
# Linker option to build a shared library:
89
# TBD: Fill this in when appropriate.
95
# Unfortunately there are CC_OPTS differences between both platforms AND
96
# flavors, so spell them out here by flavor, meaning this file cannot be
99
# CL -nologo hides the banner.
100
# CL -W4 is like -Wall, and "4" is the highest number it seems to accept.
101
# This platform does not define __LP64__ because it's not a 64-bit data model,
102
# but Judy wants JU_64BIT anyway because it uses 64-bit words to match pointer
105
CC_OPTS_product = -O2 -W4 -nologo -DJU_64BIT
106
CC_OPTS_cov = -O2 -W4 -DJU_FLAVOR_COV -nologo -DJU_64BIT
107
CC_OPTS_debug = -GZ -W4 -DJU_FLAVOR_DEBUG -nologo -DJU_64BIT
109
# At least on this platform, for make to recognize that a tool is already
110
# built, the filename + auto-added suffix must be used:
114
# TBD: MKS has compress, but directory paths look like:
116
# C:/Program Files/MKS Toolkit/etc/cat1
118
# Unclear where to put manual entries or whether to compress them. Also, MKS
119
# compress complains: "Output in LZW compress format is not supported." For
120
# now just drop them uncompressed.
126
# Platform win_ipf VC++ "CL" compiler needs -Fo to specify the object file and
127
# -Fe to specify the executable file: