From a3fb855ecfd24ad4e9ffdb59de11cd69d3799dee Mon Sep 17 00:00:00 2001 From: Martin Read Date: Wed, 6 Apr 2011 19:19:51 +0100 Subject: [PATCH] Makefile changes --- Makefile | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 0439a29..21ef6b0 100644 --- a/Makefile +++ b/Makefile @@ -6,16 +6,33 @@ include version.mk OBJ_BUILDDIR=obj LIB_BUILDDIR=lib -# LIB_REALNAME = exact name of the library -# LIB_SONAME = name of the library from the linker's point of view -# LIB_SHORTNAME = unversioned name of the library +# By default, install as current user and group. +LIBMORMEGIL_OWNERSHIP= +LIBMORMEGIL_DATA_OWNERSHIP= +# For direct system-wide installation, comment previous line and uncomment this: +# LIBMORMEGIL_OWNERSHIP=-o root -g bin +# LIBMORMEGIL_DATA_OWNERSHIP=-o root -g bin + +# LIB_REALNAME is exact name of the library +# LIB_SONAME is majorversioned name of the library +# LIB_SHORTNAME is unversioned name of the library LIB_REALNAME=libmormegil.so.$(MAJOR_VER).$(MINOR_VER).$(COMPAT_DEPTH) LIB_SONAME=libmormegil.so.$(MAJOR_VER) LIB_SHORTNAME=libmormegil.so LIBMORMEGIL_BUILT=$(LIB_BUILDDIR)/$(LIB_REALNAME) -LIBOBJS=$(OBJ_BUILDDIR)/dice.o $(OBJ_BUILDDIR)/stlprintf.o $(OBJ_BUILDDIR)/stlfgets.o $(OBJ_BUILDDIR)/points.o -LIBS=$(LIB_BUILDDIR)/$(LIB_REALNAME) -MANPAGES=man/dice.3 +LIBOBJS=$(OBJ_BUILDDIR)/stlprintf.o $(OBJ_BUILDDIR)/stlfgets.o $(OBJ_BUILDDIR)/points.o $(OBJ_BUILDDIR)/Appcfg.o + +LIB_REALNAME_C=libmormegil_c.so.$(MAJOR_VER).$(MINOR_VER).$(COMPAT_DEPTH) +LIB_SONAME_C=libmormegil_c.so.$(MAJOR_VER) +LIB_SHORTNAME_C=libmormegil_c.so +LIBMORMEGIL_BUILT_C=$(LIB_BUILDDIR)/$(LIB_REALNAME_C) +LIBOBJS_C=$(OBJ_BUILDDIR)/dice.o + +LIBS=$(LIB_BUILDDIR)/$(LIB_REALNAME) $(LIB_BUILDDIR)/$(LIB_REALNAME_C) +ALL_LIBOBJS=$(LIBOBJS) $(LIBOBJS_C) + +MANPAGES=man/dice.3 man/libmormegil.3 man/libmormegil::Appcfg.3 man/libmormegil::Coord.3 man/libmormegil::S20prng.3 man/libmormegil::abs.3 man/libmormegil::divup.3 man/libmormegil::isotime.3 man/libmormegil::serialize.3 man/libmormegil::stlfgets.3 man/libmormegil::stlprintf.3 + SRCARCH_NAME=libmormegil-$(MAJOR_VER).$(MINOR_VER).$(COMPAT_DEPTH) # GCC flags @@ -43,20 +60,29 @@ $(OBJ_BUILDDIR)/%.o: src/%.cc $(LIBMORMEGIL_BUILT): $(LIBOBJS) gcc $(LINKSTEP_FLAGS) $^ -o $@ +$(LIBMORMEGIL_BUILT_C): $(LIBOBJS_C) + gcc $(LINKSTEP_FLAGS) $^ -o $@ + clean: - -rm -f $(LIBS) $(LIBOBJS) + -rm -f $(LIBS) $(ALL_LIBOBJS) -rm -rf $(SRCARCH_NAME) $(SRCARCH_NAME).tar.gz -install: install-headers install-libs +install: install-headers install-libs install-docs -install-libs: - cp $(LIBMORMEGIL_BUILT) $(DESTDIR)$(libdir)/$(LIB_REALNAME) +install-libs: $(LIBMORMEGIL_BUILT) $(LIBMORMEGIL_BUILT_C) + install -m 0755 $(LIBMORMEGIL_BUILT) $(DESTDIR)$(libdir)/$(LIB_REALNAME) (cd $(DESTDIR)$(libdir) && ln -sf $(LIB_REALNAME) $(LIB_SONAME) && ln -sf $(LIB_SONAME) $(LIB_SHORTNAME) ) + install -m 0755 $(LIBMORMEGIL_BUILT_C) $(DESTDIR)$(libdir)/$(LIB_REALNAME_C) + (cd $(DESTDIR)$(libdir) && ln -sf $(LIB_REALNAME_C) $(LIB_SONAME_C) && ln -sf $(LIB_SONAME_C) $(LIB_SHORTNAME_C) ) + +install-docs: + install -t $(DESTDIR)$(man3dir) -m 0644 $(LIBMORMEGIL_DATA_OWNERSHIP) $(MANPAGES) srcarchive: clean mkdir $(SRCARCH_NAME) cp -R include lib man obj src Makefile version.mk configure $(SRCARCH_NAME) tar cvf $(SRCARCH_NAME).tar.gz $(SRCARCH_NAME) + rm -rf $(SRCARCH_NAME) ifeq ($(oldincludedir),"") install-headers: -- 2.11.0