ifndef CC
CC=gcc
endif

ifndef CFLAGS
CFLAGS = -MMD -O2 -Wall -g
endif

Q=@
E=echo

ifndef LDO
LDO=$(CC)
endif

LIBTOOL_INSTALL =
INSTALL         = /usr/bin/install -c
INSTALL_PROGRAM = $(LIBTOOL_INSTALL) ${INSTALL}

PACKAGENAME     = deepin-fix-init
DESTDIR?=/
PREFIX?=/usr
BINDIR=$(PREFIX)/bin
MANDIR=$(PREFIX)/share/man
INSTALL?=install -p
STRIP?=strip

LIBS=-ldialog -lncursesw -lm
LANGUAGES = $(basename $(notdir $(wildcard po/*.po)))
#LANGUAGES = $(shell sed -e "/^#/d" -e "s/#.*//" "po/LINGUAS")

OBJS = $(patsubst %.c,%.o,$(wildcard *.c))

all: deepin-fix-init translate

deepin-fix-init: $(OBJS)
	$(LDO) $(LDFLAGS) -o deepin-fix-init $(OBJS) $(LIBS) $(EXTRALIBS)
	@$(E) "  LD " $@
	#gcc -o deepin-fix-init $(OBJS) -ldialog -lncursesw -lm

main.o : util.h tui.h
tui.o : util.h tui.h
util.o : util.h tui.h

.PHONY : clean,install

clean:
	-rm deepin-fix-init $(OBJS) *.d

install: 
	$(INSTALL) -d -m 0755 $(DESTDIR)/$(BINDIR)
	$(INSTALL) -m 0755 $(PACKAGENAME) $(DESTDIR)/$(BINDIR)
	$(INSTALL) -m 0755 -D hook.sh $(DESTDIR)$(PREFIX)/share/initramfs-tools/hooks/deepin-fix-init
	$(INSTALL) -m 0755 -D panic.sh $(DESTDIR)$(PREFIX)/share/initramfs-tools/scripts/panic/deepin-fix-init
	mkdir -p $(DESTDIR)$(PREFIX)/share/locale
	cp -rv out/locale/* $(DESTDIR)$(PREFIX)/share/locale
	#make -C po install
#install:
#	$(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(ACTUAL_PROG)$x
pot:
	xgettext --default-domain=deepin-fix-init --directory=. --keyword=_ --keyword=N_ --no-location --files-from=./po/POTFILES.in --output-dir=./po/
	mv po/$(PACKAGENAME).po po/$(PACKAGENAME).pot
	sed -i 's/charset=CHARSET/charset=UTF-8/g' po/$(PACKAGENAME).pot

out/locale/%/LC_MESSAGES/deepin-fix-init.mo: po/%.po
	mkdir -p $(@D)
	msgfmt -o $@ $<

po-update: po/$(PACKAGENAME).pot
	if test -f po/zh_CN.po; then \
		msgmerge --previous --update po/zh_CN.po po/deepin-fix-init.pot; \
	else \
		msginit --input=po/deepin-fix-init.pot --local=po/zh_CN.po; \
	fi

translate: $(addsuffix /LC_MESSAGES/deepin-fix-init.mo, $(addprefix out/locale/, $(LANGUAGES)))

