XCOMM
XCOMM MiXViews - a sound editor and processor
XCOMM

XCOMM Note:  You must '#define HasGcc2 YES' in config/gcc.def to get the
XCOMM correct flags for the Gnu C and C++ compilers.
XCOMM If you cannot do that, then add that line immediately below this line.

CCSUFFIX = C
LOCALINCLUDE = g++include/

XCOMM This needs to be updated with each release
VERSION = 1.32
TOP = mxv-$(VERSION)/

#ifdef InObjectCodeDir

XCOMM Set this to whichever library you use for linking fortran code.  On
XCOMM most modern Gnu platforms the libf2c library comes with the Gnu C++
XCOMM libraries.

APP_FORTLIBS = -lf2c

#if defined(SunArchitecture)

#if OSMajorVersion <= 4
ARCH_VERSIONDEFS=-DOLD_SUN_OS
#else
ARCH_VERSIONDEFS=-DOSMajorVersion=5
#endif

/* define one of the following on a Sparc system depending on your converter */

#define USE_SPARC
/* #define USR_PROPORT */

/* mxv requires libf2c.a or a full libF77/libI77 library pair */ 

APP_FORTLIBS = -lf2c

#if HasGcc2
ARCH_NEWFLAG = -DUSE_CUSTOM_NEW
#else
ARCH_NEWFLAG =
#endif

/* flags for system with the native Sparc only */

#ifdef USE_SPARC
ARCH_CCDEFINES = $(ARCH_NEWFLAG) -DSPARC_DACS $(ARCH_VERSIONDEFS)
ARCH_CCLDFLAGS = -L/usr/demo/SOUND/lib
ARCH_CCINCLUDES = -I/usr/demo/SOUND/include
ARCH_CCLDLIBS = -laudio $(APP_FORTLIBS) -lm
DAC_OBJS = conv_config.o conv_device.o sun_dac.o
#endif

/* flags for system with the Ariel S56x converter */

#ifdef USE_PROPORT
S56DIR = ../s56x
ARCH_CCDEFINES = $(ARCH_NEWFLAG) -DSPARC_DACS -DPROPORT_DACS $(ARCH_VERSIONDEFS)
ARCH_CCLDFLAGS = -L/usr/demo/SOUND -L$(S56DIR)/lib
ARCH_CCINCLUDES = -I/usr/demo/SOUND -I$(S56DIR)/include
ARCH_CCLDLIBS = -laudio -ldrp -lqckMon $(APP_FORTLIBS) -lm
DAC_OBJS = conv_config.o conv_device.o sun_dac.o proport_dac.o
#endif

ARCH_OBJS = MyString.o MyRegex.o error.o utils.o

DEBUG_CCFLAGS = # -Ddebug

#if defined(UseDebug)
DEBUG_CCLDLIBS = /usr/lib/debug/malloc.o
#endif
#endif

#if defined(NeXTArchitecture)
ARCH_CCFLAGS = -pipe
ARCH_CCDEFINES = -DINLINE_MATH -DUSE_CUSTOM_NEW -DCOMPLEX_SUPPORTED
ARCH_CCINCLUDES =
ARCH_CCLDFLAGS =
ARCH_CCLDLIBS = $(APP_FORTLIBS)

DAC_OBJS = conv_config.o next_dac.o
ARCH_OBJS = MyString.o MyRegex.o error.o

DEBUG_CCFLAGS = -Ddebug
#if defined(UseDebug)
DEBUG_CCLDLIBS = -lMallocDebug
#endif
#endif

#if defined(PPCArchitecture)

ARCH_CCFLAGS = -fno-operator-names
ARCH_CCDEFINES = -DMACOSX
ARCH_CCINCLUDES = -I../$(LOCALINCLUDE) -I/usr/local/include
ARCH_CCLDFLAGS =
ARCH_CCLDLIBS = $(APP_FORTLIBS) -framework CoreAudio
ARCH_OBJS = MyString.o MyRegex.o error.o

DAC_OBJS = conv_config.o osx_dac.o

DEBUG_CCFLAGS = -Ddebug
#if defined(UseDebug)
DEBUG_CCLDLIBS = -lMallocDebug
#endif
#endif

#if defined(SGIArchitecture)

XCOMM The ARCH flags are set based on whether or not a Gnu compiler is used

#if !HasGcc2

ARCH_CCFLAGS = -w -signed -n32 -mips3
#if OSMajorVersion == 5 && OSMinorVersion <= 2
ARCH_CCDEFINES = -DNO_NEW_HANDLER -DNO_TEMPLATES -DAIFF_AUDIO -DSGI_DACS -DCOMPLEX_SUPPORTED
#else
ARCH_CCDEFINES = -DNO_NEW_HANDLER -DAIFF_AUDIO -DSGI_DACS -DCOMPLEX_SUPPORTED
#endif
#if OSMajorVersion == 6 && OSMinorVersion >= 3
OPTIMIZER=-O3
#endif
ARCH_CCINCLUDES = -I../$(LOCALINCLUDE) -I/usr/local/include
ARCH_OBJS = MyString.o MyRegex.o error.o
#else
ARCH_CCDEFINES = -DAIFF_AUDIO -DSGI_DACS -DCOMPLEX_SUPPORTED
ARCH_CCFLAGS=
ARCH_OBJS =
#endif

ARCH_CCLDFLAGS = -L/usr/local/lib
ARCH_CCLDLIBS = -laudio -laudiofile -laudioutil $(APP_FORTLIBS) -lm

DAC_OBJS = conv_config.o sgi_dac.o
APP_FORTLIBS = -lftn

DEBUG_CCFLAGS = -Ddebug
#if defined(UseDebug)
DEBUG_CCLDLIBS =
#endif
#endif

#if defined(LinuxArchitecture)
XCOMM Extra defines, include directories, loading flags, and libraries needed
XCOMM for the Linux version.  The assumption is that you are using Gnu gcc/g++

ARCH_CCFLAGS = -fkeep-inline-functions -mieee-fp -fno-operator-names

XCOMM Use these 3 lines if you have the ALSA libraries
ARCH_SOUNDFLAGS = -DALSA
ARCH_SOUNDLIBS = -lasound
ARCH_SOUNDOBJS = alsa_converter.o
XCOMM Use these 3 lines if you use the old default OSS audio interface
XCOMM ARCH_SOUNDFLAGS = -DOSS
XCOMM ARCH_SOUNDLIBS =
XCOMM ARCH_SOUNDOBJS = conv_device.o oss_converter.o

ARCH_CCDEFINES = $(ARCH_SOUNDFLAGS) -DXDisplay=_XDisplay -DCOMPLEX_SUPPORTED

XCOMM Use this line if you get conflicts between the builtin min() and max()
XCOMM and the InterViews versions.
XCOMM ARCH_CCDEFINES = -DOSS -DXDisplay=_XDisplay -DCOMPLEX_SUPPORTED -Div2_6_minmax_h

ARCH_OBJS = MyString.o MyRegex.o error.o
ARCH_CCINCLUDES = -I../$(LOCALINCLUDE) -I/usr/local/include/g++
XCOMM On systems which have builtin.h installed, use this next line.
XCOMM ARCH_CCINCLUDES = -I/usr/local/include/g++

ARCH_CCLDFLAGS =
ARCH_CCLDLIBS = $(APP_FORTLIBS) $(ARCH_SOUNDLIBS) -lm -lieee
DEBUG_CCFLAGS = -Ddebug

DAC_OBJS = conv_config.o $(ARCH_SOUNDOBJS)
#endif

#if defined(i386SVR4Architecture)
XCOMM This assumes you have the SoundBlaster card on your machine
ARCH_CCDEFINES = -DSOUNDBLASTER -DCOMPLEX_SUPPORTED
ARCH_CCINCLUDES =
ARCH_CCLDFLAGS =
ARCH_CCLDLIBS = -lm -lPW -lmalloc
DEBUG_CCFLAGS = -Ddebug
#if defined(UseDebug)
DEBUG_CCLDLIBS =
#endif
#endif

#if defined(AlphaArchitecture)
XCOMM For DEC Alpha machine -- no sound software yet.
ARCH_CCDEFINES = -DCOMPLEX_SUPPORTED
ARCH_CCINCLUDES =
ARCH_CCLDFLAGS =
ARCH_CCLDLIBS = $(APP_FORTLIBS) -lm
DEBUG_CCFLAGS = -Ddebug
#if defined(UseDebug)
DEBUG_CCLDLIBS =
#endif
#endif

#if defined(SCOArchitecture)
XCOMM For SCO UNIX on a PC
ARCH_CCDEFINES = -DCOMPLEX_SUPPORTED
ARCH_CCINCLUDES =
ARCH_CCLDFLAGS =
ARCH_CCLDLIBS = $(APP_FORTLIBS) -lm
DEBUG_CCFLAGS = -Ddebug
#if defined(UseDebug)
DEBUG_CCLDLIBS =
#endif
#endif

XCOMM These flags may need to be edited depending on your system

#if HasGcc2
CC = gcc -pipe -Wall $(OPTIMIZE_CCFLAGS) -finline-functions
APP_CCFLAGS = $(ARCH_CCFLAGS) -Wall -Wno-unused -Wno-import -Wno-extern-inline 
TEMPLATE_OPTIMIZE_CCFLAGS = -g
#else
#CC = cc -O
APP_CCFLAGS = $(ARCH_CCFLAGS)
TEMPLATE_OPTIMIZE_CCFLAGS = $(OPTIMIZE_CCFLAGS)
#endif

XCOMM Be sure to remove the -DIV_IS_PATCHED flag if using InterViews 3.1

/* APP_CCDEFINES = $(ARCH_CCDEFINES) -DIV_IS_PATCHED -DNDEBUG */
APP_CCDEFINES = $(ARCH_CCDEFINES) -DNDEBUG
APP_CCINCLUDES = -I$(SRC) $(ARCH_CCINCLUDES)
APP_CCLDFLAGS = -L. $(ARCH_CCLDFLAGS)
APP_CCLDLIBS = $(DEBUG_CCLDLIBS) -lcfuns $(ARCH_CCLDLIBS)
APP_CCDEPLIBS = libcfuns.a

FLAGS = $(ARCH_CCDEFINES) $(EXTRA_CCFLAGS) $(OPTIMIZER) -I/usr/local/include


BINDIR = /usr/local/bin

AOUT = mxv

Use_libInterViews()
Use_2_6()

FUTURE_OBJS = editcommand.o commandlookup.o datatype.o

OBJS = application.o main.o format.o selector.o graphplot.o vmessage.o \
rubbertext.o numberlabel.o scaledarea.o graph.o channelgraph.o framegraph.o \
scale.o dataview.o channelview.o frameview.o viewchanger.o framedwindow.o \
datawindow.o textwindow.o scroller.o menus.o editor.o edit_menus.o \
edit_request.o soundeditor.o pvoceditor.o controller.o version.o \
contscroller.o adjtext.o valueslider.o range.o cmdstate.o \
buttonarray.o dialogbox.o progressdialog.o fileselector.o optionsetter.o \
smartmem.o dialog_ctor.o comment.o commenteditor.o filename.o controller_conv.o \
statuspanel.o textinput.o buffer.o queue.o wavetable.o windowtable.o \
requester.o formatrequester.o formantrequester.o pvocrequester.o \
configurable.o modifier.o datamodifier.o processfun.o outputfunction.o \
iofunction.o interpolater.o synthfunction.o pitchconv.o combfilter.o \
rescaler.o filecommand.o analysisfun.o firfilter.o lowpassfilter.o \
silencedetecter.o envelopefun.o phraser.o fader.o MyComplex.o \
reson.o delay.o array.o arrayfunction.o iallpole.o lpcfilter.o \
formantfilter.o formantsynth.o pitchtracker.o pulsegen.o fftfun.o \
pvocmodifier.o crossfader.o curvegen.o ellipfilt.o phasevocoder.o \
pvanalyzer.o pvsynthesizer.o new.o diskfile.o datafile.o diskstruct.o header.o \
soundheader.o aiff_header.o wavheader.o lpcheader.o envelopeheader.o \
pvocheader.o cs_pvocheader.o ieee_float.o \
repclone.o datarep.o data.o framedata.o lpcdata.o pchdata.o pvocdata.o \
sound.o fftdata.o envelope.o query.o queryvalue.o query_templates.o request.o \
header_config.o smpte.o compressor.o $(ARCH_OBJS) converter.o $(DAC_OBJS)

ComplexProgramTarget(mxv)

MakeObjectFromSrcFlags(converter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(conv_config, $(TEMPLATE_OPTIMIZE_CCFLAGS))

XCOMM The following are system-dependent objects

#if defined(SunArchitecture)
MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(sun_dac, $(OPTIMIZE_CCFLAGS))
#ifdef USE_PROPORT
MakeObjectFromSrcFlags(proport_dac, $(OPTIMIZE_CCFLAGS))
#endif
#endif
#if defined(NeXTArchitecture)
MakeObjectFromSrcFlags(next_dac, $(OPTIMIZE_CCFLAGS))
#endif
#if defined(SGIArchitecture)
MakeObjectFromSrcFlags(sgi_dac, $(OPTIMIZE_CCFLAGS))
#endif
#if defined(PPCArchitecture)
MakeObjectFromSrcFlags(osx_dac, $(OPTIMIZE_CCFLAGS))
#endif
#if defined(LinuxArchitecture)
MakeObjectFromSrcFlags(utils, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(oss_converter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(alsa_converter, $(OPTIMIZE_CCFLAGS))
#endif
#if defined(i386SVR3Architecture)
MakeObjectFromSrcFlags(conv_device, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(soundblaster, $(OPTIMIZE_CCFLAGS))
#endif

XCOMM End of system-dependent objects

MakeObjectFromSrcFlags(new, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(smartmem, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(datatype, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(diskstruct, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(ieee_float, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(MyComplex, $(OPTIMIZE_CCFLAGS))

MakeObjectFromSrcFlags(diskfile, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(datafile, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(header, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(header_config, $(TEMPLATE_OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(lpcheader, $(TEMPLATE_OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(envelopeheader, $(TEMPLATE_OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(soundheader, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(aiff_header, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(wavheader, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvocheader, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(cs_pvocheader, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(compressor, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(datarep, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(repclone, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(data, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(envelope, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(framedata, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(fftdata, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(lpcdata, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pchdata, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvocdata, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(sound, $(OPTIMIZE_CCFLAGS))

MakeObjectFromSrcFlags(query, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(queryvalue, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(query_templates, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(request, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(requester, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(formatrequester, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(formantrequester, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvocrequester, $(OPTIMIZE_CCFLAGS))

MakeObjectFromSrcFlags(range, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(buffer, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(queue, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(array, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(wavetable, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(windowtable, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pitchconv, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(configurable, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(modifier, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(datamodifier, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(filecommand, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(editcommand, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(optionsetter, $(TEMPLATE_OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(crossfader, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvocmodifier, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(processfun, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(lowpassfilter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(envelopefun, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(phraser, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(fader, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(rescaler, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(reson, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(outputfunction, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(synthfunction, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(curvegen, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(iofunction, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(interpolater, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(combfilter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(delay, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pulsegen, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(analysisfun, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(silencedetecter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(arrayfunction, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(iallpole, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(lpcfilter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(formantfilter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(formantsynth, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pitchtracker, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(fftfun, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(phasevocoder, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(firfilter, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvanalyzer, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvsynthesizer, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(ellipfilt, $(OPTIMIZE_CCFLAGS))

MakeObjectFromSrcFlags(controller, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(edit_menus, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(edit_request, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(editor, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(cmdstate, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(pvoceditor, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(soundeditor, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(commandlookup, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(format, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(smpte, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(filename, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(application, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(main, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(controller_conv, $(OPTIMIZE_CCFLAGS))

MakeObjectFromSrcFlags(menus, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(scaledarea, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(scale, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(graphplot, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(graph, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(channelgraph, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(framegraph, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(selector, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(rubbertext, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(dataview, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(viewchanger, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(channelview, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(frameview, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(framedwindow, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(comment, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(commenteditor, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(textwindow, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(datawindow, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(statuspanel, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(vmessage, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(version, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(scroller, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(contscroller, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(textinput, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(numberlabel, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(adjtext, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(valueslider, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(buttonarray, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(dialogbox, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(progressdialog, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(fileselector, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(dialog_ctor, $(OPTIMIZE_CCFLAGS))

XCOMM The following targets replace what has been removed from
XCOMM the standard c++ libraries over the years.

MakeObjectFromSrcFlags(error, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(MyRegex, $(OPTIMIZE_CCFLAGS))
MakeObjectFromSrcFlags(MyString, $(OPTIMIZE_CCFLAGS))

LIBCFUNS = libcfuns.a
CFUNOBJS = ellipse.o kaiser.o mxfft.o i1mach.o

$(LIBCFUNS): ellipse.o
ellipse.o: $(SRC)/ellipse.c
	@$(RM) ellipse.o
	$(CC) $(FLAGS) -c $(SRC)/ellipse.c	

$(LIBCFUNS): kaiser.o
kaiser.o: $(SRC)/kaiser.c
	@$(RM) kaiser.o
	$(CC) $(FLAGS) -c $(SRC)/kaiser.c	

$(LIBCFUNS): mxfft.o
mxfft.o: $(SRC)/mxfft.c
	@$(RM) mxfft.o
	$(CC) $(FLAGS) -c $(SRC)/mxfft.c	

$(LIBCFUNS): i1mach.o
i1mach.o: $(SRC)/i1mach.c
	@$(RM) i1mach.o
	$(CC) $(FLAGS) -c $(SRC)/i1mach.c	

NormalNonSharedLibraryTarget(cfuns,NullParameter,$(CFUNOBJS))

#else

MakeInObjectCodeDir()

COMPRESS = bzip2
UNCOMPRESS = bunzip2
COMPSUFFIX = bz2

#if defined(SunArchitecture)

#ifdef USE_SPARC
SPECIAL_IMAKEFLAGS=-DIVUseInstalled -DUseInstalled -DUSE_SPARC
#endif
#ifdef USE_PROPORT
SPECIAL_IMAKEFLAGS=-DIVUseInstalled -DUseInstalled -DUSE_PROPORT
#endif

#elif defined(SGIArchitecture)

#if OSMajorVersion == 6 && OSMinorVersion >= 3
SPECIAL_IMAKEFLAGS=-DIVUseInstalled -DUseInstalled -DBuild32bit
#endif

#endif

src-release:
	cd ..; tar cvf - $(TOP)Imake* $(TOP)CHANGES $(TOP)README* $(TOP)mxv.doc $(TOP)mxv.bitmap $(TOP)MiXViews.res $(TOP)*.[$(CCSUFFIX)ch] $(TOP)$(LOCALINCLUDE)*.h | $(COMPRESS) > mxv-v$(VERSION).src.tar.$(COMPSUFFIX)

dist:
	tar cvf - Imake* CHANGES README* mxv.doc mxv.bitmap MiXViews.res *.[$(CCSUFFIX)ch] $(LOCALINCLUDE)*.h | $(COMPRESS) > mxv-v$(VERSION)-src.tar.$(COMPSUFFIX)

bindist: all
	cp $(CPU)/mxv .
	strip ./mxv
	tar cvf - ./mxv MiXViews.res README | $(COMPRESS) > mxv-vX.XX-$(CPU).tar.$(COMPSUFFIX)
	rm -f ./mxv

backup: dist
	@cd old; rm -r -f *
	mv dist.tar.$(COMPSUFFIX) old

diff:
	@touch diffs.NEW
	@echo '***************' >> diffs.NEW
	@echo `date` >> diffs.NEW
	@echo '***************' >> diffs.NEW
	@cd old; cat dist.tar.$(COMPSUFFIX) | $(UNCOMPRESS) | tar xf -
	-@for file in *.[$(CCSUFFIX)ch]; \
		do \
			if [ ! -f old/$$file ]; then \
					(touch old/$$file); \
			fi; \
		done
	-/bin/diff -c -r old . | grep -v "^Only" | grep -v "^Common" >> diffs.NEW
	$(MAKE) backup

newtar:
	tar cvf - `find . \( -name "*.[Cch]" -o -name "I*" -o -name CHANGES \) -a -type f -a -newer .lastnew -print` | $(COMPRESS) > new.tar.$(COMPSUFFIX)
	@touch .lastnew

tags:
	ctags -d *.[$(CCSUFFIX)ch]

#endif

