## improv library GNU makefile for linux. ## ## Programmer: Craig Stuart Sapp ## Creation Date: Fri Jan 15 04:47:24 PST 1999 ## Last Modified: Sun Mar 6 20:33:45 PST 2016 ## Filename: ...improv/Makefile.library ## ## Description: This Makefile creates the improv library lib/libimprov.a ## for linux, using gcc 2.7.2.1 or higher ## ## To run this makefile, type (without quotes) "make -f Makefile.library" ## # You can set the OSTYPE and OSSUBTYPE variables below; otherwise, they # will be set automatically later on. ########################################################################### # # # Operating System OSTYPEs available in the Improv examples compilation: # # # # LINUX = Linux running on intel computers and OSS sound drivers # # VISUAL = Windows 95/NT using Microsoft Visual C++ 5/6 # # OSXPC = Apple OS X on Intel CPUs # # OSXOLD = Apple OS X on PowerPC CPUs # # # # The file "sigConfiguration.h" in the include directory contains # # additional defines which will be activated by the compiler given the # # OSTYPE variable below. Look at the sigConfiguration.h file for # # various things which need to be defined specifically for each OS. # # # # Choose one of the following OSTYPE defines: # # # #OSTYPE = LINUX #OSTYPE = OSXPC #OSTYPE = VISUAL ########################################################################### # # # The OSSUBTYPE is for determining which type of sound drivers are being # # used in linux. There are three possibilities: # # OSSUBTYPE = ALSA : ALSA 1.0 interface (http://www.alsa-project.org)# # OSSUBTYPE = OSS : OSS interface (http://www.4front-tech.com) # # Two additional options are available for older systems: # # OSSUBTYPE = ALSA09 : ALSA 0.9 interface (http://www.alsa-project.org)# # OSSUBTYPE = ALSA05 : ALSA 0.5 interface (http://www.alsa-project.org)# # # # Note: The Improv library accesses the internal/external MIDI devices # # in OSS, but only the external MIDI devices in ALSA. OSS can be # # emulated in ALSA 0.9 and higher. But seems to be broken in ALSA 1.0. # # # # Choose one of the following OSSUBTYPE defines: # # # #OSSUBTYPE = ALSA #OSSUBTYPE = OSS #OSSUBTYPE = ########################################################################### # # # This section automatically sets the OSTYPE and OSSUBTYPE variables # # they are not defined manually above this point. This code will decide # # if the computer is and Apple Machintosh running on an Intel CPU, or a # # Linux computer running on an Intel CPU. You will have to specify a # # different setup manually in the previous section of the makefile. # # If the computer architecture is LINUX, then the code below will decide # # whether to compile OSS or ALSA MIDI interface code. # # # ENV = ifeq ($(origin OSTYPE), undefined) ifeq ($(shell uname),Darwin) OSTYPE = OSXPC # Uncomment the following line to compile for a particular version # of OS X (and should also run on OS X later versions). # ENV = MACOSX_DEPLOYMENT_TARGET=10.6 else OSTYPE = LINUX endif endif # Next if statement needed for some versions of make which already set OSTYPE: ifeq ($(OSTYPE),linux) OSTYPE = LINUX endif ifeq ($(origin OSSUBTYPE), undefined) ifeq ($(OSTYPE),OSXPC) OSSUBTYPE = endif ifeq ($(OSTYPE),LINUX) ifneq ($(wildcard /proc/asound/version),) OSSUBTYPE = ALSA else OSSUBTYPE = OSS endif endif endif ########################################################################### # # # Other setup of variables which usually don't need to be modified. # # # OBJDIR = obj SRCDIR = src INCDIR = include LIBDIR = lib LIBFILE = libimprov.a # LANG=C: Nuts to the GCC error beautification committee. COMPILER = LANG=C $(ENV) g++ DEFINES = $(addprefix -D,$(OSTYPE)) $(addprefix -D,$(OSSUBTYPE)) PREFLAGS = -Wall -c -g -O3 $(DEFINES) -I$(INCDIR) PREFLAGS += -Iexternal/midifile/include PREFLAGS += -fno-strict-aliasing PREFLAGS += -std=c++11 # Add the following define if using an older C++ compler: #PREFLAGS += -DOLDCPP # # # End of user-modifiable variables. # # # ########################################################################### # setting up the directory paths to search for dependency files vpath %.h $(INCDIR):$(SRCDIR) vpath %.cpp $(SRCDIR):$(INCDIR) vpath %.o $(OBJDIR) # generating a list of the object files OBJS = $(notdir $(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp))) # targets which don't actually refer to files .PHONY : all linux makeobjdir midifile ########################################################################### # # # Hardware Configurations: # # # all: external makeobjdir $(OBJS) ifeq ($(OSTYPE),LINUX) @echo Making improv library file for linux ... -mkdir $(LIBDIR) -rm -f $(LIBDIR)/$(LIBFILE) ar r $(LIBDIR)/$(LIBFILE) $(OBJDIR)/*.o $(INCDIR)/version ranlib $(LIBDIR)/$(LIBFILE) endif ifeq ($(OSTYPE),OSXPC) @echo "Making improv library file for OSX (Intel)..." -mkdir $(LIBDIR) -rm -f $(LIBDIR)/$(LIBFILE) ar r $(LIBDIR)/$(LIBFILE) $(OBJDIR)/*.o $(INCDIR)/version &> /dev/null endif ifeq ($(OSTYPE),VISUAL) echo "This makefile doesn't work with Visual C++." endif external: (cd external && make) clean: @echo Erasing object files: -rm -f $(OBJDIR)/*.o @echo Erasing obj directory: -rmdir $(OBJDIR) makeobjdir: -mkdir $(OBJDIR) # defining an explicit rule for object file dependencies %.o : %.cpp @echo [CC] $@ @$(COMPILER) $(PREFLAGS) -o $(OBJDIR)/$(notdir $@) $< # # ########################################################################### ########################################################################### # # # Dependencies -- generated with the following command in # # the src directory (in bash shell): # # # # for i in *.cpp # # do # # cc -I../include -MM $i | sed 's/\.\.\/include\///g' # # echo "" # # done # # # # Or in a csh-type shell (such as tcsh): # # # # foreach i (*.cpp) # # cc -I../include -MM $i | sed 's/\.\.\/include\///g' # # echo "" # # end # AdamsStick.o: AdamsStick.cpp AdamsStick.h MidiIO.h MidiInput.h \ MidiInPort.h MidiInPort_unsupported.h CircularBuffer.h \ CircularBuffer.cpp Array.h SigCollection.h SigCollection.cpp Array.cpp \ MidiOutput.h MidiOutPort.h MidiOutPort_unsupported.h MidiFileWrite.h \ FileIO.h SigTimer.h Event.o: Event.cpp Event.h OneStageEvent.h TwoStageEvent.h \ NoteEvent.h MultiStageEvent.h FunctionEvent.h EventBuffer.h \ CircularBuffer.h CircularBuffer.cpp MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp EventBuffer.o: EventBuffer.cpp EventBuffer.h Event.h OneStageEvent.h \ TwoStageEvent.h NoteEvent.h MultiStageEvent.h \ FunctionEvent.h CircularBuffer.h CircularBuffer.cpp MidiOutput.h \ MidiOutPort.h MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h \ SigTimer.h Array.h SigCollection.h SigCollection.cpp Array.cpp FileIO.o: FileIO.cpp sigConfiguration.h FileIO.h FunctionEvent.o: FunctionEvent.cpp FunctionEvent.h TwoStageEvent.h \ Event.h OneStageEvent.h MultiStageEvent.h EventBuffer.h \ CircularBuffer.h CircularBuffer.cpp MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp NoteEvent.h Idler.o: Idler.cpp Idler.h SigTimer.h KeyboardInput_unix.o: KeyboardInput_unix.cpp KeyboardInput_unix.h LineDisplay.o: LineDisplay.cpp LineDisplay.h MidiFileWrite.o: MidiFileWrite.cpp MidiFileWrite.h FileIO.h SigTimer.h MidiIO.o: MidiIO.cpp MidiIO.h MidiInput.h MidiInPort.h \ MidiInPort_unsupported.h CircularBuffer.h CircularBuffer.cpp Array.h \ SigCollection.h SigCollection.cpp Array.cpp MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h SigTimer.h MidiInPort_alsa.o: MidiInPort_alsa.cpp MidiInPort_alsa05.o: MidiInPort_alsa05.cpp MidiInPort_alsa09.o: MidiInPort_alsa09.cpp MidiInPort_linux.o: MidiInPort_linux.cpp MidiInPort_oss.o: MidiInPort_oss.cpp MidiInPort_unsupported.o: MidiInPort_unsupported.cpp \ MidiInPort_unsupported.h CircularBuffer.h \ CircularBuffer.cpp Array.h SigCollection.h SigCollection.cpp Array.cpp MidiInput.o: MidiInput.cpp MidiInput.h MidiInPort.h \ MidiInPort_unsupported.h CircularBuffer.h CircularBuffer.cpp Array.h \ SigCollection.h SigCollection.cpp Array.cpp MidiOutPort_alsa.o: MidiOutPort_alsa.cpp MidiOutPort_alsa09.o: MidiOutPort_alsa09.cpp MidiOutPort_linux.o: MidiOutPort_linux.cpp MidiOutPort_oss.o: MidiOutPort_oss.cpp MidiOutPort_unsupported.o: MidiOutPort_unsupported.cpp \ MidiOutPort_unsupported.h MidiOutput.o: MidiOutput.cpp MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp MidiPerform.o: MidiPerform.cpp MidiPerform.h FileIO.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp CircularBuffer.h \ CircularBuffer.cpp SigTimer.h MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h MidiPort.o: MidiPort.cpp MidiPort.h MidiInPort.h \ MidiInPort_unsupported.h CircularBuffer.h CircularBuffer.cpp \ Array.h SigCollection.h SigCollection.cpp Array.cpp MidiOutPort.h \ MidiOutPort_unsupported.h MultiStageEvent.o: MultiStageEvent.cpp MultiStageEvent.h Event.h \ OneStageEvent.h TwoStageEvent.h NoteEvent.h EventBuffer.h \ CircularBuffer.h CircularBuffer.cpp MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp FunctionEvent.h Nidaq.o: Nidaq.cpp NoteEvent.o: NoteEvent.cpp NoteEvent.h TwoStageEvent.h Event.h \ OneStageEvent.h MultiStageEvent.h FunctionEvent.h \ EventBuffer.h CircularBuffer.h CircularBuffer.cpp MidiOutput.h \ MidiOutPort.h MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h \ SigTimer.h Array.h SigCollection.h SigCollection.cpp Array.cpp OneStageEvent.o: OneStageEvent.cpp OneStageEvent.h Event.h TwoStageEvent.h \ NoteEvent.h MultiStageEvent.h FunctionEvent.h EventBuffer.h \ CircularBuffer.h CircularBuffer.cpp MidiOutput.h MidiOutPort.h \ MidiOutPort_unsupported.h MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp Options.o: Options.cpp Options.h Array.h SigCollection.h SigCollection.cpp \ Array.cpp Performance.o: Performance.cpp Performance.h PerformData.h \ PerformDataRecord.h Array.h SigCollection.h SigCollection.cpp Array.cpp \ MidiOutput.h MidiOutPort.h MidiOutPort_unsupported.h MidiFileWrite.h \ FileIO.h SigTimer.h RadioBaton.o: RadioBaton.cpp RadioBaton.h batonprotocol.h CircularBuffer.h \ CircularBuffer.cpp MidiIO.h MidiInput.h MidiInPort.h \ MidiInPort_unsupported.h Array.h SigCollection.h SigCollection.cpp \ Array.cpp MidiOutput.h MidiOutPort.h MidiOutPort_unsupported.h \ MidiFileWrite.h FileIO.h SigTimer.h RadioBatonTablet.o: RadioBatonTablet.cpp Sequencer_alsa.o: Sequencer_alsa.cpp Sequencer_alsa05.o: Sequencer_alsa05.cpp Sequencer_alsa09.o: Sequencer_alsa09.cpp Sequencer_oss.o: Sequencer_oss.cpp SigTimer.o: SigTimer.cpp SigTimer.h Synthesizer.o: Synthesizer.cpp Synthesizer.h MidiIO.h MidiInput.h \ MidiInPort.h CircularBuffer.h \ CircularBuffer.cpp Array.h SigCollection.h SigCollection.cpp Array.cpp \ MidiOutput.h MidiOutPort.h MidiFileWrite.h \ FileIO.h SigTimer.h TwoStageEvent.o: TwoStageEvent.cpp TwoStageEvent.h Event.h OneStageEvent.h \ MultiStageEvent.h FunctionEvent.h EventBuffer.h \ CircularBuffer.h CircularBuffer.cpp MidiOutput.h MidiOutPort.h \ MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp NoteEvent.h Voice.o: Voice.cpp Voice.h MidiOutput.h MidiOutPort.h \ MidiFileWrite.h FileIO.h SigTimer.h Array.h \ SigCollection.h SigCollection.cpp Array.cpp improv.o: improv.cpp improv.h mididefines.h midichannels.h notenames.h \ gminstruments.h sigControl.h SigTimer.h Idler.h \ MidiOutPort.h \ MidiOutput.h MidiFileWrite.h FileIO.h Array.h SigCollection.h \ SigCollection.cpp Array.cpp \ CircularBuffer.h CircularBuffer.cpp MidiInPort.h MidiInput.h MidiPort.h \ MidiIO.h RadioBaton.h batonprotocol.h AdamsStick.h Synthesizer.h \ Voice.h KeyboardInput.h KeyboardInput_unix.h MidiPerform.h \ EventBuffer.h Event.h OneStageEvent.h TwoStageEvent.h \ NoteEvent.h MultiStageEvent.h FunctionEvent.h Options.h