Files
patches/gettext-tiny/gettext-tiny-0.3.3-bmake.patch
T
2026-05-26 02:08:47 -05:00

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