62 lines
1.3 KiB
Makefile
62 lines
1.3 KiB
Makefile
VERSION = 0.1
|
|
|
|
# Compiler flags
|
|
CC ?= gcc
|
|
AR ?= ar
|
|
LIBS = -ljansson
|
|
CFLAGS = -std=c99 -pedantic -Wall -Werror -Wextra -I$(PREFIX)/include
|
|
CFLAGS += -D_POSIX_C_SOURCE=200112L -DVERSION=\"$(VERSION)\"
|
|
LDFLAGS = -L$(PREFIX)/lib
|
|
|
|
BUILDDIR = build
|
|
|
|
# Install directories
|
|
PREFIX ?= /usr/local
|
|
BINPREFIX = $(PREFIX)/bin
|
|
MANPREFIX = $(PREFIX)/share/man
|
|
BASHCPL = $(PREFIX)/share/bash-completion/completions
|
|
ZSHCPL = $(PREFIX)/share/zsh/site-functions
|
|
|
|
# Source files
|
|
SRC = jsh.c
|
|
OBJ = $(addprefix $(BUILDDIR)/,$(SRC:.c=.o))
|
|
|
|
# Dependencies and targets
|
|
all: CFLAGS += -Os
|
|
all: LDFLAGS += -s
|
|
all: $(BUILDDIR)/libjsh.so
|
|
|
|
debug: CFLAGS += -O0 -g -DDEBUG
|
|
debug: $(BUILDDIR)/libjsh.so
|
|
|
|
include Sourcedeps
|
|
|
|
$(BUILDDIR):
|
|
mkdir -p $(BUILDDIR)
|
|
|
|
$(OBJ): Makefile | $(BUILDDIR)
|
|
|
|
$(BUILDDIR)/jsh.o: CFLAGS += -fPIC
|
|
$(BUILDDIR)/%.o: %.c
|
|
$(CC) $(CFLAGS) $(OPTFLAGS) -c -o $@ $<
|
|
|
|
$(BUILDDIR)/libjsh.so: $(OBJ)
|
|
$(CC) -shared -o $@ $(OBJ)
|
|
|
|
$(BUILDDIR)/libjshtest: $(BUILDDIR)/libjshtest.o $(BUILDDIR)/libjsh.so
|
|
$(CC) $(CFLAGS) $(OPTFLAGS) -o $@ $(BUILDDIR)/libjshtest.o -L $(BUILDDIR) -ljsh -ljansson
|
|
|
|
test: $(BUILDDIR)/libjshtest
|
|
LD_LIBRARY_PATH=$(BUILDDIR) $(BUILDDIR)/libjshtest
|
|
|
|
install:
|
|
mkdir -p "$(DESTDIR)$(BINPREFIX)"
|
|
cp -p mtsd "$(DESTDIR)$(BINPREFIX)"
|
|
|
|
uninstall:
|
|
rm -f "$(DESTDIR)$(BINPREFIX)"/mtsd
|
|
|
|
clean:
|
|
rm -rf $(BUILDDIR) $(OBJ) mtsd
|
|
|
|
.PHONY: all debug test install uninstall clean |