diff --git a/Makefile b/Makefile index 5219461..0cbcc26 100644 --- a/Makefile +++ b/Makefile @@ -3,13 +3,18 @@ VERSION = 0.0.2 SUBDIRS = data src tools RM = rm -f LN = ln -f -TAR = tar -czvf +TAR = tar +MKDIR = mkdir -m 0755 -p all: subdirs subdirs: - @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE)) || exit; done + @for i in $(SUBDIRS); do (cd "$$i" && \ + if [ -n "$(OBJDIR)" ]; then \ + ([ -d "$(OBJDIR)$$i" ] || $(MKDIR) -- "$(OBJDIR)$$i") && \ + $(MAKE) OBJDIR="$(OBJDIR)$$i/"; \ + else $(MAKE); fi) || exit; done clean: @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) clean) || exit; done @@ -18,9 +23,9 @@ distclean: @for i in $(SUBDIRS); do (cd "$$i" && $(MAKE) distclean) || exit; done dist: - $(RM) -r -- $(PACKAGE)-$(VERSION) - $(LN) -s -- . $(PACKAGE)-$(VERSION) - @$(TAR) $(PACKAGE)-$(VERSION).tar.gz -- \ + $(RM) -r -- $(OBJDIR)$(PACKAGE)-$(VERSION) + $(LN) -s -- "$$PWD" $(OBJDIR)$(PACKAGE)-$(VERSION) + @cd $(OBJDIR). && $(TAR) -czvf $(OBJDIR)$(PACKAGE)-$(VERSION).tar.gz -- \ $(PACKAGE)-$(VERSION)/data/Makefile \ $(PACKAGE)-$(VERSION)/data/Probe.interface \ $(PACKAGE)-$(VERSION)/data/project.conf \ @@ -40,7 +45,18 @@ dist: $(PACKAGE)-$(VERSION)/COPYING \ $(PACKAGE)-$(VERSION)/config.h \ $(PACKAGE)-$(VERSION)/project.conf - $(RM) -- $(PACKAGE)-$(VERSION) + $(RM) -- $(OBJDIR)$(PACKAGE)-$(VERSION) + +distcheck: dist + $(TAR) -xzvf $(OBJDIR)$(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 @@ -48,4 +64,4 @@ install: 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/data/Makefile b/data/Makefile index 428868e..8349f1c 100644 --- a/data/Makefile +++ b/data/Makefile @@ -1,3 +1,4 @@ +OBJDIR = PREFIX = /usr/local DESTDIR = MKDIR = mkdir -m 0755 -p diff --git a/src/Makefile b/src/Makefile index 4dfb9c8..ba131de 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,4 +1,5 @@ -TARGETS = ../data/Probe.h Probe DaMon +TARGETS = $(OBJDIR)../data/Probe.h $(OBJDIR)Probe $(OBJDIR)DaMon +OBJDIR = PREFIX = /usr/local DESTDIR = BINDIR = $(PREFIX)/bin @@ -18,28 +19,28 @@ INSTALL = install all: $(TARGETS) -../data/Probe.h: ../data/Probe.interface - ./appbroker.sh -P "$(PREFIX)" -- "../data/Probe.h" +$(OBJDIR)../data/Probe.h: ../data/Probe.interface + ./appbroker.sh -P "$(PREFIX)" -- "$(OBJDIR)../data/Probe.h" -Probe_OBJS = probe.o +Probe_OBJS = $(OBJDIR)probe.o Probe_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) Probe_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -Wl,--export-dynamic -Probe: $(Probe_OBJS) - $(CC) -o Probe $(Probe_OBJS) $(Probe_LDFLAGS) +$(OBJDIR)Probe: $(Probe_OBJS) + $(CC) -o $(OBJDIR)Probe $(Probe_OBJS) $(Probe_LDFLAGS) -DaMon_OBJS = damon.o +DaMon_OBJS = $(OBJDIR)damon.o DaMon_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) DaMon_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) -DaMon: $(DaMon_OBJS) - $(CC) -o DaMon $(DaMon_OBJS) $(DaMon_LDFLAGS) +$(OBJDIR)DaMon: $(DaMon_OBJS) + $(CC) -o $(OBJDIR)DaMon $(DaMon_OBJS) $(DaMon_LDFLAGS) -probe.o: probe.c ../data/Probe.h ../config.h - $(CC) $(Probe_CFLAGS) -c probe.c +$(OBJDIR)probe.o: probe.c ../data/Probe.h ../config.h + $(CC) $(Probe_CFLAGS) -o $(OBJDIR)probe.o -c probe.c -damon.o: damon.c ../config.h - $(CC) $(DaMon_CFLAGS) -c damon.c +$(OBJDIR)damon.o: damon.c ../config.h + $(CC) $(DaMon_CFLAGS) -o $(OBJDIR)damon.o -c damon.c clean: $(RM) -- $(../data/Probe.h_OBJS) $(Probe_OBJS) $(DaMon_OBJS) @@ -50,9 +51,9 @@ distclean: clean install: $(TARGETS) $(MKDIR) $(DESTDIR)$(BINDIR) - $(INSTALL) -m 0755 Probe $(DESTDIR)$(BINDIR)/Probe + $(INSTALL) -m 0755 $(OBJDIR)Probe $(DESTDIR)$(BINDIR)/Probe $(MKDIR) $(DESTDIR)$(BINDIR) - $(INSTALL) -m 0755 DaMon $(DESTDIR)$(BINDIR)/DaMon + $(INSTALL) -m 0755 $(OBJDIR)DaMon $(DESTDIR)$(BINDIR)/DaMon uninstall: $(RM) -- $(DESTDIR)$(BINDIR)/Probe