xref: /illumos-gate/usr/src/cmd/sort/Makefile (revision 101e15b5f8a77d9433805e541996abaabc9ca8c1)
17c478bd9Sstevel@tonic-gate#
2*101e15b5SRichard Lowe
3*101e15b5SRichard Lowe# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
47c478bd9Sstevel@tonic-gate# Use is subject to license terms.
57c478bd9Sstevel@tonic-gate#
6*101e15b5SRichard Lowe# Copyright (c) 2018, Joyent, Inc.
7*101e15b5SRichard Lowe
87c478bd9Sstevel@tonic-gate#
9*101e15b5SRichard Lowe# Debugging targets
10*101e15b5SRichard Lowe#   sort provides a number of debugging options to simplify failure analysis.
11*101e15b5SRichard Lowe#
12*101e15b5SRichard Lowe#   debug		provides symbol information and sets DEBUG; includes
13*101e15b5SRichard Lowe#			convert, invoke
14*101e15b5SRichard Lowe#   stats		builds binaries with statistics reporting enabled
15*101e15b5SRichard Lowe#   convert		builds convert binaries (converts input to collation
16*101e15b5SRichard Lowe#			vectors)
17*101e15b5SRichard Lowe#   invoke		builds invoke binaries (allows inspection of options
18*101e15b5SRichard Lowe#			parser outcome)
19*101e15b5SRichard Lowe#
20*101e15b5SRichard Lowe# Debugging #defines
21*101e15b5SRichard Lowe#   DEBUG		activate assertions; allow wider range of memory
22*101e15b5SRichard Lowe#			settings (-S)
23*101e15b5SRichard Lowe#   DEBUG_FORCE_WIDE	force all i/o through wide streams
24*101e15b5SRichard Lowe#   DEBUG_DISALLOW_MMAP	force all i/o through stdio or wide streams
25*101e15b5SRichard Lowe#   DEBUG_NO_CACHE_TEMP	do not cache last sorted portion in memory; write all
26*101e15b5SRichard Lowe#			data to temporary files before merge
277c478bd9Sstevel@tonic-gate#
287c478bd9Sstevel@tonic-gate
297c478bd9Sstevel@tonic-gatePROG = sort
307c478bd9Sstevel@tonic-gateXPG4PROG = sort
317c478bd9Sstevel@tonic-gate
32*101e15b5SRichard LoweBASE_OBJS =		\
33*101e15b5SRichard Lowe	check.o		\
34*101e15b5SRichard Lowe	fields.o	\
35*101e15b5SRichard Lowe	initialize.o	\
36*101e15b5SRichard Lowe	internal.o	\
37*101e15b5SRichard Lowe	merge.o		\
38*101e15b5SRichard Lowe	options.o	\
39*101e15b5SRichard Lowe	streams.o	\
40*101e15b5SRichard Lowe	streams_array.o \
41*101e15b5SRichard Lowe	streams_mmap.o	\
42*101e15b5SRichard Lowe	streams_stdio.o \
43*101e15b5SRichard Lowe	streams_wide.o	\
44*101e15b5SRichard Lowe	utility.o
457c478bd9Sstevel@tonic-gate
46*101e15b5SRichard LoweOBJS =	main.o $(BASE_OBJS)
47*101e15b5SRichard LoweINVOKE_OBJS = invoke.o $(BASE_OBJS)
48*101e15b5SRichard LoweCONVERT_OBJS = convert.o $(BASE_OBJS)
49*101e15b5SRichard LoweSTATS_OBJS = main.o statistics.o $(BASE_OBJS)
50*101e15b5SRichard Lowe
51*101e15b5SRichard LoweXPG4OBJS = $(OBJS:%.o=xpg4_%.o)
52*101e15b5SRichard LoweCLEANFILES = $(OBJS) $(XPG4OBJS)
53*101e15b5SRichard Lowe
54*101e15b5SRichard Loweinclude ../Makefile.cmd
55*101e15b5SRichard Loweinclude ../Makefile.cmd.64
56*101e15b5SRichard Lowe
57*101e15b5SRichard LoweDCFILE =	$(PROG).dc
58*101e15b5SRichard Lowe
59*101e15b5SRichard LoweCFLAGS +=	$(SORT_DEBUG)
60*101e15b5SRichard Lowe
61*101e15b5SRichard LoweCERRWARN +=	-_gcc=-Wno-parentheses
62*101e15b5SRichard LoweCERRWARN +=	$(CNOWARN_UNINIT)
63*101e15b5SRichard LoweCERRWARN +=	-_gcc=-Wno-unused-function
64*101e15b5SRichard Lowe
65*101e15b5SRichard Lowe# not linted
66*101e15b5SRichard LoweSMATCH=off
67*101e15b5SRichard Lowe
68*101e15b5SRichard Lowe$(XPG4)	:=	CFLAGS += -DXPG4
69*101e15b5SRichard Lowe
70*101e15b5SRichard Lowedebug :=	SORT_DEBUG = $(CCGDEBUG) -DDEBUG
71*101e15b5SRichard Lowedebug :=	COPTFLAG =
72*101e15b5SRichard Lowedebug :=	COPTFLAG64 =
73*101e15b5SRichard Lowestats	:=	SORT_DEBUG = $(CCGDEBUG) -DSTATS -DDEBUG
74*101e15b5SRichard Lowestats	:=	COPTFLAG =
75*101e15b5SRichard Lowestats	:=	COPTFLAG64 =
767c478bd9Sstevel@tonic-gate
777c478bd9Sstevel@tonic-gate.KEEP_STATE :
787c478bd9Sstevel@tonic-gate
79*101e15b5SRichard Lowe.PARALLEL : $(OBJS) $(XPG4OBJS) $(LNTS)
80*101e15b5SRichard Lowe
81*101e15b5SRichard Loweall : $(PROG) $(XPG4)
82*101e15b5SRichard Lowe
83*101e15b5SRichard Lowedebug : $(PROG) convert invoke
84*101e15b5SRichard Lowe
85*101e15b5SRichard Loweclean :
86*101e15b5SRichard Lowe	$(RM) $(CLEANFILES)
87*101e15b5SRichard Lowe
88*101e15b5SRichard Lowe$(PROG) : $(OBJS)
89*101e15b5SRichard Lowe	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
90*101e15b5SRichard Lowe	$(POST_PROCESS)
91*101e15b5SRichard Lowe
92*101e15b5SRichard Lowe$(XPG4) : $(XPG4OBJS)
93*101e15b5SRichard Lowe	$(LINK.c) -o $@ $(XPG4OBJS) $(LDLIBS)
94*101e15b5SRichard Lowe	$(POST_PROCESS)
95*101e15b5SRichard Lowe
96*101e15b5SRichard Loweinvoke: $(INVOKE_OBJS)
97*101e15b5SRichard Lowe	$(LINK.c) -o $@ $(INVOKE_OBJS) $(LDLIBS)
98*101e15b5SRichard Lowe
99*101e15b5SRichard Loweconvert: $(CONVERT_OBJS)
100*101e15b5SRichard Lowe	$(LINK.c) -o $@ $(CONVERT_OBJS) $(LDLIBS)
101*101e15b5SRichard Lowe
102*101e15b5SRichard Lowestats: $(STATS_OBJS)
103*101e15b5SRichard Lowe	$(LINK.c) -o $@ $(STATS_OBJS) $(LDLIBS)
104*101e15b5SRichard Lowe
105*101e15b5SRichard Lowe%.o : %.c
106*101e15b5SRichard Lowe	$(COMPILE.c) -o $@ $<
107*101e15b5SRichard Lowe	$(POST_PROCESS_O)
108*101e15b5SRichard Lowe
109*101e15b5SRichard Lowexpg4_%.o : %.c
110*101e15b5SRichard Lowe	$(COMPILE.c) -o $@ $<
111*101e15b5SRichard Lowe	$(POST_PROCESS_O)
112*101e15b5SRichard Lowe
113*101e15b5SRichard LoweSRCS =	check.c fields.c initialize.c internal.c \
114*101e15b5SRichard Lowe	main.c merge.c options.c streams.c \
115*101e15b5SRichard Lowe	streams_array.c streams_mmap.c streams_stdio.c \
116*101e15b5SRichard Lowe	streams_wide.c utility.c
117*101e15b5SRichard Lowe
118*101e15b5SRichard LowePOFILES = $(SRCS:.c=.po)
1197c478bd9Sstevel@tonic-gateXGETFLAGS += -a -x sort.xcl
120*101e15b5SRichard LoweCLOBBERFILES = $(DCFILE) $(POFILE) $(POFILES)
1217c478bd9Sstevel@tonic-gate
122*101e15b5SRichard LoweROOTLINK = $(PROG:%=$(ROOTBIN64)/%)
1237c478bd9Sstevel@tonic-gate
124*101e15b5SRichard Lowe.KEEP_STATE:
1257c478bd9Sstevel@tonic-gate
126*101e15b5SRichard Loweinstall : $(ROOTPROG) $(ROOTXPG4PROG) $(ROOTLINK)
1277c478bd9Sstevel@tonic-gate
128*101e15b5SRichard Lowe$(ROOTLINK):
129*101e15b5SRichard Lowe	$(RM) $@; $(SYMLINK) ../../bin/$(@F) $@
1307c478bd9Sstevel@tonic-gate
1317c478bd9Sstevel@tonic-gate$(POFILE) : $(POFILES)
1327c478bd9Sstevel@tonic-gate	echo $(SRCS)
1337c478bd9Sstevel@tonic-gate	echo $(POFILES)
1347c478bd9Sstevel@tonic-gate	-$(RM) $@
1357c478bd9Sstevel@tonic-gate	$(CAT) $(POFILES) > $@
1367c478bd9Sstevel@tonic-gate
137*101e15b5SRichard Lowe%.po : %.c
1387c478bd9Sstevel@tonic-gate	$(RM) messages.po
1397c478bd9Sstevel@tonic-gate	$(XGETTEXT) -c TRANSLATION_NOTE $<
1407c478bd9Sstevel@tonic-gate	$(SED) -e '/^domain/d' messages.po > $@
1417c478bd9Sstevel@tonic-gate	$(RM) messages.po
1427c478bd9Sstevel@tonic-gate
1437c478bd9Sstevel@tonic-gateinclude ../Makefile.targ
144