# @configure_input@ # # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. # Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved. # # This file is part of LVM2. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions # of the GNU General Public License v.2. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA SHELL = /bin/sh @SET_MAKE@ CC = @CC@ RANLIB = @RANLIB@ SHELL = /bin/sh INSTALL = @INSTALL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ LCOV = @LCOV@ GENHTML = @GENHTML@ LN_S = @LN_S@ SED = @SED@ LIBS = @LIBS@ DEFS += @DEFS@ CFLAGS += @CFLAGS@ CLDFLAGS += @CLDFLAGS@ LDDEPS += @LDDEPS@ LDFLAGS += @LDFLAGS@ LIB_SUFFIX = @LIB_SUFFIX@ # Setup directory variables prefix = @prefix@ exec_prefix = @exec_prefix@ udev_prefix = @udev_prefix@ bindir = $(DESTDIR)@bindir@ confdir = $(DESTDIR)@CONFDIR@/lvm includedir = $(DESTDIR)@includedir@ libdir = $(DESTDIR)@libdir@ usrlibdir = $(DESTDIR)@usrlibdir@ sbindir = $(DESTDIR)@sbindir@ usrsbindir = $(DESTDIR)@usrsbindir@ infodir = $(DESTDIR)@infodir@ mandir = $(DESTDIR)@mandir@ localedir = $(DESTDIR)@LOCALEDIR@ staticdir = $(DESTDIR)@STATICDIR@ udevdir = $(DESTDIR)@udevdir@ interface = @interface@ interfacebuilddir = $(top_builddir)/libdm/$(interface) # setup misc variables # define the ownership variables for the binaries and man pages OWNER = @OWNER@ GROUP = @GROUP@ # The number of jobs to run, if blank, defaults to the make standard ifndef MAKEFLAGS MAKEFLAGS = @JOBS@ endif .SUFFIXES: .c .d .o .so .a .po .pot .mo .dylib CFLAGS += -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security #CFLAGS += -W -Wconversion -Wpointer-arith -Wredundant-decls -Wbad-function-cast -Wcast-qual #CFLAGS += -pedantic -std=gnu99 CFLAGS += @COPTIMISE_FLAG@ ifeq ("@DEBUG@", "yes") CFLAGS += -g -fno-omit-frame-pointer DEFS += -DDEBUG # memory debugging is not thread-safe yet ifneq ("@DMEVENTD@", "yes") DEFS += -DDEBUG_MEM endif endif ifeq ("@INTL@", "yes") DEFS += -DINTL_PACKAGE=\"@INTL_PACKAGE@\" -DLOCALEDIR=\"@LOCALEDIR@\" endif LDFLAGS += -L$(top_builddir)/libdm -L$(top_builddir)/lib CLDFLAGS += -L$(top_builddir)/libdm -L$(top_builddir)/lib ifeq ("@DMEVENTD@", "yes") LDFLAGS += -L$(top_builddir)/daemons/dmeventd CLDFLAGS += -L$(top_builddir)/daemons/dmeventd endif ifeq ("@DM_COMPAT@", "yes") DEFS += -DDM_COMPAT endif ifeq ("@DM_IOCTLS@", "yes") DEFS += -DDM_IOCTLS endif #DEFS += -DDEBUG_POOL #DEFS += -DBOUNDS_CHECK #CFLAGS += -pg #LDFLAGS += -pg STRIP= #STRIP = -s LVM_VERSION := $(shell cat $(top_srcdir)/VERSION) LIB_VERSION_LVM := $(shell cat $(top_srcdir)/VERSION | \ awk -F '.' '{printf "%s.%s",$$1,$$2}') LIB_VERSION_DM := $(shell cat $(top_srcdir)/VERSION_DM | \ awk -F '.' '{printf "%s.%s",$$1,$$2}') LIB_VERSION_APP := $(shell cat $(top_srcdir)/VERSION | \ awk -F '[(). ]' '{printf "%s.%s",$$1,$$4}') INCLUDES += -I. -I$(top_builddir)/include INC_LNS = $(top_builddir)/include/.symlinks_created DEPS = $(top_builddir)/make.tmpl $(top_srcdir)/VERSION \ $(top_builddir)/Makefile $(INC_LNS) OBJECTS = $(SOURCES:%.c=%.o) POTFILES = $(SOURCES:%.c=%.pot) .PHONY: all install install_cluster pofile distclean clean cflow device-mapper .PHONY: install_device-mapper install_lvm2 .PHONY: $(SUBDIRS) $(SUBDIRS.install) $(SUBDIRS.clean) $(SUBDIRS.distclean) .PHONY: $(SUBDIRS.pofile) $(SUBDIRS.install_cluster) $(SUBDIRS.cflow) .PHONY: $(SUBDIRS.device-mapper) $(SUBDIRS.install-device-mapper) SUBDIRS.device-mapper := $(SUBDIRS:=.device-mapper) SUBDIRS.install := $(SUBDIRS:=.install) SUBDIRS.install_cluster := $(SUBDIRS:=.install_cluster) SUBDIRS.install_device-mapper := $(SUBDIRS:=.install_device-mapper) SUBDIRS.install_lvm2 := $(SUBDIRS:=.install_lvm2) SUBDIRS.pofile := $(SUBDIRS:=.pofile) SUBDIRS.cflow := $(SUBDIRS:=.cflow) SUBDIRS.clean := $(SUBDIRS:=.clean) SUBDIRS.distclean := $(SUBDIRS:=.distclean) TARGETS += $(LIB_SHARED) $(LIB_STATIC) $(VERSIONED_SHLIB) all: $(SUBDIRS) $(TARGETS) install: all $(SUBDIRS.install) install_cluster: all $(SUBDIRS.install_cluster) install_device-mapper: $(SUBDIRS.install_device-mapper) install_lvm2: $(SUBDIRS.install_lvm2) $(SUBDIRS): $(SUBDIRS.device-mapper) $(MAKE) -C $@ $(SUBDIRS.device-mapper): $(MAKE) -C $(@:.device-mapper=) device-mapper $(SUBDIRS.install): $(SUBDIRS) $(MAKE) -C $(@:.install=) install $(SUBDIRS.install_cluster): $(SUBDIRS) $(MAKE) -C $(@:.install_cluster=) install_cluster $(SUBDIRS.install_device-mapper): device-mapper $(MAKE) -C $(@:.install_device-mapper=) install_device-mapper $(SUBDIRS.install_lvm2): $(SUBDIRS) $(MAKE) -C $(@:.install_lvm2=) install_lvm2 $(SUBDIRS.clean): -$(MAKE) -C $(@:.clean=) clean $(SUBDIRS.distclean): -$(MAKE) -C $(@:.distclean=) distclean ifeq ("@INTL@", "yes") pofile: $(SUBDIRS.pofile) $(POTFILES) $(SUBDIRS.pofile): $(MAKE) -C $(@:.pofile=) pofile endif ifneq ("@CFLOW_CMD@", "") cflow: $(SUBDIRS.cflow) $(SUBDIRS.cflow): $(MAKE) -C $(@:.cflow=) cflow endif $(TARGETS): $(OBJECTS) %.o: %.c $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $< -o $@ %.pot: %.c Makefile $(CC) -E $(INCLUDES) -include $(top_srcdir)/include/pogen.h \ $(DEFS) $(CFLAGS) $< > $@ %.so: %.o $(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(CLDFLAGS) $< $(LIBS) -o $@ ifeq ("@LIB_SUFFIX@","so") $(LIB_SHARED): $(OBJECTS) $(LDDEPS) $(CC) -shared -Wl,-soname,$(notdir $@).$(LIB_VERSION) \ $(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@ endif ifeq ("@LIB_SUFFIX@","dylib") $(LIB_SHARED): $(OBJECTS) $(LDDEPS) $(CC) -dynamiclib -dylib_current_version,$(LIB_VERSION) \ $(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@ endif %.so: %.a $(CC) -shared -Wl,-soname,$(notdir $@).$(LIB_VERSION) \ $(CFLAGS) $(CLDFLAGS) $(LIBS) -o $@ \ @CLDWHOLEARCHIVE@ $< @CLDNOWHOLEARCHIVE@ $(LIB_STATIC): $(OBJECTS) $(RM) $@ $(AR) rs $@ $(OBJECTS) %.d: %.c $(MKDIR_P) $(dir $@); \ set -e; \ FILE=`echo $@ | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \ DEPS=`echo $(DEPS) | sed -e 's/\\//\\\\\\//g'`; \ $(CC) -MM $(INCLUDES) $(DEFS) $(CFLAGS) -o $@ $<; \ sed -i "s/\(.*\)\.o[ :]*/$$FILE.o $$FILE.d $$FILE.pot: $$DEPS /g" $@; \ [ -s $@ ] || $(RM) $@ %.mo: %.po $(MSGFMT) -o $@ $< clean: $(SUBDIRS.clean) $(RM) $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \ $(SOURCES2:%.c=%.d) $(SOURCES:%.c=%.pot) $(SOURCES:%.c=%.gcno) \ $(SOURCES:%.c=%.gcda) $(LDDEPS) distclean: $(SUBDIRS.distclean) $(RM) -rf $(DISTCLEAN_DIRS) $(RM) $(DISTCLEAN_TARGETS) \ $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \ $(SOURCES2:%.c=%.d) $(SOURCES:%.c=%.pot) $(SOURCES:%.c=%.gcno) \ $(SOURCES:%.c=%.gcda) $(LDDEPS) \ config.cache config.log config.status \ Makefile make.tmpl core \ lvm-version.h .export.sym: .exported_symbols set -e; (echo "Base {"; echo " global:"; \ sed "s/^/ /;s/$$/;/" < $<; \ echo " local:"; echo " *;"; echo "};") > $@ ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),distclean) ifdef SOURCES -include $(SOURCES:.c=.d) endif ifdef SOURCES2 -include $(SOURCES2:.c=.d) endif endif endif