# # project LilyPond -- the musical typesetter # title generic variables # file make/Variables.make # abstract # # do not change this file for site-wide extensions; please use # make/out/Site.make; # Any change in files in this directory (make/) would be distributed. # # Copyright (c) 1997 by # Jan Nieuwenhuizen # Han-Wen Nienhuys # toplevel version info, might be handy? # include ./$(depth)/.version # include ./$(depth)/make/out/Configure_variables.make ifeq (0,${MAKELEVEL}) MAKE:=$(MAKE) --no-builtin-rules endif # directory names: # outdir = out lily_bindir = ./$(depth)/bin distdir = ./$(depth)/$(DIST_NAME) module-distdir = ./$(depth)/$(MODULE_DIST_NAME) depdir = $(outdir) flowerout = ./$(depth)/flower/$(outdir) libout = ./$(depth)/lib/$(outdir) lilyout = ./$(depth)/lily/$(outdir) mi2muout = ./$(depth)/mi2mu/$(outdir) makeout = ./$(depth)/make/$(outdir) doc-dir = ./$(depth)/Documentation flower-dir = ./$(depth)/flower lib-dir = ./$(depth)/lib lily-dir = ./$(depth)/lily mi2mu-dir = ./$(depth)/mi2mu make-dir = ./$(depth)/make include-lib = ./$(depth)/lib/include include-flower = ./$(depth)/flower/include # rpm-sources = ${HOME}/rpms/SOURCES # # user settings: # include ./$(depth)/make/User.make # # # need to be defined in local Makefiles: # build = ./$(depth)/lily/$(outdir)/.build ######## UGR! BUILD = $(shell cat $(build)) INCREASE_BUILD = echo `expr \`cat $(build)\` + 1` > .b; mv .b $(build) # # the version: # VERSION=$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL)$(MY_PATCH_LEVEL) TOPLEVEL_VERSION=$(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL)$(TOPLEVEL_MY_PATCH_LEVEL) # # module and top level dist: # # fix naming, use TOPLEVEL_ prefix _or_ MODULE? MODULE_DIST_NAME = $(MODULE_NAME)-$(VERSION) DIST_NAME = lilypond-$(TOPLEVEL_VERSION) # # list of object files: # SOURCE_FILES = $(CCFILES) $(EXTRA_SOURCE_FILES) OFILEC = $(SOURCE_FILES:.c=.o) OFILECC = $(OFILEC:.cc=.o) OFILEL = $(OFILECC:.l=.o) OFILEY = $(OFILEL:.y=.o) OFILES = $(addprefix $(outdir)/,$(OFILEY)) # # dummydeps # DUMMYDEPS=\ $(flowerout)/dummy.dep\ $(libout)/dummy.dep\ $(lilyout)/dummy.dep\ $(mi2muout)/dummy.dep\ # # clean file lists: # ERROR_LOG = 2> /dev/null SILENT_LOG = 2>&1 > /dev/null allexe = $(lily_bindir)/lilypond $(lily_bindir)/mi2mu date = $(shell date +%x) allhh := $(shell $(FIND) ./ -name "*.hh" $(ERROR_LOG)) allcc := $(shell $(FIND) ./ -name "*.cc" $(ERROR_LOG)) allobs := $(shell $(FIND) ./ $(outdir) -name "*.o" $(ERROR_LOG)) alldeps := $(shell $(FIND) ./ $(outdir) -name "*.dep" $(ERROR_LOG)) # version stuff: # lily-version = $(lilyout)/version.hh flower-version = $(flowerout)/version.hh mi2mu-version = $(mi2muout)/version.hh # # custom libraries: # LIBFLOWER = $(depth)/flower/$(outdir)/$(LIB_PREFIX)flower$(LIB_SUFFIX) LIBLILY = $(depth)/lib/$(outdir)/$(LIB_PREFIX)lily$(LIB_SUFFIX) # # compile and link options: # ARFLAGS = ru CFLAGS = $(DEFINES) $(INCLUDES) $(USER_CFLAGS) $(EXTRA_CFLAGS) # added two warnings that are treated by cygwin32's gcc 2.7.2 as errors. # huh, but still, no warnings even provoced with linux's gcc 2.7.2.1? # -pipe makes it go faster, but is not supported on all platforms. EXTRA_CXXFLAGS= -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversion CXXFLAGS = $(CFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS) $(MODULE_CXXFLAGS) INCLUDES = -Iinclude -I$(outdir) -I$(include-lib) -I$(libout) -I$(include-flower) -I$(flowerout) CXX_OUTPUT_OPTION = $< -o $@ LDFLAGS = $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) -L$(depth)/lib/out -L$(depth)/flower/out LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lg++ # need lg++ for win32, really! # # librarian: # AR = ar AR_COMMAND = $(AR) $(ARFLAGS) $@ # RANLIB_COMMAND=$(RANLIB) $@ # compiler: # DO_CXX_COMPILE=$(DODEP)\ $(CXX) -c $(CXXFLAGS) $(CXX_OUTPUT_OPTION) # "CC = $(CC)" # "CXX = $(CXX)" # # linker: # LD = $(CXX) LD_COMMAND = $(LD) $(LDFLAGS) -o $@ # # dependencies: # depfile = ./$(depdir)/$(subst .o,.dep,$(notdir $@)) DODEP=rm -f $(depfile); DEPENDENCIES_OUTPUT="$(depfile) $(outdir)/$(notdir $@)" # # utils: # #FLEX = flex #BISON = bison # # generic target names: # EXECUTABLE = $(NAME)$(EXE) LIB_PREFIX = lib ifndef LIB_SUFFIX LIB_SUFFIX = .a endif LIBRARY = $(LIB_PREFIX)$(NAME)$(LIB_SUFFIX) # #replace to do stripping of certain objects STRIPDEBUG=true DISTFILES=$(EXTRA_DISTFILES) Makefile $(ALL_SOURCES) DOCDIR=$(depth)/$(outdir) # .hh should be first. Don't know why # take some trouble to vauto ignore sources and obsolete stuff. progdocs=$(shell find ./ -name '*.hh' |egrep -v 'obsolete/|out/') $(shell find -name '*.cc'|egrep -v 'out/|obsolete/') pod2html=pod2html pod2groff=pod2man --center="LilyPond documentation" --section="0"\ --release="LilyPond $(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL)" $< > $@ STRIP=strip --strip-debug ifdef stablecc STABLEOBS=$(addprefix $(outdir)/,$(stablecc:.cc=.o)) endif # substitute $(STRIP) if you want stripping DO_STRIP=true