179 lines
4.5 KiB
Diff
179 lines
4.5 KiB
Diff
--- a/Makefile
|
|
+++ b/Makefile
|
|
@@ -1,93 +1,103 @@
|
|
prefix=/usr/local
|
|
-bindir=$(prefix)/bin
|
|
-includedir=$(prefix)/include
|
|
-libdir=$(prefix)/lib
|
|
-sysconfdir=$(prefix)/etc
|
|
-datarootdir=$(prefix)/share
|
|
-datadir=$(datarootdir)/gettext-tiny
|
|
-acdir=$(datarootdir)/aclocal
|
|
-
|
|
-ifeq ($(LIBINTL), MUSL)
|
|
- LIBSRC = libintl/libintl-musl.c
|
|
- HEADERS =
|
|
-else ifeq ($(LIBINTL), NONE)
|
|
- LIBSRC =
|
|
- HEADERS =
|
|
-else
|
|
- LIBSRC = libintl/libintl.c
|
|
- HEADERS = libintl.h
|
|
-endif
|
|
-PROGSRC = $(sort $(wildcard src/*.c))
|
|
-
|
|
-PARSEROBJS = src/poparser.o src/poparser_sysdep.o src/StringEscape.o
|
|
-PROGOBJS = $(PROGSRC:.c=.o)
|
|
-LIBOBJS = $(LIBSRC:.c=.o)
|
|
-OBJS = $(PROGOBJS) $(LIBOBJS)
|
|
+bindir=${prefix}/bin
|
|
+includedir=${prefix}/include
|
|
+libdir=${prefix}/lib
|
|
+sysconfdir=${prefix}/etc
|
|
+datarootdir=${prefix}/share
|
|
+datadir=${datarootdir}/gettext-tiny
|
|
+acdir=${datarootdir}/aclocal
|
|
+
|
|
+LIBINTL ?= default
|
|
+LIBINTL_MODE=${LIBINTL:tl}
|
|
+
|
|
+.if ${LIBINTL_MODE} == "musl"
|
|
+LIBSRC=libintl/libintl-musl.c
|
|
+HEADERS=
|
|
+.elif ${LIBINTL_MODE} == "none"
|
|
+LIBSRC=
|
|
+HEADERS=
|
|
+.else
|
|
+LIBSRC=libintl/libintl.c
|
|
+HEADERS=libintl.h
|
|
+.endif
|
|
+
|
|
+PARSEROBJS=src/poparser.o src/poparser_sysdep.o src/StringEscape.o
|
|
+PROGOBJS=src/msgfmt.o src/msgmerge.o src/poparser.o src/poparser_sysdep.o src/StringEscape.o
|
|
+LIBOBJS=${LIBSRC:.c=.o}
|
|
+OBJS=${PROGOBJS} ${LIBOBJS}
|
|
|
|
-ALL_INCLUDES = $(HEADERS)
|
|
-ifneq ($(LIBINTL), NONE)
|
|
+ALL_INCLUDES=${HEADERS}
|
|
+.if ${LIBINTL_MODE} != "none"
|
|
ALL_LIBS=libintl.a
|
|
-endif
|
|
+.else
|
|
+ALL_LIBS=
|
|
+.endif
|
|
ALL_TOOLS=msgfmt msgmerge xgettext autopoint
|
|
-ALL_M4S=$(sort $(wildcard m4/*.m4))
|
|
-ALL_DATA=$(sort $(wildcard data/*))
|
|
+AC_DATADIR_REL=${datadir:S,${datarootdir}/,,}
|
|
|
|
CFLAGS ?= -O0 -fPIC
|
|
|
|
-AR ?= $(CROSS_COMPILE)ar
|
|
-RANLIB ?= $(CROSS_COMPILE)ranlib
|
|
-CC ?= $(CROSS_COMPILE)cc
|
|
+AR ?= ${CROSS_COMPILE}ar
|
|
+RANLIB ?= ${CROSS_COMPILE}ranlib
|
|
+CC ?= ${CROSS_COMPILE}cc
|
|
|
|
INSTALL ?= ./install.sh
|
|
|
|
--include config.mak
|
|
-
|
|
-LDLIBS:=$(shell echo "int main(){}" | $(CC) $(CFLAGS) $(LDFLAGS) -liconv -x c - >/dev/null 2>&1 && printf %s -liconv)
|
|
-
|
|
-BUILDCFLAGS=$(CFLAGS)
|
|
-
|
|
-all: $(ALL_LIBS) $(ALL_TOOLS)
|
|
-
|
|
-install: $(ALL_LIBS:lib%=$(DESTDIR)$(libdir)/lib%) $(ALL_INCLUDES:%=$(DESTDIR)$(includedir)/%) $(ALL_TOOLS:%=$(DESTDIR)$(bindir)/%) $(ALL_M4S:%=$(DESTDIR)$(datadir)/%) $(ALL_M4S:%=$(DESTDIR)$(acdir)/%) $(ALL_DATA:%=$(DESTDIR)$(datadir)/%)
|
|
+.if exists(config.mak)
|
|
+.include "config.mak"
|
|
+.endif
|
|
+
|
|
+LDLIBS!=echo 'int main(){}' | ${CC} ${CFLAGS} ${LDFLAGS} -liconv -x c - >/dev/null 2>&1 && printf '%s' -liconv || true
|
|
+
|
|
+BUILDCFLAGS=${CFLAGS}
|
|
+
|
|
+all: ${ALL_LIBS} ${ALL_TOOLS}
|
|
+
|
|
+install: ${ALL_LIBS} ${ALL_TOOLS}
|
|
+.for lib in ${ALL_LIBS}
|
|
+ ${INSTALL} -D -m 755 ${lib} ${DESTDIR}${libdir}/${lib}
|
|
+.endfor
|
|
+.for hdr in ${ALL_INCLUDES}
|
|
+ ${INSTALL} -D -m 644 include/${hdr} ${DESTDIR}${includedir}/${hdr}
|
|
+.endfor
|
|
+.for tool in ${ALL_TOOLS}
|
|
+ ${INSTALL} -D -m 755 ${tool} ${DESTDIR}${bindir}/${tool}
|
|
+.endfor
|
|
+ @set -e; \
|
|
+ for m4f in m4/*.m4; do \
|
|
+ [ -f "$$m4f" ] || continue; \
|
|
+ ${INSTALL} -D -m 644 "$$m4f" "${DESTDIR}${datadir}/$${m4f##*/}"; \
|
|
+ ${INSTALL} -D -l "../${AC_DATADIR_REL}/$${m4f##*/}" "${DESTDIR}${acdir}/$${m4f##*/}"; \
|
|
+ done
|
|
+ @set -e; \
|
|
+ for dataf in data/*; do \
|
|
+ [ -f "$$dataf" ] || continue; \
|
|
+ ${INSTALL} -D -m 644 "$$dataf" "${DESTDIR}${datadir}/$${dataf##*/}"; \
|
|
+ done
|
|
|
|
clean:
|
|
- rm -f $(ALL_LIBS)
|
|
- rm -f $(OBJS)
|
|
- rm -f $(ALL_TOOLS)
|
|
-
|
|
-%.o: %.c
|
|
- $(CC) $(BUILDCFLAGS) -c -o $@ $<
|
|
-
|
|
-libintl.a: $(LIBOBJS)
|
|
- rm -f $@
|
|
- $(AR) rc $@ $(LIBOBJS)
|
|
- $(RANLIB) $@
|
|
+ rm -f ${ALL_LIBS}
|
|
+ rm -f ${OBJS}
|
|
+ rm -f ${ALL_TOOLS}
|
|
+
|
|
+.c.o:
|
|
+ ${CC} ${BUILDCFLAGS} -c -o ${.TARGET} ${.IMPSRC}
|
|
+
|
|
+libintl.a: ${LIBOBJS}
|
|
+ rm -f ${.TARGET}
|
|
+ ${AR} rc ${.TARGET} ${LIBOBJS}
|
|
+ ${RANLIB} ${.TARGET}
|
|
|
|
-msgmerge: $(OBJS)
|
|
- $(CC) -o $@ src/msgmerge.o $(PARSEROBJS) $(LDFLAGS) $(LDLIBS)
|
|
+msgmerge: ${OBJS}
|
|
+ ${CC} -o ${.TARGET} src/msgmerge.o ${PARSEROBJS} ${LDFLAGS} ${LDLIBS}
|
|
|
|
-msgfmt: $(OBJS)
|
|
- $(CC) -o $@ src/msgfmt.o $(PARSEROBJS) $(LDFLAGS) $(LDLIBS)
|
|
+msgfmt: ${OBJS}
|
|
+ ${CC} -o ${.TARGET} src/msgfmt.o ${PARSEROBJS} ${LDFLAGS} ${LDLIBS}
|
|
|
|
xgettext:
|
|
cp src/xgettext.sh ./xgettext
|
|
|
|
autopoint: src/autopoint.in
|
|
- cat $< | sed 's,@datadir@,$(datadir),' > $@
|
|
-
|
|
-$(DESTDIR)$(libdir)/%.a: %.a
|
|
- $(INSTALL) -D -m 755 $< $@
|
|
-
|
|
-$(DESTDIR)$(includedir)/%.h: include/%.h
|
|
- $(INSTALL) -D -m 644 $< $@
|
|
-
|
|
-$(DESTDIR)$(bindir)/%: %
|
|
- $(INSTALL) -D -m 755 $< $@
|
|
-
|
|
-$(DESTDIR)$(datadir)/%: %
|
|
- $(INSTALL) -D -m 644 $< $@
|
|
-
|
|
-$(DESTDIR)$(acdir)/%: %
|
|
- $(INSTALL) -D -l ../$(subst $(datarootdir)/,,$(datadir))/$< $(patsubst %m4/,%,$(dir $@))/$(notdir $@)
|
|
+ sed 's,@datadir@,${datadir},' < src/autopoint.in > ${.TARGET}
|
|
|
|
.PHONY: all clean install
|