1
# @(#) $Revision: 4.15 $ $Source: /judy/make_includes/platform.linux_ipf.mk $
3
# Makefile fragment for Judy* for platform "linux_ipf".
4
# See platform.hpux_pa.mk for more comments.
6
# Note that not all Linux systems have ksh. Use the following shell instead
7
# because it should always be present and POSIX-compliant; avoid /bin/bash
8
# because it isn't; even if /bin/sh is a symlink to bash, the name matters.
12
# For portability use the generic names for cc, ld, and ar, which are typically
13
# symlinks to more specific names, such as /usr/bin/cc -> /opt/ansic/bin/cc.
21
# Object file directories:
23
# $INTDIR is the location for intermediate (non-deliverable) constructed files,
24
# optionally including a suffix component for recursive make calls.
26
# $DELDIR is the CPF-standard "deliver/" followed by various paths for
27
# different files so they are in an appropriate place for delivery to an HPUX
28
# system. Yes, this leads to annoyingly long full paths such as
29
# hpux_pa/product/deliver/usr/share/doc/Judy, but Judy-cious use of symlinks in
30
# the top of a personal sandbox can mitigate this.
32
# Note: Through version 4.56, files were placed in deliver/opt/Judy, but in
33
# preparation for 11.11 OEUR delivery we decided they belong in various "core
34
# HPUX" locations under /usr on the filesystem (see below).
36
# Note: For open source delivery, Judy files belong back in /opt/Judy; see the
39
# Note: For safety the values of $OBJDIR_OPT and the suffix of $DELDIR_DOC are
40
# hard-coded into the install and uninstall targets.
42
OBJDIR_OPT = /opt/Judy
44
# For Linux, $DELDIR_LIB_SUFFIX is simply null.
46
DELDIR_LIB = $(DELDIR)/usr/lib$(DELDIR_LIB_SUFFIX)
47
DELDIR_INC = $(DELDIR)/usr/include
48
DELDIR_DOC = $(DELDIR)/usr/share/doc/Judy
49
DELDIR_DEMO = $(DELDIR_DOC)/demo
50
DELDIR_MAN = $(DELDIR)/usr/share/man/man3$(MANDIR_SUFFIX)
52
# Use normal tools for building internal tools (programs):
54
CCPATH_TOOL = $(CCPATH)
56
# TBD: Stock Linux does not have /usr/local/bin/cstrip, which is required for
57
# building constructed *.c files, which are only used (as of now) for lint:
59
CSTRIP = cstrip_not_present
61
# HP-UX has rmnl(1) but Linux does not, so use grep instead; note the tab:
63
RMNL = grep -v '^[ ]*$$'
65
# How to echo with escaped chars expanded; Linux /bin/sh = bash requires -e:
70
# Suffix for $LIB_ID (same as what's passed in $LIB_SUFFIX for a recursive
75
# Linker option to build a shared library:
77
# Note: The gcc manual entry contains this ominous prose about the -shared
78
# option: "Only a few systems support this option." We'll see...
80
# TBD: In the long run we should probably append a version number suffix to
81
# the library and use the ld -soname option (see the manual entry), but I think
82
# we can accomplish this later (at "version 2"). Also per the howto file (see
83
# http://www.ibiblio.org/pub/Linux/docs/HOWTO/GCC-HOWTO), it's possible the
84
# building should be done with gcc instead of ld.
88
# Optionally include PIC libs in tarchives:
90
TARCHIVE_LIBS_PIC = libs_pic
92
# Linux manual entries are compressed a variety of ways, but bzip2 appears most
93
# common; they go in suffixless directories regardless of compression, and
94
# filenames have compression suffixes:
100
# A weird concession to Win32 VC++ "CL" compiler, which needs -Fo to specify
101
# the object file and -Fe to specify the executable file:
103
# WARNING! There must be a blank after the "-o" on the following lines to
104
# satisfy the /opt/ccover/bin/covc command.
109
# Ensure $PLATFORM is set:
113
# Platform-specific library lists for Linux/IPF for various "lib" targets:
117
LIBS_ALL_LIST = lib64a lib64so
118
LIBS_PIC_LIST = lib64PICa
120
# The IPF box has a Bit counting instruction which is enabled with -DJU_LINUX_IPF
121
# and a Byte swapping instruction (JudySL) which is enabled thru
122
# /usr/include/byteswap.h. This is enabled with -DJU_LINUX. But this box is so
123
# fast, that enabling them is only a minor improvement.
125
#CC_OPTS_product = -Wall -O3 -DJU_LINUX -DJU_LINUX_IPF -DJU_64BIT -DJU_LITTLE_ENDIAN
127
CC_OPTS_product = -Wall -O3
128
CC_OPTS_cov = -Wall -O3 -DJU_FLAVOR_COV
129
CC_OPTS_debug = -Wall -g -DJU_FLAVOR_DEBUG