From d48c55558cd88a9581cd6636e81dbd5e7621e5bc Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Thu, 13 Nov 2014 01:18:42 +0100 Subject: [PATCH] Added support for building with OBJDIR --- Makefile | 18 +++++++++++++++--- include/GToolkit/Makefile | 1 + include/Makefile | 1 + src/Makefile | 35 ++++++++++++++++++----------------- tools/Makefile | 15 ++++++++------- tools/project.conf | 2 +- 6 files changed, 44 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 628bdee..c1f4046 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,8 @@ VERSION = 0.0.0 SUBDIRS = include src tools RM = rm -f LN = ln -f -TAR = tar -czvf +TAR = tar +MKDIR = mkdir -m 0755 -p all: subdirs @@ -20,7 +21,7 @@ distclean: dist: $(RM) -r -- $(PACKAGE)-$(VERSION) $(LN) -s -- . $(PACKAGE)-$(VERSION) - @$(TAR) $(PACKAGE)-$(VERSION).tar.gz -- \ + @$(TAR) -czvf $(PACKAGE)-$(VERSION).tar.gz -- \ $(PACKAGE)-$(VERSION)/include/GToolkit.h \ $(PACKAGE)-$(VERSION)/include/Makefile \ $(PACKAGE)-$(VERSION)/include/project.conf \ @@ -42,10 +43,21 @@ dist: $(PACKAGE)-$(VERSION)/project.conf $(RM) -- $(PACKAGE)-$(VERSION) +distcheck: dist + $(TAR) -xzvf $(PACKAGE)-$(VERSION).tar.gz + $(MKDIR) -- $(PACKAGE)-$(VERSION)/objdir + $(MKDIR) -- $(PACKAGE)-$(VERSION)/destdir + (cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/") + (cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/" DESTDIR="$$PWD/destdir" install) + (cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/" DESTDIR="$$PWD/destdir" uninstall) + (cd "$(PACKAGE)-$(VERSION)" && $(MAKE) OBJDIR="$$PWD/objdir/" distclean) + (cd "$(PACKAGE)-$(VERSION)" && $(MAKE) dist) + $(RM) -r -- $(PACKAGE)-$(VERSION) + install: @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) install) || exit; done uninstall: @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) uninstall) || exit; done -.PHONY: all subdirs clean distclean dist install uninstall +.PHONY: all subdirs clean distclean dist distcheck install uninstall diff --git a/include/GToolkit/Makefile b/include/GToolkit/Makefile index 833b84c..abc426a 100644 --- a/include/GToolkit/Makefile +++ b/include/GToolkit/Makefile @@ -1,3 +1,4 @@ +OBJDIR = PREFIX = /usr/local DESTDIR = RM = rm -f diff --git a/include/Makefile b/include/Makefile index dc77cf0..83f7c77 100644 --- a/include/Makefile +++ b/include/Makefile @@ -1,4 +1,5 @@ SUBDIRS = GToolkit +OBJDIR = PREFIX = /usr/local DESTDIR = RM = rm -f diff --git a/src/Makefile b/src/Makefile index e9b1e11..61e522b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,4 +1,5 @@ -TARGETS = libGToolkit.a libGToolkit.so.0.0 libGToolkit.so.0 libGToolkit.so +TARGETS = $(OBJDIR)libGToolkit.a $(OBJDIR)libGToolkit.so.0.0 $(OBJDIR)libGToolkit.so.0 $(OBJDIR)libGToolkit.so +OBJDIR = PREFIX = /usr/local DESTDIR = LIBDIR = $(PREFIX)/lib @@ -18,27 +19,27 @@ INSTALL = install all: $(TARGETS) -libGToolkit_OBJS = common.o gwindow.o gtoolkit.o +libGToolkit_OBJS = $(OBJDIR)common.o $(OBJDIR)gwindow.o $(OBJDIR)gtoolkit.o libGToolkit_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) libGToolkit_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs gl` -libGToolkit.a: $(libGToolkit_OBJS) - $(AR) -rc libGToolkit.a $(libGToolkit_OBJS) - $(RANLIB) libGToolkit.a +$(OBJDIR)libGToolkit.a: $(libGToolkit_OBJS) + $(AR) -rc $(OBJDIR)libGToolkit.a $(libGToolkit_OBJS) + $(RANLIB) $(OBJDIR)libGToolkit.a -libGToolkit.so.0.0 libGToolkit.so.0 libGToolkit.so: $(libGToolkit_OBJS) - $(CCSHARED) -o libGToolkit.so.0.0 -Wl,-soname,libGToolkit.so.0 $(libGToolkit_OBJS) $(libGToolkit_LDFLAGS) - $(LN) -s -- libGToolkit.so.0.0 libGToolkit.so.0 - $(LN) -s -- libGToolkit.so.0.0 libGToolkit.so +$(OBJDIR)libGToolkit.so.0.0 $(OBJDIR)libGToolkit.so.0 $(OBJDIR)libGToolkit.so: $(libGToolkit_OBJS) + $(CCSHARED) -o $(OBJDIR)libGToolkit.so.0.0 -Wl,-soname,libGToolkit.so.0 $(libGToolkit_OBJS) $(libGToolkit_LDFLAGS) + $(LN) -s -- libGToolkit.so.0.0 $(OBJDIR)libGToolkit.so.0 + $(LN) -s -- libGToolkit.so.0.0 $(OBJDIR)libGToolkit.so -common.o: common.c - $(CC) $(libGToolkit_CFLAGS) -c common.c +$(OBJDIR)common.o: common.c + $(CC) $(libGToolkit_CFLAGS) -o $(OBJDIR)common.o -c common.c -gwindow.o: gwindow.c - $(CC) $(libGToolkit_CFLAGS) -c gwindow.c +$(OBJDIR)gwindow.o: gwindow.c + $(CC) $(libGToolkit_CFLAGS) -o $(OBJDIR)gwindow.o -c gwindow.c -gtoolkit.o: gtoolkit.c - $(CC) $(libGToolkit_CFLAGS) -c gtoolkit.c +$(OBJDIR)gtoolkit.o: gtoolkit.c + $(CC) $(libGToolkit_CFLAGS) -o $(OBJDIR)gtoolkit.o -c gtoolkit.c clean: $(RM) -- $(libGToolkit_OBJS) @@ -48,8 +49,8 @@ distclean: clean install: $(TARGETS) $(MKDIR) $(DESTDIR)$(PREFIX)/lib - $(INSTALL) -m 0644 libGToolkit.a $(DESTDIR)$(PREFIX)/lib/libGToolkit.a - $(INSTALL) -m 0755 libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so.0.0 + $(INSTALL) -m 0644 $(OBJDIR)libGToolkit.a $(DESTDIR)$(PREFIX)/lib/libGToolkit.a + $(INSTALL) -m 0755 $(OBJDIR)libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so.0.0 $(LN) -s -- libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so.0 $(LN) -s -- libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so diff --git a/tools/Makefile b/tools/Makefile index f5222b4..d426ba3 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,4 +1,5 @@ -TARGETS = test +TARGETS = $(OBJDIR)test +OBJDIR = PREFIX = /usr/local DESTDIR = BINDIR = $(PREFIX)/bin @@ -16,15 +17,15 @@ INSTALL = install all: $(TARGETS) -test_OBJS = test.o +test_OBJS = $(OBJDIR)test.o test_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) -test_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L../src -L $(PREFIX)/lib -Wl,-rpath,$(PREFIX)/lib -lGToolkit +test_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -L$(OBJDIR). -L../src -L $(PREFIX)/lib -Wl,-rpath,$(PREFIX)/lib -lGToolkit -test: $(test_OBJS) - $(CC) -o test $(test_OBJS) $(test_LDFLAGS) +$(OBJDIR)test: $(test_OBJS) + $(CC) -o $(OBJDIR)test $(test_OBJS) $(test_LDFLAGS) -test.o: test.c ../include/GToolkit.h - $(CC) $(test_CFLAGS) -c test.c +$(OBJDIR)test.o: test.c ../include/GToolkit.h + $(CC) $(test_CFLAGS) -o $(OBJDIR)test.o -c test.c clean: $(RM) -- $(test_OBJS) diff --git a/tools/project.conf b/tools/project.conf index 8fb0dbe..f158b57 100644 --- a/tools/project.conf +++ b/tools/project.conf @@ -7,7 +7,7 @@ dist=Makefile [test] type=binary sources=test.c -ldflags=-L../src -L $(PREFIX)/lib -Wl,-rpath,$(PREFIX)/lib -lGToolkit +ldflags=-L$(OBJDIR). -L../src -L $(PREFIX)/lib -Wl,-rpath,$(PREFIX)/lib -lGToolkit [test.c] depends=../include/GToolkit.h