My build of nnn with minor changes
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

161 líneas
4.3 KiB

  1. VERSION = $(shell grep -m1 VERSION $(SRC) | cut -f 2 -d'"')
  2. PREFIX ?= /usr/local
  3. MANPREFIX ?= $(PREFIX)/share/man
  4. DESKTOPPREFIX ?= $(PREFIX)/share/applications
  5. DESKTOPICONPREFIX ?= $(PREFIX)/share/icons/hicolor
  6. STRIP ?= strip
  7. PKG_CONFIG ?= pkg-config
  8. INSTALL ?= install
  9. CP ?= cp
  10. CFLAGS_OPTIMIZATION ?= -O3
  11. O_DEBUG := 0
  12. O_NORL := 0 # no readline support
  13. O_NOLOC := 0 # no locale support
  14. # convert targets to flags for backwards compatibility
  15. ifneq ($(filter debug,$(MAKECMDGOALS)),)
  16. O_DEBUG := 1
  17. endif
  18. ifneq ($(filter norl,$(MAKECMDGOALS)),)
  19. O_NORL := 1
  20. endif
  21. ifneq ($(filter noloc,$(MAKECMDGOALS)),)
  22. O_NORL := 1
  23. O_NOLOC := 1
  24. endif
  25. ifeq ($(O_DEBUG),1)
  26. CPPFLAGS += -DDBGMODE
  27. CFLAGS += -g
  28. endif
  29. ifeq ($(O_NORL),1)
  30. CPPFLAGS += -DNORL
  31. else ifeq ($(O_STATIC),1)
  32. CPPFLAGS += -DNORL
  33. else
  34. LDLIBS += -lreadline
  35. endif
  36. ifeq ($(O_PCRE),1)
  37. CPPFLAGS += -DPCRE
  38. LDLIBS += -lpcre
  39. endif
  40. ifeq ($(O_NOLOC),1)
  41. CPPFLAGS += -DNOLOCALE
  42. endif
  43. ifeq ($(O_NOMOUSE),1)
  44. CPPFLAGS += -DNOMOUSE
  45. endif
  46. ifeq ($(O_NOBATCH),1)
  47. CPPFLAGS += -DNOBATCH
  48. endif
  49. ifeq ($(O_NOFIFO),1)
  50. CPPFLAGS += -DNOFIFO
  51. endif
  52. ifeq ($(shell $(PKG_CONFIG) ncursesw && echo 1),1)
  53. CFLAGS_CURSES ?= $(shell $(PKG_CONFIG) --cflags ncursesw)
  54. LDLIBS_CURSES ?= $(shell $(PKG_CONFIG) --libs ncursesw)
  55. else ifeq ($(shell $(PKG_CONFIG) ncurses && echo 1),1)
  56. CFLAGS_CURSES ?= $(shell $(PKG_CONFIG) --cflags ncurses)
  57. LDLIBS_CURSES ?= $(shell $(PKG_CONFIG) --libs ncurses)
  58. else
  59. LDLIBS_CURSES ?= -lncurses
  60. endif
  61. CFLAGS += -std=c11 -Wall -Wextra
  62. CFLAGS += $(CFLAGS_OPTIMIZATION)
  63. CFLAGS += $(CFLAGS_CURSES)
  64. LDLIBS += $(LDLIBS_CURSES)
  65. # static compilation needs libgpm development package
  66. ifeq ($(O_STATIC),1)
  67. LDFLAGS += -static
  68. LDLIBS += -lgpm
  69. endif
  70. DISTFILES = src nnn.1 Makefile README.md LICENSE
  71. SRC = src/nnn.c
  72. HEADERS = src/nnn.h
  73. BIN = nnn
  74. DESKTOPFILE = misc/desktop/nnn.desktop
  75. LOGOSVG = misc/logo/logo.svg
  76. LOGO64X64 = misc/logo/logo-64x64.png
  77. all: $(BIN)
  78. $(BIN): $(SRC) $(HEADERS)
  79. $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
  80. # targets for backwards compatibility
  81. debug: $(BIN)
  82. norl: $(BIN)
  83. noloc: $(BIN)
  84. install-desktop: $(DESKTOPFILE)
  85. $(INSTALL) -m 0755 -d $(DESTDIR)$(DESKTOPPREFIX)
  86. $(INSTALL) -m 0644 $(DESKTOPFILE) $(DESTDIR)$(DESKTOPPREFIX)
  87. $(INSTALL) -m 0755 -d $(DESTDIR)$(DESKTOPICONPREFIX)/scalable/apps
  88. $(INSTALL) -m 0644 $(LOGOSVG) $(DESTDIR)$(DESKTOPICONPREFIX)/scalable/apps/nnn.svg
  89. $(INSTALL) -m 0755 -d $(DESTDIR)$(DESKTOPICONPREFIX)/64x64/apps
  90. $(INSTALL) -m 0644 $(LOGO64X64) $(DESTDIR)$(DESKTOPICONPREFIX)/64x64/apps/nnn.png
  91. uninstall-desktop:
  92. $(RM) $(DESTDIR)$(DESKTOPPREFIX)/$(DESKTOPFILE)
  93. $(RM) $(DESTDIR)$(DESKTOPICONPREFIX)/scalable/apps/nnn.svg
  94. $(RM) $(DESTDIR)$(DESKTOPICONPREFIX)/64x64/apps/nnn.png
  95. install: all
  96. $(INSTALL) -m 0755 -d $(DESTDIR)$(PREFIX)/bin
  97. $(INSTALL) -m 0755 $(BIN) $(DESTDIR)$(PREFIX)/bin
  98. $(INSTALL) -m 0755 -d $(DESTDIR)$(MANPREFIX)/man1
  99. $(INSTALL) -m 0644 $(BIN).1 $(DESTDIR)$(MANPREFIX)/man1
  100. uninstall:
  101. $(RM) $(DESTDIR)$(PREFIX)/bin/$(BIN)
  102. $(RM) $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1
  103. strip: $(BIN)
  104. $(STRIP) $^
  105. static:
  106. make O_STATIC=1 strip
  107. mv $(BIN) $(BIN)-static
  108. dist:
  109. mkdir -p nnn-$(VERSION)
  110. $(CP) -r $(DISTFILES) nnn-$(VERSION)
  111. tar -cf - nnn-$(VERSION) | gzip > nnn-$(VERSION).tar.gz
  112. $(RM) -r nnn-$(VERSION)
  113. sign:
  114. git archive -o nnn-$(VERSION).tar.gz --format tar.gz --prefix=nnn-$(VERSION)/ v$(VERSION)
  115. gpg --detach-sign --yes nnn-$(VERSION).tar.gz
  116. rm -f nnn-$(VERSION).tar.gz
  117. upload-local: sign static
  118. $(eval ID=$(shell curl -s 'https://api.github.com/repos/jarun/nnn/releases/tags/v$(VERSION)' | jq .id))
  119. curl -XPOST 'https://uploads.github.com/repos/jarun/nnn/releases/$(ID)/assets?name=nnn-$(VERSION).tar.gz.sig' \
  120. -H 'Authorization: token $(NNN_SIG_UPLOAD_TOKEN)' -H 'Content-Type: application/pgp-signature' \
  121. --upload-file nnn-$(VERSION).tar.gz.sig
  122. tar -zcf $(BIN)-static-$(VERSION).x86-64.tar.gz $(BIN)-static
  123. curl -XPOST 'https://uploads.github.com/repos/jarun/nnn/releases/$(ID)/assets?name=$(BIN)-static-$(VERSION).x86-64.tar.gz' \
  124. -H 'Authorization: token $(NNN_SIG_UPLOAD_TOKEN)' -H 'Content-Type: application/x-sharedlib' \
  125. --upload-file $(BIN)-static-$(VERSION).x86-64.tar.gz
  126. clean:
  127. $(RM) -f $(BIN) nnn-$(VERSION).tar.gz *.sig $(BIN)-static $(BIN)-static-$(VERSION).x86-64.tar.gz
  128. skip: ;
  129. .PHONY: all install uninstall strip static dist sign upload-local clean install-desktop uninstall-desktop