This repository has been archived on 2015-04-30. You can view files and clone it, but cannot push or open issues or pull requests.
stream/c/Makefile
2015-04-30 17:08:08 +00:00

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