funs : $(DATA_DIR) $(QFILES)
	cat $(QFILES) | Splus
devs : $(DEVS)
objs :: $(OBJS)
local : $(OBJS)
	:;LOAD $(OBJS)
install.help : help
install.devs :: $(DEVS)
	-mv $(DEVS) $(SHOME)/splus/x/
sload : 
	$A/FUNLISTLCL -c $(C_OBJ_NAMES)
	$A/FUNLISTLCL $(F_OBJ_NAMES)
$(TIMEBOMB_SOURCES) : $(TIMEBOMB_DIR)/$$@
	cp $^ .
$(DATA_DIR) $(DEST)/$(DATA_DIR) :
	test -d $@ || mkdir $@
	test -d $@/__Meta || mkdir $@/__Meta
	test -d $@/__Hhelp || mkdir $@/__Hhelp
	test -d $@/__Shelp || mkdir $@/__Shelp

S : update
	cd $(SHOME)/library/main ; rm -f S ; Splus make S SqpeDLL

$(DATA_DIR)/$(HELP_DIR) $(DEST)/$(DATA_DIR)/$(HELP_DIR) :
	test -d $@ || mkdir $@
	
# Package up all files and subdirectories in Uglist file into a gzipped
# tar archives with name $(LIBRARY).tar.gz
libzip : Uglist
	test -f Uglist && ( ( test -f $(LIBRARY).tar.gz && rm -f $(LIBRARY).tar.gz ); mkdir $(LIBRARY); tar -cf - `cat Uglist` | (cd $(LIBRARY); tar -xf -); tar -cf - $(LIBRARY) | gzip > $(LIBRARY).tar.gz; rm -r -f $(LIBRARY) )

# Set BIGFILE_TYPE to something in your Smakefile if you want something other
# than a "standard" bigfile (e.g. an add-on module..S+DOX would use:
#       BIGFILE_TYPE=module10
#
bigfiles : $(DEST)/$(DATA_DIR)
	$A/MAKE_ONE_BIGFILE $(DEST)
	rm -f $@; touch $@

module: bigfiles 
	make_module $(DEST)/$(DATA_DIR)/__Objects `echo $(BIGFILE_TYPE) | sed -e 's/module//'`
	if [ `uname` = Windows_NT ]; then mkdir $(DEST)/$(DATA_DIR).save && mv $(DEST)/$(DATA_DIR)/__Objects.orig $(DEST)/$(DATA_DIR).save/__Objects; else rm -f $(DEST)/$(DATA_DIR)/__Objects.orig; fi

module.pro: 
	make_module $(DEST)/$(DATA_DIR).save/__Objects 255
	rm -f $(DEST)/$(DATA_DIR).save/__Objects.orig

$(SHLIBNAME) : $(SRCS)
	Splus SHLIB -o $(SHLIBNAME) $(SRCS)

clean :
	-find . \( -name "*.[oxa]" -o -name "*.adh" \) -exec rm -f $(FOUND_FILES) \;

q_clean :
	-$(RM) `ls *.qpp | sed 's:\.qpp:.q:'`
d_clean :
	-$(RM) `ls *.dpp | sed 's:\.dpp:.d:'`
cpp_clean :
	-$(RM) `ls *.cpp | sed 's:\.cpp::'`
r_clean :
	-$(RM) `ls *.rpp | sed 's:\.rpp:.r:'`
ad_clean :
	-$(RM) `ls *.adp | sed 's:\.adp:.ad:'`
sm_clean :
	-$(RM) `ls Smakefile | sed 's:file:.cpp:'`

shlib_clean :
	-$(RM) -f $(SHLIBNAME)
dev_clean :
	-$(RM) -f $(DEVS)

virgin.std : 
	-$(RM) -f help funs devs .x .data sload smake update bigfiles
	-$(RM) -f local.Sqpe S_load_time.[oc] core 

dev.test : $(DATA_DIR) 
	cat $(SHOME)/slocal/Devices/tests/test.dev.q | Splus
	@echo 'Installed new pipegraph() which will run the dev.* in the'
	@echo 'current directory, try test.plot() to make pretty graphs.'

smake: Smakefile
	sleep 1
	rm -f smake; touch smake

$(S_DOT_H) : $(S_DOT_H1) $(S_DOT_H2)
	sleep 1 ;rm -f $@; touch $@
$(S_DOT_H): $(INCmac)/S_sig.h $(INCmac)/S_spec.h $(INCmac)/S_eval.h
$(S_DOT_H): $(INCmac)/S_types.h $(INCmac)/S_tokens.h $(INCmac)/S_define.h
$(S_DOT_H): $(INCmac)/S_ansi.h $(INCmac)/S_rpc.h $(INCmac)/S_struct.h
$(S_DOT_H): $(INCmac)/S_extern.h $(INCmac)/S_classes.h $(INCmac)/io_defs.h
$(S_DOT_H1) : $(INCmac)/S.h $(INCmac)/cdefs.h $(INCmac)/local_os.h
	sleep 1 ;rm -f $@; touch $@
$(S_DOT_H2) : $(INCmac)/machine.h $(INCmac)/newNA.h $(INCmac)/system.h
	sleep 1 ;rm -f $@; touch $@
	
# see comment with delta 3.16 of maketail for explanation of $(S_DOT_H).
	
# For SunOS, at least (should be harmless for systems that don't do .SCCS_GET)
.SCCS_GET :
	checkoutcopy $@

# p4check should be in /sw/sca/adm/scripts on Unix build machines.
# It complains if a file is not checked into perforce (or due to be checked in).
P4_SOURCE_CANDIDATES=Smakefile *.cxx *.c *.r *.f *.cpp *.cm4 *.qpp *.q *.sgml $(SRCS)
p4check :
	# echo "Checking `ls $(P4_SOURCE_CANDIDATES) 2>/dev/null`"
	p4check `ls $(P4_SOURCE_CANDIDATES) 2>/dev/null | uniq`
