Added support for OBJDIR

This commit is contained in:
Pierre Pronchery 2014-11-03 23:13:32 +01:00
parent 339c02cd60
commit f742a8f3eb
8 changed files with 102 additions and 59 deletions

View File

@ -3,7 +3,8 @@ VERSION = 0.2.1
SUBDIRS = data include po src tools SUBDIRS = data include po 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)/data/Makefile \ $(PACKAGE)-$(VERSION)/data/Makefile \
$(PACKAGE)-$(VERSION)/data/deforaos-keyboard.desktop \ $(PACKAGE)-$(VERSION)/data/deforaos-keyboard.desktop \
$(PACKAGE)-$(VERSION)/data/project.conf \ $(PACKAGE)-$(VERSION)/data/project.conf \
@ -58,10 +59,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 =
MKDIR = mkdir -m 0755 -p MKDIR = mkdir -m 0755 -p

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 @@
TARGETS = Keyboard.pot fr.mo TARGETS = $(OBJDIR)Keyboard.pot $(OBJDIR)fr.mo
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)
Keyboard.pot: POTFILES $(OBJDIR)Keyboard.pot: POTFILES
./gettext.sh -P "$(PREFIX)" -- "Keyboard.pot" ./gettext.sh -P "$(PREFIX)" -- "$(OBJDIR)Keyboard.pot"
fr.mo: Keyboard.pot fr.po $(OBJDIR)fr.mo: $(OBJDIR)Keyboard.pot fr.po
./gettext.sh -P "$(PREFIX)" -- "fr.mo" ./gettext.sh -P "$(PREFIX)" -- "$(OBJDIR)fr.mo"
clean: clean:
$(RM) -- $(Keyboard.pot_OBJS) $(fr.mo_OBJS) $(RM) -- $(Keyboard.pot_OBJS) $(fr.mo_OBJS)
@ -24,7 +25,7 @@ distclean: clean
$(RM) -- $(TARGETS) $(RM) -- $(TARGETS)
install: $(TARGETS) install: $(TARGETS)
./gettext.sh -P "$(DESTDIR)$(PREFIX)" -i -- "fr.mo" ./gettext.sh -P "$(DESTDIR)$(PREFIX)" -i -- "$(OBJDIR)fr.mo"
uninstall: uninstall:
./gettext.sh -P "$(DESTDIR)$(PREFIX)" -u -- "fr.mo" ./gettext.sh -P "$(DESTDIR)$(PREFIX)" -u -- "fr.mo"

View File

@ -70,9 +70,12 @@ _gettext_mo()
{ {
package="$1" package="$1"
lang="$2" lang="$2"
potfile="$3"
pofile="$4"
mofile="$5"
_gettext_po "$package" "$lang" || return 1 _gettext_po "$package" "$lang" "$potfile" "$pofile" || return 1
$DEBUG $MSGFMT -c -v -o "$lang.mo" "$lang.po" || return 1 $DEBUG $MSGFMT -c -v -o "$mofile" "$pofile" || return 1
} }
@ -81,11 +84,13 @@ _gettext_po()
{ {
package="$1" package="$1"
lang="$2" lang="$2"
potfile="$3"
pofile="$4"
if [ -f "$lang.po" ]; then if [ -f "$pofile" ]; then
$DEBUG $MSGMERGE -U "$lang.po" "$package.pot" || return 1 $DEBUG $MSGMERGE -U "$pofile" "$potfile" || return 1
else else
$DEBUG $MSGINIT -l "$lang" -o "$lang.po" -i "$package.pot" \ $DEBUG $MSGINIT -l "$lang" -o "$pofile" -i "$potfile" \
|| return 1 || return 1
fi fi
} }
@ -95,8 +100,9 @@ _gettext_po()
_gettext_pot() _gettext_pot()
{ {
package="$1" package="$1"
potfile="$2"
$DEBUG $XGETTEXT -d "$package" -o "$package.pot" --keyword="_" \ $DEBUG $XGETTEXT -d "$package" -o "$potfile" --keyword="_" \
--keyword="N_" -f "$POTFILES" || return 1 --keyword="N_" -f "$POTFILES" || return 1
} }
@ -142,7 +148,8 @@ fi
LOCALEDIR="$PREFIX/share/locale" LOCALEDIR="$PREFIX/share/locale"
while [ $# -gt 0 ]; do while [ $# -gt 0 ]; do
target="$1" target="$1"
lang="${target%%.mo}" source="${target#$OBJDIR}"
lang="${source%%.mo}"
lang="${lang%%.po}" lang="${lang%%.po}"
shift shift
@ -168,13 +175,32 @@ while [ $# -gt 0 ]; do
#create #create
case "$target" in case "$target" in
*.mo) *.mo)
_gettext_mo "$PACKAGE" "$lang" || exit 2 #XXX may not match
if [ -n "$OBJDIR" ]; then
potfile="$OBJDIR/$PACKAGE.pot"
else
potfile="$PACKAGE.pot"
fi
mofile="$target"
pofile="${source%%.mo}.po"
_gettext_mo "$PACKAGE" "$lang" "$potfile" "$pofile" \
"$mofile" || exit 2
;; ;;
*.po) *.po)
_gettext_po "$PACKAGE" "$lang" || exit 2 #XXX may not match
if [ -n "$OBJDIR" ]; then
potfile="$OBJDIR/$PACKAGE.pot"
else
potfile="$PACKAGE.pot"
fi
pofile="$target"
_gettext_po "$PACKAGE" "$lang" "$potfile" "$pofile" \
|| exit 2
;; ;;
*.pot) *.pot)
_gettext_pot "${target%%.pot}" || exit 2 package="${source%%.pot}"
potfile="$target"
_gettext_pot "$package" "$potfile" || exit 2
;; ;;
*) *)
exit 2 exit 2

View File

@ -10,4 +10,4 @@ depends=POTFILES
type=script type=script
script=./gettext.sh script=./gettext.sh
install= install=
depends=Keyboard.pot,fr.po depends=$(OBJDIR)Keyboard.pot,fr.po

View File

@ -1,4 +1,5 @@
TARGETS = keyboard keyboardctl TARGETS = $(OBJDIR)keyboard $(OBJDIR)keyboardctl
OBJDIR =
PREFIX = /usr/local PREFIX = /usr/local
DESTDIR = DESTDIR =
BINDIR = $(PREFIX)/bin BINDIR = $(PREFIX)/bin
@ -17,40 +18,40 @@ INSTALL = install
all: $(TARGETS) all: $(TARGETS)
keyboard_OBJS = callbacks.o common.o key.o keyboard.o layout.o main.o keyboard_OBJS = $(OBJDIR)callbacks.o $(OBJDIR)common.o $(OBJDIR)key.o $(OBJDIR)keyboard.o $(OBJDIR)layout.o $(OBJDIR)main.o
keyboard_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) keyboard_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
keyboard_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs x11` -lXtst keyboard_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs x11` -lXtst
keyboard: $(keyboard_OBJS) $(OBJDIR)keyboard: $(keyboard_OBJS)
$(CC) -o keyboard $(keyboard_OBJS) $(keyboard_LDFLAGS) $(CC) -o $(OBJDIR)keyboard $(keyboard_OBJS) $(keyboard_LDFLAGS)
keyboardctl_OBJS = keyboardctl.o keyboardctl_OBJS = $(OBJDIR)keyboardctl.o
keyboardctl_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libDesktop` keyboardctl_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) `pkg-config --cflags libDesktop`
keyboardctl_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop` keyboardctl_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs libDesktop`
keyboardctl: $(keyboardctl_OBJS) $(OBJDIR)keyboardctl: $(keyboardctl_OBJS)
$(CC) -o keyboardctl $(keyboardctl_OBJS) $(keyboardctl_LDFLAGS) $(CC) -o $(OBJDIR)keyboardctl $(keyboardctl_OBJS) $(keyboardctl_LDFLAGS)
callbacks.o: callbacks.c callbacks.h $(OBJDIR)callbacks.o: callbacks.c callbacks.h
$(CC) $(keyboard_CFLAGS) -c callbacks.c $(CC) $(keyboard_CFLAGS) -o $(OBJDIR)callbacks.o -c callbacks.c
common.o: common.c $(OBJDIR)common.o: common.c
$(CC) $(keyboard_CFLAGS) -c common.c $(CC) $(keyboard_CFLAGS) -o $(OBJDIR)common.o -c common.c
key.o: key.c key.h $(OBJDIR)key.o: key.c key.h
$(CC) $(keyboard_CFLAGS) -c key.c $(CC) $(keyboard_CFLAGS) -o $(OBJDIR)key.o -c key.c
keyboard.o: keyboard.c callbacks.h keyboard.h ../config.h $(OBJDIR)keyboard.o: keyboard.c callbacks.h keyboard.h ../config.h
$(CC) $(keyboard_CFLAGS) -c keyboard.c $(CC) $(keyboard_CFLAGS) -o $(OBJDIR)keyboard.o -c keyboard.c
layout.o: layout.c layout.h $(OBJDIR)layout.o: layout.c layout.h
$(CC) $(keyboard_CFLAGS) -c layout.c $(CC) $(keyboard_CFLAGS) -o $(OBJDIR)layout.o -c layout.c
main.o: main.c keyboard.h $(OBJDIR)main.o: main.c keyboard.h
$(CC) $(keyboard_CFLAGS) -c main.c $(CC) $(keyboard_CFLAGS) -o $(OBJDIR)main.o -c main.c
keyboardctl.o: keyboardctl.c $(OBJDIR)keyboardctl.o: keyboardctl.c
$(CC) $(keyboardctl_CFLAGS) -c keyboardctl.c $(CC) $(keyboardctl_CFLAGS) -o $(OBJDIR)keyboardctl.o -c keyboardctl.c
clean: clean:
$(RM) -- $(keyboard_OBJS) $(keyboardctl_OBJS) $(RM) -- $(keyboard_OBJS) $(keyboardctl_OBJS)
@ -60,9 +61,9 @@ distclean: clean
install: $(TARGETS) install: $(TARGETS)
$(MKDIR) $(DESTDIR)$(BINDIR) $(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 keyboard $(DESTDIR)$(BINDIR)/keyboard $(INSTALL) -m 0755 $(OBJDIR)keyboard $(DESTDIR)$(BINDIR)/keyboard
$(MKDIR) $(DESTDIR)$(BINDIR) $(MKDIR) $(DESTDIR)$(BINDIR)
$(INSTALL) -m 0755 keyboardctl $(DESTDIR)$(BINDIR)/keyboardctl $(INSTALL) -m 0755 $(OBJDIR)keyboardctl $(DESTDIR)$(BINDIR)/keyboardctl
uninstall: uninstall:
$(RM) -- $(DESTDIR)$(BINDIR)/keyboard $(RM) -- $(DESTDIR)$(BINDIR)/keyboard

View File

@ -1,4 +1,5 @@
TARGETS = plug snooper xkey TARGETS = $(OBJDIR)plug $(OBJDIR)snooper $(OBJDIR)xkey
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)
plug_OBJS = plug.o plug_OBJS = $(OBJDIR)plug.o
plug_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) plug_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
plug_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) plug_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
plug: $(plug_OBJS) $(OBJDIR)plug: $(plug_OBJS)
$(CC) -o plug $(plug_OBJS) $(plug_LDFLAGS) $(CC) -o $(OBJDIR)plug $(plug_OBJS) $(plug_LDFLAGS)
snooper_OBJS = snooper.o snooper_OBJS = $(OBJDIR)snooper.o
snooper_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) snooper_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
snooper_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) snooper_LDFLAGS = $(LDFLAGSF) $(LDFLAGS)
snooper: $(snooper_OBJS) $(OBJDIR)snooper: $(snooper_OBJS)
$(CC) -o snooper $(snooper_OBJS) $(snooper_LDFLAGS) $(CC) -o $(OBJDIR)snooper $(snooper_OBJS) $(snooper_LDFLAGS)
xkey_OBJS = xkey.o xkey_OBJS = $(OBJDIR)xkey.o
xkey_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS) xkey_CFLAGS = $(CPPFLAGSF) $(CPPFLAGS) $(CFLAGSF) $(CFLAGS)
xkey_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs x11` -lXtst xkey_LDFLAGS = $(LDFLAGSF) $(LDFLAGS) `pkg-config --libs x11` -lXtst
xkey: $(xkey_OBJS) $(OBJDIR)xkey: $(xkey_OBJS)
$(CC) -o xkey $(xkey_OBJS) $(xkey_LDFLAGS) $(CC) -o $(OBJDIR)xkey $(xkey_OBJS) $(xkey_LDFLAGS)
plug.o: plug.c $(OBJDIR)plug.o: plug.c
$(CC) $(plug_CFLAGS) -c plug.c $(CC) $(plug_CFLAGS) -o $(OBJDIR)plug.o -c plug.c
snooper.o: snooper.c $(OBJDIR)snooper.o: snooper.c
$(CC) $(snooper_CFLAGS) -c snooper.c $(CC) $(snooper_CFLAGS) -o $(OBJDIR)snooper.o -c snooper.c
xkey.o: xkey.c $(OBJDIR)xkey.o: xkey.c
$(CC) $(xkey_CFLAGS) -c xkey.c $(CC) $(xkey_CFLAGS) -o $(OBJDIR)xkey.o -c xkey.c
clean: clean:
$(RM) -- $(plug_OBJS) $(snooper_OBJS) $(xkey_OBJS) $(RM) -- $(plug_OBJS) $(snooper_OBJS) $(xkey_OBJS)