# dependency list of executable:
#
-$(EXECUTABLE): $(build) $(OFILES) $(outdir)/version.hh
+$(EXECUTABLE): $(OFILES) $(outdir)/version.hh
$(MAKE) $(MODULE_LIBDEPS)
- $(INCREASE_BUILD)
- $(MAKE) -S $(OFILES) $(SILENT_LOG)
ifdef STABLEOBS
$(DO_STRIP) $(STABLEOBS)
endif
exe: $(EXECUTABLE)
-$(build): $(depth)/VERSION
- echo 0 > $@
# dependency list of library:
#
-LIBRARY = $(outdir)/$(LIB_PREFIX)$(NAME).a
-$(LIBRARY): $(build) $(OFILES)
- $(INCREASE_BUILD)
- $(MAKE) $(OFILES) $(SILENT_LOG)
+$(LIBRARY): $(OFILES)
$(AR_COMMAND) $(OFILES)
$(RANLIB_COMMAND)
-SHAREDLIBRARY=$(outdir)/$(LIB_PREFIX)$(NAME).so
-$(SHAREDLIBRARY): $(build) $(OFILES) $(MODULE_LIBDEPS)
- $(INCREASE_BUILD)
- $(MAKE) $(OFILES) $(SILENT_LOG)
+$(SHAREDLIBRARY): $(OFILES) $(MODULE_LIBDEPS)
$(LD_COMMAND) $(OFILES) -o $@.$(VERSION)
rm -f $@
ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $@.$(MAJOR_VERSION)
lib: $(LIBRARY)
#
+
+make-all-outdirs: make-outdir
+ set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i make-all-outdirs; done
+
+make-outdir:
+ -mkdir $(OUTDIR_NAME)
+
# be careful about deletion.
clean: localclean
- rm -f core
-ifdef EXECUTABLE
- rm -f $(EXECUTABLE)
-endif
-ifdef OFILES
- rm -f $(OFILES)
-endif
-ifdef DEPFILES
- rm -f $(DEPFILES)
+ rm -f $(outdir)/*
+ touch $(outdir)/dummy.dep
+ifdef SUBDIRS
+ set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
endif
+
+distclean: subdir-distclean local-distclean
+
+subdir-distclean:
ifdef SUBDIRS
set -e; for i in $(SUBDIRS); do $(MAKE) -C $$i clean; done
endif
# target help:
#
help:
+ @echo "Makefile for LilyPond $(TOPLEVEL_VERSION)"
@echo "Usage:"
@echo " $(MAKE) ["VARIABLE=value" ...] [target]"
@echo
@echo "targets:"
@echo " all clean config dist distclean doc doc++"
- @echo " exe help lib moduledist TAGS"
+ @echo " exe help lib TAGS"
@echo " dos: xcomplile to dos"
@echo " windows32: native cygnus-gnu compile"
#
# ugh. should generate in out/
dist:
+ rm -rf $(distdir)
-mkdir $(distdir)
$(MAKE) localdist
chmod -R a+r $(distdir)
$(MAKE) localdir=$(localdir)/$$i -C $$i localdist; done
endif
-moduledist:
- -mkdir $(module-distdir)
- $(MAKE) localmoduledist
- (cd $(depth)/$(outdir); $(TAR) cfz $(MODULE_DIST_NAME).tar.gz $(MODULE_DIST_NAME))
- rm -rf $(module-distdir)/
-
-localmoduledist:
- $(LN) $(DISTFILES) $(module-distdir)/$(localdir)
-ifdef SUBDIRS
- set -e; for i in $(SUBDIRS); do mkdir $(module-distdir)/$(localdir)/$$i; done
- set -e; for i in $(SUBDIRS); do $(MAKE) localdir=$(localdir)/$$i -C $$i localmoduledist; done
-endif
TAGS:$(all-tag-sources)
ifdef all-tag-sources
localclean:
+local-distclean:
+
install-strip:
$(MAKE) INSTALL="$(INSTALL) -s" install
-installexe:
- $(INSTALL) -d $(bindir)
- $(INSTALL) -m 755 $(EXECUTABLES) $(bindir)
-
-uninstallexe:
- for a in $(EXECUTABLES); do rm -f $(bindir)/`basename $$a`; done
ifneq ($(DEPFILES),)
include $(DEPFILES)
# toplevel version info, might be handy?
#
-include $(depth)/VERSION
+include $(depth)/make/Toplevel_version.make
ifeq (0,${MAKELEVEL})
# derived names
lily_bindir = $(depth)/bin
distdir = $(depth)/$(outdir)/$(DIST_NAME)
-module-distdir = $(depth)/$(MODULE_DIST_NAME)
depdir = $(outdir)
flowerout = $(buildprefix)/flower/$(OUTDIR_NAME)
rpm-sources = ${HOME}/rpms/SOURCES
#
-#include $(makeout)/Configure_variables.make
+ifndef configuration
+configuration=config
+endif
+
+include $(depth)/$(configuration).make
# user settings:
#
#
#
# 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)
#
FOOBAR =
# the version:
#
-# module and top level dist:
#
# fix naming, use TOPLEVEL_ prefix _or_ MODULE?
-MODULE_DIST_NAME = $(MODULE_NAME)-$(VERSION)
DIST_NAME = lilypond-$(TOPLEVEL_VERSION)
NO_DOOS_DIST = bin flower lib lily make mi2mu out
#
SOURCE_FILES = $(CCFILES) $(EXTRA_SOURCE_FILES)
OFILEC = $(SOURCE_FILES:.c=.o)
OFILECC = $(OFILEC:.cc=.o)
-OFILEL = $(OFILECC:.l=.o)
-OFILEY = $(OFILEL:.y=.o)
+OFILEL = $(OFILECC:.ll=.o)
+OFILEY = $(OFILEL:.yy=.o)
OFILES = $(addprefix $(outdir)/,$(OFILEY))
#
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)
+INCLUDES = -I$(depth) -Iinclude -I$(outdir) -I$(include-lib) -I$(libout) -I$(include-flower) -I$(flowerout)
CXX_OUTPUT_OPTION = $< -o $@
LDFLAGS = $(ILDFLAGS) $(USER_LDFLAGS) $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) -L$(depth)/lib/$(OUTDIR_NAME) -L$(depth)/flower/$(OUTDIR_NAME)
LOADLIBES = $(EXTRA_LIBES) $(MODULE_LIBES) -lstdc++ # need lg++ for win32, really!
LIB_SUFFIX = .a
endif
-LIBRARY = $(LIB_PREFIX)$(NAME)$(LIB_SUFFIX)
+LIBRARY = $(outdir)/$(LIB_PREFIX)$(NAME).a
+SHAREDLIBRARY=$(outdir)/$(LIB_PREFIX)$(NAME).so
#
#replace to do stripping of certain objects