Makefile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. prefix=/usr
  2. bindir=$(prefix)/bin
  3. includedir=$(prefix)/include
  4. libdir=$(prefix)/lib
  5. sysconfdir=$(prefix)/etc
  6. LIBSRC = $(sort $(wildcard libintl/*.c))
  7. PROGSRC = $(sort $(wildcard src/*.c))
  8. PARSEROBJS = src/poparser.o src/StringEscape.o
  9. PROGOBJS = $(PROGSRC:.c=.o)
  10. LIBOBJS = $(LIBSRC:.c=.o)
  11. OBJS = $(PROGOBJS) $(LIBOBJS)
  12. HEADERS = libintl.h
  13. ALL_INCLUDES = $(HEADERS)
  14. ALL_LIBS=libintl.a
  15. ALL_TOOLS=msgfmt msgmerge xgettext
  16. CFLAGS?=-O0 -fPIC
  17. AR ?= $(CROSS_COMPILE)ar
  18. RANLIB ?= $(CROSS_COMPILE)ranlib
  19. CC ?= $(CROSS_COMPILE)cc
  20. -include config.mak
  21. BUILDCFLAGS=$(CFLAGS)
  22. all: $(ALL_LIBS) $(ALL_TOOLS)
  23. install: $(ALL_LIBS:lib%=$(DESTDIR)$(libdir)/lib%) $(ALL_INCLUDES:%=$(DESTDIR)$(includedir)/%) $(ALL_TOOLS:%=$(DESTDIR)$(bindir)/%)
  24. clean:
  25. rm -f $(ALL_LIBS)
  26. rm -f $(OBJS)
  27. rm -f $(ALL_TOOLS)
  28. %.o: %.c
  29. $(CC) $(BUILDCFLAGS) -c -o $@ $<
  30. libintl.a: $(LIBOBJS)
  31. rm -f $@
  32. $(AR) rc $@ $(LIBOBJS)
  33. $(RANLIB) $@
  34. msgmerge: $(OBJS)
  35. $(CC) $(LDFLAGS) -static -o $@ src/msgmerge.o $(PARSEROBJS)
  36. msgfmt: $(OBJS)
  37. $(CC) $(LDFLAGS) -static -o $@ src/msgfmt.o $(PARSEROBJS)
  38. xgettext:
  39. cp src/xgettext.sh ./xgettext
  40. $(DESTDIR)$(libdir)/%.a: %.a
  41. mkdir -p $(DESTDIR)$(libdir)
  42. install -m 755 $< $@
  43. $(DESTDIR)$(includedir)/%.h: include/%.h
  44. mkdir -p $(DESTDIR)$(includedir)
  45. install -m 644 $< $@
  46. $(DESTDIR)$(bindir)/%: %
  47. mkdir -p $(DESTDIR)$(bindir)
  48. install -m 755 $< $@
  49. .PHONY: all clean install