|
|
@ -1,18 +1,23 @@ |
|
|
|
ROOT_DIR := $(shell dirname "$(realpath $(lastword $(MAKEFILE_LIST)))") |
|
|
|
BUILD ?= $(ROOT_DIR)/build |
|
|
|
|
|
|
|
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || true) |
|
|
|
|
|
|
|
CC ?= cc |
|
|
|
CFLAGS ?= -Wall -g -fPIC -std=c99 |
|
|
|
LIB := |
|
|
|
INC := -I. -I$(BUILD) -I$(BUILD)/include/pstat |
|
|
|
|
|
|
|
C_SRCS:= $(wildcard *.c) $(wildcard os/*.c) |
|
|
|
TOOL_C_SRCS := $(wildcard tools/*.c) |
|
|
|
|
|
|
|
HEADERS := $(wildcard *.h) $(wildcard os/*.h) |
|
|
|
|
|
|
|
OBJ := $(patsubst %.c,$(BUILD)/%.o,$(C_SRCS)) |
|
|
|
TOOL_OBJ := $(patsubst %.c,$(BUILD)/%.o,$(TOOL_C_SRCS)) |
|
|
|
|
|
|
|
DEFS := -D_THREAD_SAFE -D__STDC_FORMAT_MACROS |
|
|
|
|
|
|
|
VERSION := 0.2 |
|
|
|
|
|
|
|
VERSION_MAJOR := 1 |
|
|
|
VERSION_MINOR := 0 |
|
|
|
VERSION_PATCH := 2 |
|
|
@ -27,10 +32,13 @@ PREFIX ?= /usr/local |
|
|
|
DESTDIR ?= / |
|
|
|
INCLUDE_PREFIX ?= $(PREFIX) |
|
|
|
|
|
|
|
LIB := -L$(PREFIX)/lib/$(DEB_HOST_MULTIARCH) -lpstat |
|
|
|
INC := -I. -I$(BUILD) -I$(BUILD)/include/pstat |
|
|
|
|
|
|
|
BINDIR ?= $(DESTDIR)/$(PREFIX)/bin |
|
|
|
LIBDIR ?= $(DESTDIR)/$(PREFIX)/lib |
|
|
|
LIBDIR ?= $(DESTDIR)/$(PREFIX)/lib/$(DEB_HOST_MULTIARCH) |
|
|
|
INCLUDE_DIR ?= $(DESTDIR)/$(INCLUDE_PREFIX)/include/pstat |
|
|
|
PKGCONFIGDIR ?= $(DESTDIR)/$(PREFIX)/lib/pkgconfig |
|
|
|
PKGCONFIGDIR ?= $(DESTDIR)/$(PREFIX)/lib/$(DEB_HOST_MULTIARCH)/pkgconfig |
|
|
|
|
|
|
|
OS ?= LINUX |
|
|
|
|
|
|
@ -63,18 +71,14 @@ libs: $(BUILD_HEADERS) $(BUILD_PC_FILE) $(BUILD_LIBPSTAT) $(BUILD_LIBPSTAT_SO) $ |
|
|
|
$(BUILD_PC_FILE): libpstat.pc.in |
|
|
|
@mkdir -p "$(shell dirname "$@")" |
|
|
|
@cat $< | \
|
|
|
|
sed -e 's~@PREFIX@~$(PREFIX)~g;' | \
|
|
|
|
sed -e 's~@INCLUDEDIR@~$(INCLUDE_DIR)~g;' | \
|
|
|
|
sed -e 's~@VERSION@~$(VERSION)~g; ' | \
|
|
|
|
sed -e 's~@LIBS@~$(LIB)~g; ' | \
|
|
|
|
sed -e 's~@LIBDIR@~$(LIBDIR)~g; ' | \
|
|
|
|
sed -e 's~@VERSION_MAJOR@~$(VERSION_MAJOR)~g; ' | \
|
|
|
|
sed -e 's~@VERSION_MINOR@~$(VERSION_MINOR)~g; ' | \
|
|
|
|
sed -e 's~@VERSION_PATCH@~$(VERSION_PATCH)~g; ' > $@ |
|
|
|
sed -e 's~@prefix@~$(PREFIX)~g;' | \
|
|
|
|
sed -e 's~@includedir@~$(INCLUDE_DIR)~g;' | \
|
|
|
|
sed -e 's~@version@~$(VERSION)~g; ' | \
|
|
|
|
sed -e 's~@libdir@~$(LIBDIR)~g; ' > $@ |
|
|
|
|
|
|
|
$(BUILD_LIBPSTAT_LIB): $(OBJ) |
|
|
|
@mkdir -p "$(shell dirname "$@")" |
|
|
|
$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIBPSTAT_SO) -o "$@" $(OBJ) $(LIBINC) $(LIB) |
|
|
|
$(CC) $(CFLAGS) -shared -Wl,-soname,$(LIBPSTAT_SO) -o "$@" $(OBJ) $(LIBINC) |
|
|
|
|
|
|
|
$(BUILD_LIBPSTAT_SO): $(BUILD_LIBPSTAT_LIB) |
|
|
|
@mkdir -p "$(shell dirname "$@")" |
|
|
@ -86,7 +90,7 @@ $(BUILD_LIBPSTAT): $(BUILD_LIBPSTAT_SO) |
|
|
|
|
|
|
|
$(BUILD_PSTAT): $(TOOL_OBJ) $(BUILD_LIBPSTAT) |
|
|
|
@mkdir -p "$(shell dirname "$@")" |
|
|
|
$(CC) $(CFLAGS) -o "$@" $(TOOL_OBJ) $(LIBINC) -L$(BUILD)/$(LIBDIR) -lpstat |
|
|
|
$(CC) $(CFLAGS) -o "$@" $(TOOL_OBJ) $(LIBINC) -L$(BUILD)/$(LIBDIR) $(LIB) |
|
|
|
|
|
|
|
$(BUILD)/$(INCLUDE_DIR)/%.h: %.h |
|
|
|
@mkdir -p "$(shell dirname "$@")" |
|
|
@ -118,7 +122,7 @@ $(INSTALL_PSTAT): $(BUILD_PSTAT) |
|
|
|
cp -a "$<" "$@" |
|
|
|
|
|
|
|
|
|
|
|
libs-install: $(INSTALL_LIBPSTAT) $(INSTALL_LIBPSTAT_SO) $(INSTALL_LIBPSTAT_LIB) |
|
|
|
libs-install: $(INSTALL_LIBPSTAT) $(INSTALL_LIBPSTAT_SO) $(INSTALL_LIBPSTAT_LIB) $(INSTALL_PC_FILE) |
|
|
|
|
|
|
|
tools-install: $(INSTALL_PSTAT) |
|
|
|
|
|
|
|