#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#
# Debugging targets
# sort provides a number of debugging options to simplify failure analysis.
#
# debug provides symbol information and sets DEBUG; includes
# convert, invoke
# stats builds binaries with statistics reporting enabled
# convert builds convert binaries (converts input to collation
# vectors)
# invoke builds invoke binaries (allows inspection of options
# parser outcome)
#
# Debugging #defines
# DEBUG activate assertions; allow wider range of memory
# settings (-S)
# DEBUG_FORCE_WIDE force all i/o through wide streams
# DEBUG_DISALLOW_MMAP force all i/o through stdio or wide streams
# DEBUG_NO_CACHE_TEMP do not cache last sorted portion in memory; write all
# data to temporary files before merge
#
PROG = sort
XPG4PROG = sort
BASE_OBJS = \
check.o \
fields.o \
initialize.o \
internal.o \
merge.o \
options.o \
streams.o \
streams_array.o \
streams_mmap.o \
streams_stdio.o \
streams_wide.o \
utility.o
OBJS = main.o $(BASE_OBJS)
INVOKE_OBJS = invoke.o $(BASE_OBJS)
CONVERT_OBJS = convert.o $(BASE_OBJS)
STATS_OBJS = main.o statistics.o $(BASE_OBJS)
XPG4OBJS = $(OBJS:%.o=xpg4_%.o)
SRCS = $(OBJS:%.o=../common/%.c)
LNTS = $(OBJS:%.o=%.ln)
CLEANFILES = $(OBJS) $(XPG4OBJS) $(LNTS)
include ../../Makefile.cmd
SED = sed
DCFILE = $(PROG).dc
SPACEFLAG =
SPACEFLAG64 =
CFLAGS += $(CCVERBOSE) $(SORT_DEBUG)
CFLAGS64 += $(CCVERBOSE) $(SORT_DEBUG)
CPPFLAGS += -D_FILE_OFFSET_BITS=64
LINTFLAGS += -U_FILE_OFFSET_BITS
CERRWARN += -_gcc=-Wno-parentheses
CERRWARN += -_gcc=-Wno-uninitialized
CERRWARN += -_gcc=-Wno-unused-function
$(XPG4) := CFLAGS += -DXPG4
debug := SORT_DEBUG = -g -DDEBUG $(ILDOFF)
debug := COPTFLAG =
debug := COPTFLAG64 =
stats := SORT_DEBUG = -g -DSTATS -DDEBUG $(ILDOFF)
stats := COPTFLAG =
stats := COPTFLAG64 =
.KEEP_STATE :
.PARALLEL : $(OBJS) $(XPG4OBJS) $(LNTS)
all : $(PROG) $(XPG4)
debug : $(PROG) convert invoke
lint : $(LNTS)
$(LINT.c) $(LINTFLAGS) $(LNTS) $(LDLIBS)
clean :
$(RM) $(CLEANFILES)
include ../../Makefile.targ
# rules for $(PROG) and $(XPG4)
$(PROG) : $(OBJS)
$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
$(POST_PROCESS)
$(XPG4) : $(XPG4OBJS)
$(LINK.c) -o $@ $(XPG4OBJS) $(LDLIBS)
$(POST_PROCESS)
invoke: $(INVOKE_OBJS)
$(LINK.c) -o $@ $(INVOKE_OBJS) $(LDLIBS)
convert: $(CONVERT_OBJS)
$(LINK.c) -o $@ $(CONVERT_OBJS) $(LDLIBS)
stats: $(STATS_OBJS)
$(LINK.c) -o $@ $(STATS_OBJS) $(LDLIBS)
%.o : ../common/%.c
$(COMPILE.c) -o $@ $<
$(POST_PROCESS_O)
xpg4_%.o : ../common/%.c
$(COMPILE.c) -o $@ $<
$(POST_PROCESS_O)
%.o : ../common/%.h types.h
xpg4_%.o : ../common/%.h types.h
%.ln: ../common/%.c
$(LINT.c) $(LINTFLAGS) -c $<