update: Clean up the Makefile
This commit is contained in:
74
Makefile
74
Makefile
@ -1,43 +1,67 @@
|
||||
SRCS = $(wildcard src/*.c)
|
||||
HEADERS = $(wildcard src/*.h)
|
||||
CSRCS = $(wildcard src/*.c)
|
||||
|
||||
PO_DIRS = $(wildcard locale/*/*)
|
||||
PO_FILES = $(wildcard locale/*/*/*.po)
|
||||
PO_SRCS = $(wildcard locale/*/*/*.po)
|
||||
PO_OUTS = $(patsubst locale/%.po,locale/%.mo,$(PO_SRCS))
|
||||
PO_DIRS = $(wildcard locale/*/*)
|
||||
|
||||
prefix = /usr
|
||||
prefix = /usr
|
||||
CC = gcc
|
||||
|
||||
dist/xcfg: $(SRCS) $(HEADERS) $(PO_FILES)
|
||||
all: dist/xcfg $(PO_OUTS)
|
||||
|
||||
dist/xcfg: $(CSRCS) $(HEADERS)
|
||||
mkdir -p dist
|
||||
gcc $(CFLAGS) $(SRCS) -o $@ -lncurses -lmenu -lm
|
||||
$(CC) $(CFLAGS) $(CSRCS) -o $@ -lncurses -lmenu -lm
|
||||
|
||||
locale/%.mo: locale/%.po
|
||||
msgfmt $^ -o $@
|
||||
|
||||
locale/%.po: locale/xcfg.pot
|
||||
cp $@ $@.old
|
||||
if msgmerge $@ $^ -o $@ ; then \
|
||||
rm $@.old ; \
|
||||
echo "merge success: $@" ; \
|
||||
else \
|
||||
echo "merge failed: $@" ; \
|
||||
mv $@.old $@ ; \
|
||||
fi; \
|
||||
|
||||
locale/xcfg.pot: $(CSRCS)
|
||||
mkdir -p locale
|
||||
xgettext -k_ -c $(SRCS) -o locale/xcfg.pot
|
||||
@for po in $(PO_DIRS) ; do \
|
||||
mv $$po/xcfg.po $$po/mp.old.po ; \
|
||||
if msgmerge $$po/mp.old.po locale/xcfg.pot -o $$po/xcfg.po ; then \
|
||||
rm $$po/mp.old.po ; \
|
||||
echo "merge success: $$po/xcfg.po" ; \
|
||||
else \
|
||||
echo "merge failed: $$po/xcfg.po" ; \
|
||||
mv $$po/mp.old.po $$po/xcfg.po ; \
|
||||
fi; \
|
||||
done
|
||||
@for po in $(PO_DIRS) ; do \
|
||||
msgfmt $$po/xcfg.po -o $$po/xcfg.mo ; \
|
||||
done
|
||||
xgettext -k_ -c $^ -o $@
|
||||
|
||||
install:
|
||||
mkdir -p $(DESTDIR)$(prefix)/bin
|
||||
install -m755 dist/xcfg $(DESTDIR)$(prefix)/bin/xcfg
|
||||
mkdir -pv $(DESTDIR)/etc/xcfg
|
||||
mkdir -pv $(DESTDIR)/var/lib/xcfg
|
||||
mkdir -pv $(DESTDIR)$(prefix)/bin
|
||||
install -v -m755 dist/xcfg $(DESTDIR)$(prefix)/bin/xcfg
|
||||
@for cmd in $(CMDS) ; do \
|
||||
ln -sfv xcfg $(DESTDIR)$(prefix)/bin/$$cmd ; \
|
||||
done
|
||||
@for po in $(PO_DIRS) ; do \
|
||||
echo "installing locale: $$po/xcfg.mo" ; \
|
||||
mkdir -pv $(DESTDIR)/usr/share/$$po ; \
|
||||
cp $$po/xcfg.mo $(DESTDIR)/usr/share/$$po ; \
|
||||
done
|
||||
|
||||
defcfg:
|
||||
cp -v install/cfg.default $(DESTDIR)/etc/xcfg/cfg
|
||||
|
||||
uninstall:
|
||||
rm $(DESTDIR)$(prefix)/bin/xcfg
|
||||
rm -v $(DESTDIR)$(prefix)/bin/xcfg
|
||||
@for cmd in $(CMDS) ; do \
|
||||
unlink $(DESTDIR)$(prefix)/bin/$$cmd ; \
|
||||
done
|
||||
|
||||
clean:
|
||||
rm dist/xcfg
|
||||
rm locale/xcfg.pot
|
||||
@for po in $(PO_DIRS) ; do \
|
||||
rm $$po/xcfg.mo ; \
|
||||
done
|
||||
|
||||
format:
|
||||
clang-format -i -style=file src/*.c src/*.h
|
||||
clang-format -i -style=file $(HEADERS) $(CSRCS)
|
||||
|
||||
.PHONY: install uninstall format
|
||||
.PHONY: install defcfg uninstall clean
|
||||
|
Reference in New Issue
Block a user