Added support for building with OBJDIR

This commit is contained in:
Pierre Pronchery 2014-11-13 01:18:42 +01:00
parent 2193ed5704
commit d48c55558c
6 changed files with 44 additions and 28 deletions

View File

@ -3,7 +3,8 @@ VERSION = 0.0.0
SUBDIRS = include src tools SUBDIRS = include src tools
RM = rm -f RM = rm -f
LN = ln -f LN = ln -f
TAR = tar -czvf TAR = tar
MKDIR = mkdir -m 0755 -p
all: subdirs all: subdirs
@ -20,7 +21,7 @@ distclean:
dist: dist:
$(RM) -r -- $(PACKAGE)-$(VERSION) $(RM) -r -- $(PACKAGE)-$(VERSION)
$(LN) -s -- . $(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/GToolkit.h \
$(PACKAGE)-$(VERSION)/include/Makefile \ $(PACKAGE)-$(VERSION)/include/Makefile \
$(PACKAGE)-$(VERSION)/include/project.conf \ $(PACKAGE)-$(VERSION)/include/project.conf \
@ -42,10 +43,21 @@ dist:
$(PACKAGE)-$(VERSION)/project.conf $(PACKAGE)-$(VERSION)/project.conf
$(RM) -- $(PACKAGE)-$(VERSION) $(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: install:
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) install) || exit; done @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) install) || exit; done
uninstall: uninstall:
@for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) uninstall) || exit; done @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

View File

@ -1,3 +1,4 @@
OBJDIR =
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
RM = rm -f RM = rm -f

View File

@ -1,4 +1,5 @@
SUBDIRS = GToolkit SUBDIRS = GToolkit
OBJDIR =
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
RM = rm -f RM = rm -f

View File

@ -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 PREFIX = /usr/local
DESTDIR = DESTDIR =
LIBDIR = $(PREFIX)/lib LIBDIR = $(PREFIX)/lib
@ -18,27 +19,27 @@ INSTALL = install
all: $(TARGETS) 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_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
libGToolkit_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs gl` libGToolkit_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs gl`
libGToolkit.a: $(libGToolkit_OBJS) $(OBJDIR)libGToolkit.a: $(libGToolkit_OBJS)
$(AR) -rc libGToolkit.a $(libGToolkit_OBJS) $(AR) -rc $(OBJDIR)libGToolkit.a $(libGToolkit_OBJS)
$(RANLIB) libGToolkit.a $(RANLIB) $(OBJDIR)libGToolkit.a
libGToolkit.so.0.0 libGToolkit.so.0 libGToolkit.so: $(libGToolkit_OBJS) $(OBJDIR)libGToolkit.so.0.0 $(OBJDIR)libGToolkit.so.0 $(OBJDIR)libGToolkit.so: $(libGToolkit_OBJS)
$(CCSHARED) -o libGToolkit.so.0.0 -Wl,-soname,libGToolkit.so.0 $(libGToolkit_OBJS) $(libGToolkit_LDFLAGS) $(CCSHARED) -o $(OBJDIR)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 $(OBJDIR)libGToolkit.so.0
$(LN) -s -- libGToolkit.so.0.0 libGToolkit.so $(LN) -s -- libGToolkit.so.0.0 $(OBJDIR)libGToolkit.so
common.o: common.c $(OBJDIR)common.o: common.c
$(CC) $(libGToolkit_CFLAGS) -c common.c $(CC) $(libGToolkit_CFLAGS) -o $(OBJDIR)common.o -c common.c
gwindow.o: gwindow.c $(OBJDIR)gwindow.o: gwindow.c
$(CC) $(libGToolkit_CFLAGS) -c gwindow.c $(CC) $(libGToolkit_CFLAGS) -o $(OBJDIR)gwindow.o -c gwindow.c
gtoolkit.o: gtoolkit.c $(OBJDIR)gtoolkit.o: gtoolkit.c
$(CC) $(libGToolkit_CFLAGS) -c gtoolkit.c $(CC) $(libGToolkit_CFLAGS) -o $(OBJDIR)gtoolkit.o -c gtoolkit.c
clean: clean:
$(RM) -- $(libGToolkit_OBJS) $(RM) -- $(libGToolkit_OBJS)
@ -48,8 +49,8 @@ distclean: clean
install: $(TARGETS) install: $(TARGETS)
$(MKDIR) $(DESTDIR)$(PREFIX)/lib $(MKDIR) $(DESTDIR)$(PREFIX)/lib
$(INSTALL) -m 0644 libGToolkit.a $(DESTDIR)$(PREFIX)/lib/libGToolkit.a $(INSTALL) -m 0644 $(OBJDIR)libGToolkit.a $(DESTDIR)$(PREFIX)/lib/libGToolkit.a
$(INSTALL) -m 0755 libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so.0.0 $(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.0
$(LN) -s -- libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so $(LN) -s -- libGToolkit.so.0.0 $(DESTDIR)$(PREFIX)/lib/libGToolkit.so

View File

@ -1,4 +1,5 @@
TARGETS = test TARGETS = $(OBJDIR)test
OBJDIR =
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
BINDIR = $(PREFIX)/bin BINDIR = $(PREFIX)/bin
@ -16,15 +17,15 @@ INSTALL = install
all: $(TARGETS) all: $(TARGETS)
test_OBJS = test.o test_OBJS = $(OBJDIR)test.o
test_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) 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) $(OBJDIR)test: $(test_OBJS)
$(CC) -o test $(test_OBJS) $(test_LDFLAGS) $(CC) -o $(OBJDIR)test $(test_OBJS) $(test_LDFLAGS)
test.o: test.c ../include/GToolkit.h $(OBJDIR)test.o: test.c ../include/GToolkit.h
$(CC) $(test_CFLAGS) -c test.c $(CC) $(test_CFLAGS) -o $(OBJDIR)test.o -c test.c
clean: clean:
$(RM) -- $(test_OBJS) $(RM) -- $(test_OBJS)

View File

@ -7,7 +7,7 @@ dist=Makefile
[test] [test]
type=binary type=binary
sources=test.c 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] [test.c]
depends=../include/GToolkit.h depends=../include/GToolkit.h