Added support for building with OBJDIR

This commit is contained in:
Pierre Pronchery 2014-11-03 02:41:59 +01:00
parent 3dd24af8ef
commit 370daa7d48
5 changed files with 64 additions and 38 deletions

View File

@ -3,7 +3,8 @@ VERSION = 0.0.3
SUBDIRS = doc src SUBDIRS = doc src
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)/doc/Makefile \ $(PACKAGE)-$(VERSION)/doc/Makefile \
$(PACKAGE)-$(VERSION)/doc/docbook.sh \ $(PACKAGE)-$(VERSION)/doc/docbook.sh \
$(PACKAGE)-$(VERSION)/doc/progress.css.xml \ $(PACKAGE)-$(VERSION)/doc/progress.css.xml \
@ -34,13 +35,25 @@ dist:
$(PACKAGE)-$(VERSION)/src/project.conf \ $(PACKAGE)-$(VERSION)/src/project.conf \
$(PACKAGE)-$(VERSION)/Makefile \ $(PACKAGE)-$(VERSION)/Makefile \
$(PACKAGE)-$(VERSION)/COPYING \ $(PACKAGE)-$(VERSION)/COPYING \
$(PACKAGE)-$(VERSION)/config.sh \
$(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,4 +1,5 @@
TARGETS = progress.1 progress.html TARGETS = $(OBJDIR)progress.1 $(OBJDIR)progress.html
OBJDIR =
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
RM = rm -f RM = rm -f
@ -9,11 +10,11 @@ INSTALL = install
all: $(TARGETS) all: $(TARGETS)
progress.1: progress.xml $(OBJDIR)progress.1: progress.xml
./docbook.sh -P "$(PREFIX)" -- "progress.1" ./docbook.sh -P "$(PREFIX)" -- "$(OBJDIR)progress.1"
progress.html: progress.css.xml progress.xml manual.css.xml $(OBJDIR)progress.html: progress.css.xml progress.xml manual.css.xml
./docbook.sh -P "$(PREFIX)" -- "progress.html" ./docbook.sh -P "$(PREFIX)" -- "$(OBJDIR)progress.html"
clean: clean:
$(RM) -- $(progress.1_OBJS) $(progress.html_OBJS) $(RM) -- $(progress.1_OBJS) $(progress.html_OBJS)
@ -24,8 +25,8 @@ distclean: clean
$(RM) -- $(TARGETS) $(RM) -- $(TARGETS)
install: $(TARGETS) install: $(TARGETS)
./docbook.sh -P "$(DESTDIR)$(PREFIX)" -i -- "progress.1" ./docbook.sh -P "$(DESTDIR)$(PREFIX)" -i -- "$(OBJDIR)progress.1"
./docbook.sh -P "$(DESTDIR)$(PREFIX)" -i -- "progress.html" ./docbook.sh -P "$(DESTDIR)$(PREFIX)" -i -- "$(OBJDIR)progress.html"
uninstall: uninstall:
./docbook.sh -P "$(DESTDIR)$(PREFIX)" -u -- "progress.1" ./docbook.sh -P "$(DESTDIR)$(PREFIX)" -u -- "progress.1"

View File

@ -27,6 +27,7 @@
#variables #variables
PREFIX="/usr/local" PREFIX="/usr/local"
[ -f "../config.sh" ] && . "../config.sh" [ -f "../config.sh" ] && . "../config.sh"
PROGNAME="docbook.sh"
#executables #executables
DEBUG="_debug" DEBUG="_debug"
FOP="fop" FOP="fop"
@ -52,17 +53,24 @@ _docbook()
target="$1" target="$1"
source="${target%.*}.xml" source="${target%.*}.xml"
[ -f "$source" ] || source="${source#$OBJDIR}"
ext="${target##*.}" ext="${target##*.}"
ext="${ext##.}" ext="${ext##.}"
case "$ext" in case "$ext" in
html) html)
XSL="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" XSL="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"
[ -f "${source%.*}.xsl" ] && XSL="${source%.*}.xsl"
[ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl" [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl"
[ -f "${target%.*}.css.xml" ] && XSLTPROC="$XSLTPROC --param custom.css.source \"${target%.*}.css.xml\" --param generate.css.header 1" if [ -f "${target%.*}.css.xml" ]; then
XSLTPROC="$XSLTPROC --param custom.css.source \"${target%.*}.css.xml\" --param generate.css.header 1"
elif [ -f "${source%.*}.css.xml" ]; then
XSLTPROC="$XSLTPROC --param custom.css.source \"${source%.*}.css.xml\" --param generate.css.header 1"
fi
$DEBUG $XSLTPROC -o "$target" "$XSL" "$source" $DEBUG $XSLTPROC -o "$target" "$XSL" "$source"
;; ;;
pdf) pdf)
XSL="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl" XSL="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"
[ -f "${source%.*}.xsl" ] && XSL="${source%.*}.xsl"
[ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl" [ -f "${target%.*}.xsl" ] && XSL="${target%.*}.xsl"
$DEBUG $XSLTPROC -o "${target%.*}.fo" "$XSL" "$source" && $DEBUG $XSLTPROC -o "${target%.*}.fo" "$XSL" "$source" &&
$DEBUG $FOP -fo "${target%.*}.fo" -pdf "$target" $DEBUG $FOP -fo "${target%.*}.fo" -pdf "$target"
@ -73,13 +81,13 @@ _docbook()
$DEBUG $XSLTPROC -o "$target" "$XSL" "$source" $DEBUG $XSLTPROC -o "$target" "$XSL" "$source"
;; ;;
*) *)
echo "$0: $target: Unknown type" 1>&2 _error "$target: Unknown type"
return 2 return 2
;; ;;
esac esac
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "$0: $target: Could not create page" 1>&2 _error "$target: Could not create page"
$RM -- "$target" $RM -- "$target"
return 2 return 2
fi fi
@ -89,7 +97,7 @@ _docbook()
#error #error
_error() _error()
{ {
echo "docbook.sh: $@" 1>&2 echo "$PROGNAME: $@" 1>&2
return 2 return 2
} }
@ -97,7 +105,7 @@ _error()
#usage #usage
_usage() _usage()
{ {
echo "Usage: docbook.sh [-c|-i|-u][-P prefix] target..." 1>&2 echo "Usage: $PROGNAME [-c|-i|-u][-P prefix] target..." 1>&2
return 1 return 1
} }
@ -153,7 +161,8 @@ while [ $# -gt 0 ]; do
case "$ext" in case "$ext" in
html) html)
instdir="$DATADIR/doc/$ext/$PACKAGE" instdir="$DATADIR/doc/$ext/$PACKAGE"
source="${target%.*}.xml" source="${target#$OBJDIR}"
source="${source%.*}.xml"
xpath="string(/refentry/refmeta/manvolnum)" xpath="string(/refentry/refmeta/manvolnum)"
section=$($XMLLINT --xpath "$xpath" "$source") section=$($XMLLINT --xpath "$xpath" "$source")
if [ $? -eq 0 -a -n "$section" ]; then if [ $? -eq 0 -a -n "$section" ]; then
@ -167,7 +176,7 @@ while [ $# -gt 0 ]; do
instdir="$MANDIR/man$ext" instdir="$MANDIR/man$ext"
;; ;;
*) *)
echo "$0: $target: Unknown type" 1>&2 _error "$target: Unknown type"
exit 2 exit 2
;; ;;
esac esac
@ -177,14 +186,16 @@ while [ $# -gt 0 ]; do
#uninstall #uninstall
if [ "$uninstall" -eq 1 ]; then if [ "$uninstall" -eq 1 ]; then
target="${target#$OBJDIR}"
$DEBUG $RM -- "$instdir/$target" || exit 2 $DEBUG $RM -- "$instdir/$target" || exit 2
continue continue
fi fi
#install #install
if [ "$install" -eq 1 ]; then if [ "$install" -eq 1 ]; then
source="${target#$OBJDIR}"
$DEBUG $MKDIR -- "$instdir" || exit 2 $DEBUG $MKDIR -- "$instdir" || exit 2
$DEBUG $INSTALL "$target" "$instdir/$target" || exit 2 $DEBUG $INSTALL "$target" "$instdir/$source" || exit 2
continue continue
fi fi

View File

@ -3,4 +3,4 @@ version=0.0.3
config=sh config=sh
subdirs=doc,src subdirs=doc,src
dist=Makefile,COPYING dist=Makefile,COPYING,config.sh

View File

@ -1,4 +1,5 @@
TARGETS = compare fontsel progress TARGETS = $(OBJDIR)compare $(OBJDIR)fontsel $(OBJDIR)progress
OBJDIR =
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
BINDIR = $(PREFIX)/bin BINDIR = $(PREFIX)/bin
@ -17,35 +18,35 @@ INSTALL = install
all: $(TARGETS) all: $(TARGETS)
compare_OBJS = compare.o compare_OBJS = $(OBJDIR)compare.o
compare_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) compare_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
compare_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) compare_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
compare: $(compare_OBJS) $(OBJDIR)compare: $(compare_OBJS)
$(CC) -o compare $(compare_OBJS) $(compare_LDFLAGS) $(CC) -o $(OBJDIR)compare $(compare_OBJS) $(compare_LDFLAGS)
fontsel_OBJS = fontsel.o fontsel_OBJS = $(OBJDIR)fontsel.o
fontsel_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) fontsel_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
fontsel_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) fontsel_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
fontsel: $(fontsel_OBJS) $(OBJDIR)fontsel: $(fontsel_OBJS)
$(CC) -o fontsel $(fontsel_OBJS) $(fontsel_LDFLAGS) $(CC) -o $(OBJDIR)fontsel $(fontsel_OBJS) $(fontsel_LDFLAGS)
progress_OBJS = progress.o progress_OBJS = $(OBJDIR)progress.o
progress_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) progress_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
progress_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) progress_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
progress: $(progress_OBJS) $(OBJDIR)progress: $(progress_OBJS)
$(CC) -o progress $(progress_OBJS) $(progress_LDFLAGS) $(CC) -o $(OBJDIR)progress $(progress_OBJS) $(progress_LDFLAGS)
compare.o: compare.c $(OBJDIR)compare.o: compare.c
$(CC) $(compare_CFLAGS) -c compare.c $(CC) $(compare_CFLAGS) -o $(OBJDIR)compare.o -c compare.c
fontsel.o: fontsel.c $(OBJDIR)fontsel.o: fontsel.c
$(CC) $(fontsel_CFLAGS) -c fontsel.c $(CC) $(fontsel_CFLAGS) -o $(OBJDIR)fontsel.o -c fontsel.c
progress.o: progress.c $(OBJDIR)progress.o: progress.c
$(CC) $(progress_CFLAGS) -c progress.c $(CC) $(progress_CFLAGS) -o $(OBJDIR)progress.o -c progress.c
clean: clean:
$(RM) -- $(compare_OBJS) $(fontsel_OBJS) $(progress_OBJS) $(RM) -- $(compare_OBJS) $(fontsel_OBJS) $(progress_OBJS)
@ -55,11 +56,11 @@ distclean: clean
install: $(TARGETS) install: $(TARGETS)
$(MKDIR) $(DESTDIR)$(BINDIR) $(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 compare $(DESTDIR)$(BINDIR)/compare $(INSTALL) -m 0755 $(OBJDIR)compare $(DESTDIR)$(BINDIR)/compare
$(MKDIR) $(DESTDIR)$(BINDIR) $(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 fontsel $(DESTDIR)$(BINDIR)/fontsel $(INSTALL) -m 0755 $(OBJDIR)fontsel $(DESTDIR)$(BINDIR)/fontsel
$(MKDIR) $(DESTDIR)$(BINDIR) $(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 progress $(DESTDIR)$(BINDIR)/progress $(INSTALL) -m 0755 $(OBJDIR)progress $(DESTDIR)$(BINDIR)/progress
uninstall: uninstall:
$(RM) -- $(DESTDIR)$(BINDIR)/compare $(RM) -- $(DESTDIR)$(BINDIR)/compare