### with preload-hacks; if not, write to the Free Software Foundation, Inc.,
### 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+srcdir = .
PACKAGE = preload-hacks
-VERSION := $(shell ./auto-version)
+VERSION := $(shell cd $(srcdir) && ./auto-version)
+VPATH = $(srcdir)
.SECONDEXPANSION: #sorry
###--------------------------------------------------------------------------
DESTDIR =
###--------------------------------------------------------------------------
-### Quiet building.
-
-## Verbosity.
-V = 0
-
-## Compilation.
-V_CC = $(V_CC_$(V))$(CC)
-V_CC_0 = @echo " CC $@";
-
-## Linking.
-V_LD = $(V_LD_$(V))$(LD)
-V_LD_0 = @echo " LD $@";
-
-## Generation.
-V_GEN = $(V_GEN_$(V))
-V_GEN_0 = @echo " GEN $@";
-
-###--------------------------------------------------------------------------
### Build parameters.
## Mess with these if you like.
MKDIRS = $(INSTALL) -d -m755
## Probably best if you leave these alone.
-REAL_CFLAGS = $(CFLAGS) -fPIC
+REAL_CFLAGS = $(CFLAGS) -fPIC -MD
REAL_LDFLAGS = $(LDFLAGS) -shared
+## Allow user overrides for this stuff.
+-include config.mk
+
+###--------------------------------------------------------------------------
+### Quiet building.
+
+## Verbosity.
+V = 0
+v_tag = $(call v_tag_$V,$1)
+v_tag_0 = @printf " %-8s %s\n" "$1" "$@";
+V_AT = $(V_AT_$V)
+V_AT_0 = @
+
###--------------------------------------------------------------------------
### Main targets.
###--------------------------------------------------------------------------
### Building.
-all: $(TARGETS)
+all:: $(TARGETS)
.PHONY: ALL
CLEAN += $(TARGETS)
-CLEAN += *.o
-clean:
+CLEAN += *.o *.d
+clean::
rm -f $(CLEAN)
.PHONY: clean
## Building sources.
%.o: %.c
- $(V_CC) -c $(REAL_CFLAGS) $< -o $@
+ $(call v_tag,CC)$(CC) -c $(REAL_CFLAGS) $< -o $@
## Constructing preload hacks.
$(addsuffix .so,$(HACKS)): %.so: $$(patsubst %.c,%.o,$$($$*_SOURCES))
- $(V_LD) $(REAL_LDFLAGS) $< $(LDLIBS) -o $@
+ $(call v_tag,LD)$(LD) $(REAL_LDFLAGS) $< $(LDLIBS) -o $@
## Constructing the scripts.
$(SCRIPTS): %: withlib.in
- $(V_GEN)sed "s/@lib@/$@/" withlib.in >$@.new && \
+ $(call v_tag,GEN)sed "s/@lib@/$@/" $(srcdir)/withlib.in >$@.new && \
chmod +x $@.new && mv $@.new $@
+-include $(patsubst %.c,%d,$(ALL_SOURCES))
+
###--------------------------------------------------------------------------
### Installation.
$(MKDIRS) $(DESTDIR)$(libdir)
$(INST_BIN) $(LIBS) $(DESTDIR)$(libdir)
$(MKDIRS) $(DESTDIR)$(man1dir)
- $(INST_MAN) $(MAN1) $(DESTDIR)$(man1dir)
+ $(INST_MAN) $(addprefix $(srcdir)/,$(MAN1)) $(DESTDIR)$(man1dir)
.PHONY: install
uninstall:
d=$${i%/*} && $(MKDIRS) $(distdir)/$$d || exit 1 \
;; \
esac; \
- ln $$i $(distdir)/$$i || exit 1; \
+ cp $(srcdir)/$$i $(distdir)/$$i || exit 1; \
done
.PHONY: distdir
distcheck: dist
rm -rf _distcheck
mkdir _distcheck
- cd _distcheck && \
+ +cd _distcheck && \
tar xvfz ../$(DISTTAR) && \
- cd $(distdir) && \
- make && \
- make install DESTDIR=../_install && \
- make dist
+ mkdir _build && cd _build && \
+ make -f../$(distdir)/Makefile srcdir=../$(distdir) && \
+ make -f../$(distdir)/Makefile srcdir=../$(distdir) \
+ install DESTDIR=../_install && \
+ make -f../$(distdir)/Makefile srcdir=../$(distdir) dist
rm -rf _distcheck
###----- That's all, folks --------------------------------------------------