135 lines
3.9 KiB
Makefile
135 lines
3.9 KiB
Makefile
NAME = uwufetch
|
|
BIN_FILES = uwufetch.c
|
|
LIB_FILES = fetch.c
|
|
UWUFETCH_VERSION = $(shell git describe --tags)
|
|
CFLAGS = -O3 -pthread -DUWUFETCH_VERSION=\"$(UWUFETCH_VERSION)\"
|
|
CFLAGS_DEBUG = -Wall -Wextra -g -pthread -DUWUFETCH_VERSION=\"$(UWUFETCH_VERSION)\" -D__DEBUG__
|
|
CC = cc
|
|
AR = ar
|
|
DESTDIR = /usr
|
|
RELEASE_SCRIPTS = release_scripts/*.sh
|
|
ifeq ($(OS), Windows_NT)
|
|
PLATFORM = $(OS)
|
|
else
|
|
PLATFORM = $(shell uname)
|
|
endif
|
|
PLATFORM_ABBR = $(PLATFORM)
|
|
|
|
ifeq ($(PLATFORM), Linux)
|
|
PREFIX = bin
|
|
LIBDIR = lib
|
|
INCDIR = include
|
|
ETC_DIR = /etc
|
|
MANDIR = share/man/man1
|
|
PLATFORM_ABBR = linux
|
|
ifeq ($(shell uname -o), Android)
|
|
CFLAGS += -DPKGPATH=\"/data/data/com.termux/files/usr/bin/\"
|
|
CFLAGS_DEBUG += -DPKGPATH=\"/data/data/com.termux/files/usr/bin/\"
|
|
DESTDIR = /data/data/com.termux/files/usr
|
|
ETC_DIR = $(DESTDIR)/etc
|
|
PLATFORM_ABBR = android
|
|
endif
|
|
else ifeq ($(PLATFORM), Darwin)
|
|
PREFIX = local/bin
|
|
LIBDIR = local/lib
|
|
INCDIR = local/include
|
|
ETC_DIR = /etc
|
|
MANDIR = local/share/man/man1
|
|
PLATFORM_ABBR = macos
|
|
else ifeq ($(PLATFORM), FreeBSD)
|
|
CFLAGS += -D__FREEBSD__ -D__BSD__
|
|
CFLAGS_DEBUG += -D__FREEBSD__ -D__BSD__
|
|
PREFIX = bin
|
|
LIBDIR = lib
|
|
INCDIR = include
|
|
ETC_DIR = /etc
|
|
MANDIR = share/man/man1
|
|
PLATFORM_ABBR = freebsd
|
|
else ifeq ($(PLATFORM), OpenBSD)
|
|
CFLAGS += -D__OPENBSD__ -D__BSD__
|
|
CFLAGS_DEBUG += -D__OPENBSD__ -D__BSD__
|
|
PREFIX = bin
|
|
LIBDIR = lib
|
|
INCDIR = include
|
|
ETC_DIR = /etc
|
|
MANDIR = share/man/man1
|
|
PLATFORM_ABBR = openbsd
|
|
else ifeq ($(PLATFORM), Windows_NT)
|
|
CC = gcc
|
|
PREFIX = "C:\Program Files"
|
|
LIBDIR =
|
|
INCDIR =
|
|
MANDIR =
|
|
RELEASE_SCRIPTS = release_scripts/*.ps1
|
|
PLATFORM_ABBR = win64
|
|
EXT = .exe
|
|
else ifeq ($(PLATFORM), linux4win)
|
|
CC = x86_64-w64-mingw32-gcc
|
|
PREFIX =
|
|
CFLAGS += -D_WIN32
|
|
LIBDIR =
|
|
INCDIR =
|
|
MANDIR =
|
|
RELEASE_SCRIPTS = release_scripts/*.ps1
|
|
PLATFORM_ABBR = win64
|
|
EXT = .exe
|
|
endif
|
|
|
|
build: $(BIN_FILES) lib
|
|
$(CC) $(CFLAGS) -o $(NAME) $(BIN_FILES) lib$(LIB_FILES:.c=.a)
|
|
|
|
lib: $(LIB_FILES)
|
|
$(CC) $(CFLAGS) -fPIC -c -o $(LIB_FILES:.c=.o) $(LIB_FILES)
|
|
$(AR) rcs lib$(LIB_FILES:.c=.a) $(LIB_FILES:.c=.o)
|
|
$(CC) $(CFLAGS) -shared -o lib$(LIB_FILES:.c=.so) $(LIB_FILES:.c=.o)
|
|
|
|
release: build man
|
|
mkdir -pv $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp $(RELEASE_SCRIPTS) $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp -r res $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp $(NAME)$(EXT) $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp $(NAME).1.gz $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp lib$(LIB_FILES:.c=.so) $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp $(LIB_FILES:.c=.h) $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
cp default.config $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
ifeq ($(PLATFORM), linux4win)
|
|
zip -9r $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR).zip $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
else
|
|
tar -czf $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR).tar.gz $(NAME)_$(UWUFETCH_VERSION)-$(PLATFORM_ABBR)
|
|
endif
|
|
|
|
debug: CFLAGS = $(CFLAGS_DEBUG)
|
|
debug: build
|
|
./$(NAME) $(ARGS)
|
|
|
|
install: build man
|
|
mkdir -pv $(DESTDIR)/$(PREFIX) $(DESTDIR)/$(LIBDIR)/$(NAME) $(DESTDIR)/$(MANDIR) $(ETC_DIR)/$(NAME) $(DESTDIR)/$(INCDIR)
|
|
cp $(NAME) $(DESTDIR)/$(PREFIX)
|
|
cp lib$(LIB_FILES:.c=.so) $(DESTDIR)/$(LIBDIR)
|
|
cp $(LIB_FILES:.c=.h) $(DESTDIR)/$(INCDIR)
|
|
cp -r res/* $(DESTDIR)/$(LIBDIR)/$(NAME)
|
|
cp default.config $(ETC_DIR)/$(NAME)/config
|
|
cp ./$(NAME).1.gz $(DESTDIR)/$(MANDIR)
|
|
|
|
uninstall:
|
|
rm -f $(DESTDIR)/$(PREFIX)/$(NAME)
|
|
rm -rf $(DESTDIR)/$(LIBDIR)/uwufetch
|
|
rm -f $(DESTDIR)/$(LIBDIR)/lib$(LIB_FILES:.c=.so)
|
|
rm -f $(DESTDIR)/include/$(LIB_FILES:.c=.h)
|
|
rm -rf $(ETC_DIR)/uwufetch
|
|
rm -f $(DESTDIR)/$(MANDIR)/$(NAME).1.gz
|
|
|
|
clean:
|
|
rm -rf $(NAME) $(NAME)_* *.o *.so *.a *.exe
|
|
|
|
ascii_debug: build
|
|
ascii_debug:
|
|
ls res/ascii/$(ASCII).txt | entr -c ./$(NAME) -d $(ASCII)
|
|
|
|
man:
|
|
sed "s/{DATE}/$(shell date '+%d %B %Y')/g" $(NAME).1 | sed "s/{UWUFETCH_VERSION}/$(UWUFETCH_VERSION)/g" | gzip > $(NAME).1.gz
|
|
|
|
man_debug:
|
|
@clear
|
|
man -P cat ./$(NAME).1
|