diff options
Diffstat (limited to 'misc/haiku/Makefile')
-rw-r--r-- | misc/haiku/Makefile | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/misc/haiku/Makefile b/misc/haiku/Makefile new file mode 100644 index 0000000..6fd576d --- /dev/null +++ b/misc/haiku/Makefile @@ -0,0 +1,117 @@ +include VERSION.mk + +PREFIX ?= /boot/system/non-packaged +MANPREFIX ?= /boot/system/non-packaged/documentation/man +STRIP ?= strip +PKG_CONFIG ?= pkg-config +INSTALL ?= install +CP ?= cp + +CFLAGS_OPTIMIZATION ?= -O3 + +O_DEBUG := 0 +O_NORL := 0 # no readline support +O_NOLOC := 0 # no locale support + +# convert targets to flags for backwards compatibility +ifneq ($(filter debug,$(MAKECMDGOALS)),) + O_DEBUG := 1 +endif +ifneq ($(filter norl,$(MAKECMDGOALS)),) + O_NORL := 1 +endif +ifneq ($(filter noloc,$(MAKECMDGOALS)),) + O_NORL := 1 + O_NOLOC := 1 +endif + +ifeq ($(O_DEBUG),1) + CPPFLAGS += -DDBGMODE + CFLAGS += -g + LDLIBS += -lrt +endif + +ifeq ($(O_NORL),1) + CPPFLAGS += -DNORL +else + LDLIBS += -lreadline +endif + +ifeq ($(O_NOLOC),1) + CPPFLAGS += -DNOLOCALE +endif + +ifeq ($(shell $(PKG_CONFIG) ncursesw && echo 1),1) + CFLAGS_CURSES ?= $(shell $(PKG_CONFIG) --cflags ncursesw) + LDLIBS_CURSES ?= $(shell $(PKG_CONFIG) --libs ncursesw) +else ifeq ($(shell $(PKG_CONFIG) ncurses && echo 1),1) + CFLAGS_CURSES ?= $(shell $(PKG_CONFIG) --cflags ncurses) + LDLIBS_CURSES ?= $(shell $(PKG_CONFIG) --libs ncurses) +else + LDLIBS_CURSES ?= -lncurses +endif + +ifeq ($(shell uname -s), Haiku) + LDLIBS_HAIKU ?= -lstdc++ -lbe + SRC_HAIKU ?= misc/haiku/nm.cpp + OBJS_HAIKU ?= misc/haiku/nm.o +endif + +CFLAGS += -Wall -Wextra +CFLAGS += $(CFLAGS_OPTIMIZATION) +CFLAGS += $(CFLAGS_CURSES) + +LDLIBS += $(LDLIBS_CURSES) $(LDLIBS_HAIKU) + +DISTFILES = src nnn.1 Makefile README.md LICENSE VERSION.mk +SRC = src/nnn.c +HEADERS = src/nnn.h +BIN = nnn +OBJS := nnn.o $(OBJS_HAIKU) + +all: $(BIN) + +ifeq ($(shell uname -s), Haiku) +$(OBJS_HAIKU): $(SRC_HAIKU) + $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< +endif + +nnn.o: $(SRC) $(HEADERS) + $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< + +$(BIN): $(OBJS) + $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS) + +# targets for backwards compatibility +debug: $(BIN) +norl: $(BIN) +noloc: $(BIN) + +install: all + $(INSTALL) -m 0755 -d $(DESTDIR)$(PREFIX)/bin + $(INSTALL) -m 0755 $(BIN) $(DESTDIR)$(PREFIX)/bin + $(INSTALL) -m 0755 -d $(DESTDIR)$(MANPREFIX)/man1 + $(INSTALL) -m 0644 $(BIN).1 $(DESTDIR)$(MANPREFIX)/man1 + +uninstall: + $(RM) $(DESTDIR)$(PREFIX)/bin/$(BIN) + $(RM) $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1 + +strip: $(BIN) + $(STRIP) $^ + +dist: + mkdir -p nnn-$(VERSION) + $(CP) -r $(DISTFILES) nnn-$(VERSION) + mkdir -p nnn-$(VERSION)/misc + $(CP) -r misc/haiku nnn-$(VERSION)/misc + tar -cf nnn-$(VERSION).tar nnn-$(VERSION) + gzip nnn-$(VERSION).tar + $(RM) -r nnn-$(VERSION) + +clean: + $(RM) -f $(BIN) $(OBJS) nnn-$(VERSION).tar.gz + +skip: ; + +.PHONY: all debug install uninstall strip dist clean |