~ubuntu-branches/ubuntu/breezy/judy/breezy

« back to all changes in this revision

Viewing changes to make_includes/platform.win_ia32.mk

  • Committer: Bazaar Package Importer
  • Author(s): Theodore Y. Ts'o
  • Date: 2004-01-17 00:04:53 UTC
  • Revision ID: james.westby@ubuntu.com-20040117000453-d5sj6uoon2v1g4gf
Tags: upstream-0.0.4
ImportĀ upstreamĀ versionĀ 0.0.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# @(#) $Revision: 4.23 $ $Source: /judy/make_includes/platform.win_ia32.mk $
 
2
 
 
3
# Makefile fragment for Judy* for platform "win_ia32" (using MKS Toolkit and
 
4
# Visual Studio / VC++).
 
5
#
 
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
 
12
# tweaking).
 
13
 
 
14
PLATFORM = win_ia32
 
15
 
 
16
# Commands to run, using full paths where appropriate to avoid ambiguity:
 
17
#
 
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).
 
22
 
 
23
SHELL    = /PROGRA~1/MKSTOO~1/mksnt/ksh
 
24
 
 
25
# Use VC++ compile tools rather than MKS compile tools:
 
26
 
 
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
 
31
 
 
32
# Can't find an "ar" command in VC++ so use the MKS version:
 
33
#
 
34
# TBD:  Noted that in win_ipf cross-compile context the command to use was
 
35
# "LIB"; see win_ipf variation of this file.
 
36
 
 
37
ARPATH   = /PROGRA~1/MKSTOO~1/mksnt/ar
 
38
AR       = $(ARPATH)
 
39
AR_OPT1  = -r
 
40
 
 
41
# Object file directories:
 
42
#
 
43
# $INTDIR is the location for intermediate (non-deliverable) constructed files,
 
44
# optionally including a suffix component for recursive make calls.
 
45
#
 
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.
 
51
#
 
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).
 
55
#
 
56
# Note:  For open source delivery, Judy files belong back in /opt/Judy; see the
 
57
# install target.
 
58
#
 
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.
 
61
 
 
62
OBJDIR_OPT =    /opt/Judy
 
63
 
 
64
# For Linux, $DELDIR_LIB_SUFFIX is simply null.
 
65
 
 
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)
 
71
 
 
72
# Use normal tools for building internal tools (programs):
 
73
 
 
74
CCPATH_TOOL = $(CCPATH)
 
75
 
 
76
# MKS lacks some commands that it's possible to do without:
 
77
 
 
78
CSTRIP   = cstrip_not_present
 
79
 
 
80
# HP-UX has rmnl(1) but MKS does not, so use grep instead; note the tab:
 
81
 
 
82
RMNL     = grep -v '^[  ]*$$'
 
83
 
 
84
ECHO     = echo
 
85
PWD      = /PROGRA~1/MKSTOO~1/mksnt/pwd
 
86
 
 
87
# Platform-specific library lists for win_ia32 for various "lib" targets:
 
88
 
 
89
LIB_LIST      = lib32lib
 
90
LIBS_LIST     = lib32lib
 
91
LIBS_ALL_LIST = lib32lib
 
92
LIBS_PIC_LIST = TBD
 
93
 
 
94
# Suffix for $LIB_ID (same as what's passed in $LIB_SUFFIX for a recursive
 
95
# make):
 
96
 
 
97
LIB_ID_SUFFIX = lib
 
98
 
 
99
# Linker option to build a shared library:
 
100
#
 
101
# TBD:  Fill this in when appropriate.
 
102
 
 
103
LD_OPT_SL = ?
 
104
 
 
105
TARCHIVE_LIBS_PIC =
 
106
 
 
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
 
109
# flavor-ignorant:
 
110
#
 
111
# CL -nologo hides the banner.
 
112
# CL -W4 is like -Wall, and "4" is the highest number it seems to accept.
 
113
 
 
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
 
117
 
 
118
# TBD:  MKS has compress, but directory paths look like:
 
119
#
 
120
#   C:/Program Files/MKS Toolkit/etc/cat1
 
121
#
 
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.
 
125
 
 
126
COMPRESSPATH   = cat
 
127
MANDIR_SUFFIX  =
 
128
MANFILE_SUFFIX =
 
129
 
 
130
# Platform win_ia32 VC++ "CL" compiler needs -Fo to specify the object file and
 
131
# -Fe to specify the executable file:
 
132
 
 
133
CCoo = -Fo
 
134
CCoe = -Fe