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