Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
##
## Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu>
## Creation Date: Sun Aug 9 22:20:14 PDT 2015
## Last Modified: Sat Jun 17 00:14:11 CEST 2017
## Syntax: GNU Makefile
## Filename: humlib/Makefile
## vim: ts=3
##
## Description: Makefile to run tasks for humlib library.
##
## To compile the humlib library with the Options class, run:
## make CFLAGS=-D_INCLUDE_HUMLIB_OPTIONS_
## Otherwise to compile:
## make
## To create the minimal file version:
## make min
##
# Set the environmental variable $MACOSX_DEPLOYMENT_TARGET to
# "10.9" in Apple OS X to compile for OS X 10.9 and later (for example,
# you can compile for OS X 10.9 computers even if you are using the 10.10
# version of the operating system).
ENV =
OS := $(shell uname -s)
ifeq ($(OS),Darwin)
OS = OSX
# Minimum OS X Version for C++11 is OS X 10.9:
ENV = MACOSX_DEPLOYMENT_TARGET=10.9
# use the following to compile for 32-bit architecture on 64-bit comps:
#ARCH = -m32 -arch i386
else
# use the following to compile for 32-bit architecture on 64-bit comps:
# (you will need 32-bit libraries in order to do this)
# ARCH = -m32
endif
###########################################################################
# #
# Beginning of user-modifiable configuration variables #
# #
BINDIR = bin
OBJDIR = obj
SRCDIR = src
TOOLDIR = cli
SRCDIR_MIN = src
INCDIR = include
INCDIR_MIN = include
LIBDIR = lib
LIBFILE = libhumdrum.a
LIBFILE_MIN = libhumlib.a
#DYLIBFILE = libhumlib.dylib
LIBFILE_PUGI = libpugixml.a
DLIBFILE = libhumdrum.a
DLIBFILE_MIN = libhumlib.a
ifeq ($(OS),OSX)
DLIBFILE_MIN = humlib.dylib
else
DLIBFILE_MIN = humlib.so
endif
AR = ar
RANLIB = ranlib
PREFLAGS = -c -g $(CFLAGS) $(DEFINES) -I$(INCDIR)
PREFLAGS += -O3 -Wall
# using C++ 2011 standard in Humlib:
PREFLAGS += -std=c++11
# Add -static flag to compile without dynamics libraries for better portability:
POSTFLAGS =
# POSTFLAGS += -static
ifeq ($(CXX),)
COMPILER = LANG=C $(ENV) g++ $(ARCH)
else
COMPILER = LANG=C $(ENV) $(CXX) $(ARCH)
endif
# Or use clang++ v3.3:
#COMPILER = clang++
#PREFLAGS += -stdlib=libc++
# #
# 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 =
OBJS += $(notdir $(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/tool-*.cpp)))
OBJS += $(notdir $(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/[A-Z]*.cpp)))
# targets which don't actually refer to files
.PHONY: examples myprograms src include dynamic cli
###########################################################################
all: pugixml library tools
update:
git checkout src/humlib.cpp
git checkout include/humlib.h
git pull
pugi: pugixml
pugixml: makedirs pugixml.o
@-rm -f $(LIBDIR)/$(LIBFILE_PUGI)
@$(AR) r $(LIBDIR)/$(LIBFILE_PUGI) $(OBJDIR)/pugixml.o
@$(RANLIB) $(LIBDIR)/$(LIBFILE_PUGI)
dynamic: min
ifeq ($(OS),OSX)
g++ -dynamiclib -o $(LIBDIR)/$(DLIBFILE_MIN) $(OBJDIR)/humlib.o
else
g++ -shared -fPIC -o $(LIBDIR)/$(DLIBFILE_MIN) $(OBJDIR)/humlib.o
endif
library: minlibrary
minlib: minlibrary
minlibrary: makedirs min humlib.o
@-rm -f $(LIBDIR)/$(LIBFILE_MIN)
@$(AR) r $(LIBDIR)/$(LIBFILE_MIN) $(OBJDIR)/humlib.o
@$(RANLIB) $(LIBDIR)/$(LIBFILE_MIN)
# @$(COMPILER) -dynamiclib -o $(LIBDIR)/$(DYLIBFILE) $(OBJDIR)/humlib.o $(OBJDIR)/pugixml.o
lib: makedirs $(OBJS)
@-rm -f $(LIBDIR)/$(LIBFILE)
@$(AR) r $(LIBDIR)/$(LIBFILE) $(addprefix $(OBJDIR)/, $(OBJS))
@$(RANLIB) $(LIBDIR)/$(LIBFILE)
cli: tools
tool: tools
tools:
@$(MAKE) -f Makefile.programs
min:
bin/makehumlib
clean:
@echo Erasing object files...
@-rm -f $(OBJDIR)/*.o
@echo Erasing obj directory...
@-rmdir $(OBJDIR)
superclean: clean
-rm -rf $(LIBDIR)
-rm -f $(BINDIR)/test*
makedirs:
@-mkdir -p $(OBJDIR)
@-mkdir -p $(LIBDIR)
%:
@echo 'if [ "$<" == "" ]; then $(MAKE) -f Makefile.programs $@; fi' | bash -s
pugixml.o: pugixml.cpp
@echo [CC] $@
@$(COMPILER) $(PREFLAGS) -o $(OBJDIR)/$(notdir $@) $(POSTFLAGS) $<
###########################################################################
# #
# defining an explicit rule for object file dependencies #
# #
%.o : %.cpp min
@echo [CC] $@
@$(COMPILER) $(PREFLAGS) -o $(OBJDIR)/$(notdir $@) $(POSTFLAGS) $<
# #
###########################################################################
###########################################################################
# #
# Dependencies -- generated with the following command in #
# the src directory (in bash shell): #
# #
# for i in src/*.cpp
# do
# cc -std=c++11 -Iinclude -MM $i | sed 's/include\///g; s/src\///g'
# echo ""
# done
#
Convert-kern.o: Convert-kern.cpp Convert.h HumNum.h \
HumdrumToken.h HumAddress.h HumHash.h
Convert-math.o: Convert-math.cpp Convert.h HumNum.h \
HumdrumToken.h HumAddress.h HumHash.h
Convert-pitch.o: Convert-pitch.cpp Convert.h HumNum.h \
HumdrumToken.h HumAddress.h HumHash.h
Convert-rhythm.o: Convert-rhythm.cpp Convert.h \
HumNum.h HumdrumToken.h HumAddress.h \
HumHash.h
Convert-string.o: Convert-string.cpp Convert.h \
HumNum.h HumdrumToken.h HumAddress.h \
HumHash.h HumRegex.h
GridMeasure.o: GridMeasure.cpp HumGrid.h \
GridMeasure.h GridCommon.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
GridSlice.h MxmlPart.h MxmlMeasure.h \
GridPart.h \
GridStaff.h GridSide.h GridVoice.h
GridPart.o: GridPart.cpp GridPart.h GridStaff.h \
GridCommon.h GridSide.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
GridVoice.h
GridSide.o: GridSide.cpp HumGrid.h GridMeasure.h \
GridCommon.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
GridSlice.h MxmlPart.h MxmlMeasure.h \
GridPart.h \
GridStaff.h GridSide.h GridVoice.h
GridSlice.o: GridSlice.cpp HumGrid.h GridMeasure.h \
GridCommon.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
GridSlice.h MxmlPart.h MxmlMeasure.h \
GridPart.h \
GridStaff.h GridSide.h GridVoice.h
GridStaff.o: GridStaff.cpp HumGrid.h GridMeasure.h \
GridCommon.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
GridSlice.h MxmlPart.h MxmlMeasure.h \
GridPart.h \
GridStaff.h GridSide.h GridVoice.h
GridVoice.o: GridVoice.cpp GridVoice.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h
HumAddress.o: HumAddress.cpp HumAddress.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumHash.h
HumGrid.o: HumGrid.cpp HumGrid.h GridMeasure.h \
GridCommon.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
GridSlice.h MxmlPart.h MxmlMeasure.h \
GridPart.h \
GridStaff.h GridSide.h GridVoice.h \
Convert.h
HumHash.o: HumHash.cpp HumHash.h HumNum.h \
Convert.h HumdrumToken.h HumAddress.h
HumInstrument.o: HumInstrument.cpp HumInstrument.h
HumNum.o: HumNum.cpp HumNum.h
HumRegex.o: HumRegex.cpp HumRegex.h
HumTool.o: HumTool.cpp HumTool.h Options.h
HumdrumFile.o: HumdrumFile.cpp HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
HumdrumFileBase-net.o: HumdrumFileBase-net.cpp \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
HumdrumFileBase.o: HumdrumFileBase.cpp HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumAddress.h HumHash.h Convert.h \
HumRegex.h
HumdrumFileContent-accidental.o: HumdrumFileContent-accidental.cpp \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
HumdrumFileContent-metlev.o: HumdrumFileContent-metlev.cpp \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
HumdrumFileContent-slur.o: HumdrumFileContent-slur.cpp \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h
HumdrumFileContent-tie.o: HumdrumFileContent-tie.cpp \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h
HumdrumFileContent-timesig.o: HumdrumFileContent-timesig.cpp \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
HumdrumFileContent.o: HumdrumFileContent.cpp \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h
HumdrumFileStream.o: HumdrumFileStream.cpp \
HumdrumFileStream.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Options.h HumRegex.h
HumdrumFileStructure.o: HumdrumFileStructure.cpp \
HumdrumFileStructure.h HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumAddress.h HumHash.h Convert.h
HumdrumLine.o: HumdrumLine.cpp HumdrumLine.h \
HumdrumToken.h HumNum.h HumAddress.h \
HumHash.h HumdrumFile.h HumdrumFileContent.h \
HumdrumFileStructure.h HumdrumFileBase.h \
Convert.h
HumdrumToken.o: HumdrumToken.cpp HumAddress.h \
HumdrumToken.h HumNum.h HumHash.h \
HumdrumLine.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h Convert.h
MxmlEvent.o: MxmlEvent.cpp MxmlEvent.h GridCommon.h \
HumNum.h MxmlMeasure.h
MxmlMeasure.o: MxmlMeasure.cpp MxmlEvent.h \
GridCommon.h HumNum.h \
MxmlMeasure.h MxmlPart.h
MxmlPart.o: MxmlPart.cpp MxmlMeasure.h GridCommon.h \
HumNum.h MxmlPart.h
NoteCell.o: NoteCell.cpp NoteCell.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
NoteGrid.h Convert.h
NoteGrid.o: NoteGrid.cpp NoteGrid.h NoteCell.h \
HumdrumFile.h HumdrumFileContent.h \
HumdrumFileStructure.h HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumAddress.h HumHash.h HumRegex.h
Options.o: Options.cpp Options.h
humlib.o: humlib.cpp humlib.h
pugixml.o: pugixml.cpp
tool-autobeam.o: tool-autobeam.cpp tool-autobeam.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h
tool-autostem.o: tool-autostem.cpp tool-autostem.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
HumRegex.h Convert.h
tool-cint.o: tool-cint.cpp tool-cint.h HumTool.h \
Options.h HumdrumFile.h HumdrumFileContent.h \
HumdrumFileStructure.h HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumAddress.h HumHash.h NoteGrid.h \
NoteCell.h HumRegex.h Convert.h
tool-dissonant.o: tool-dissonant.cpp tool-dissonant.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
NoteGrid.h NoteCell.h Convert.h \
HumRegex.h
tool-esac2hum.o: tool-esac2hum.cpp tool-esac2hum.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
tool-extract.o: tool-extract.cpp tool-extract.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
HumRegex.h
tool-filter.o: tool-filter.cpp tool-filter.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
tool-autobeam.h tool-autostem.h tool-cint.h \
NoteGrid.h NoteCell.h HumRegex.h \
tool-dissonant.h tool-extract.h tool-recip.h \
tool-satb2gs.h tool-metlev.h tool-myank.h \
tool-transpose.h
tool-metlev.o: tool-metlev.cpp tool-metlev.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h
tool-musicxml2hum.o: tool-musicxml2hum.cpp \
tool-musicxml2hum.h Options.h HumTool.h \
MxmlPart.h MxmlMeasure.h GridCommon.h HumNum.h \
MxmlEvent.h HumGrid.h GridMeasure.h \
HumdrumFile.h HumdrumFileContent.h \
HumdrumFileStructure.h HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumAddress.h \
HumHash.h GridSlice.h GridPart.h \
GridStaff.h GridSide.h GridVoice.h
tool-myank.o: tool-myank.cpp tool-myank.h HumTool.h \
Options.h HumdrumFile.h HumdrumFileContent.h \
HumdrumFileStructure.h HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumAddress.h HumHash.h HumRegex.h
tool-recip.o: tool-recip.cpp tool-recip.h HumTool.h \
Options.h HumdrumFile.h HumdrumFileContent.h \
HumdrumFileStructure.h HumdrumFileBase.h \
HumdrumLine.h HumdrumToken.h HumNum.h \
HumAddress.h HumHash.h Convert.h \
HumRegex.h
tool-satb2gs.o: tool-satb2gs.cpp tool-satb2gs.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
HumRegex.h Convert.h
tool-transpose.o: tool-transpose.cpp tool-transpose.h \
HumTool.h Options.h HumdrumFile.h \
HumdrumFileContent.h HumdrumFileStructure.h \
HumdrumFileBase.h HumdrumLine.h HumdrumToken.h \
HumNum.h HumAddress.h HumHash.h \
Convert.h HumRegex.h