You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
84 lines
2.2 KiB
# Makefile for bsdiskinfo project
|
|
# Target platform: FreeBSD bmake standard
|
|
|
|
SHLIB_MAJOR= 0
|
|
SHLIB_MINOR= 1
|
|
VERSION= $(SHLIB_MAJOR).$(SHLIB_MINOR)
|
|
|
|
LIB_NAME= libbsdiskinfo.so
|
|
LIB_SONAME= $(LIB_NAME).$(SHLIB_MAJOR)
|
|
LIB_SOLINK= $(LIB_NAME).$(VERSION)
|
|
CLI_NAME= bsdiskinfo-cli
|
|
|
|
CC?= cc
|
|
CFLAGS+= -O2 -Wall -fPIC -I./include
|
|
LDFLAGS+= -shared -lcam -Wl,-soname,$(LIB_NAME).$(SHLIB_MAJOR)
|
|
|
|
LIB_SRCS= src/libbsdiskinfo.c
|
|
CLI_SRCS= src/cli.c
|
|
|
|
TARGETS= $(LIB_SOLINK) $(LIB_NAME)
|
|
|
|
.ifndef WITHOUT_CLI
|
|
TARGETS+= $(CLI_NAME)
|
|
.endif
|
|
|
|
# Default execution entry point
|
|
all: $(TARGETS) modules_all
|
|
|
|
$(LIB_SOLINK): $(LIB_SRCS)
|
|
$(CC) $(CFLAGS) $(LIB_SRCS) $(LDFLAGS) -o $(LIB_SOLINK)
|
|
ln -sf $(LIB_SOLINK) $(LIB_SONAME)
|
|
|
|
$(LIB_NAME): $(LIB_SOLINK)
|
|
ln -sf $(LIB_SOLINK) $(LIB_NAME)
|
|
|
|
$(CLI_NAME): $(CLI_SRCS) $(LIB_SOLINK)
|
|
$(CC) $(CFLAGS) $(CLI_SRCS) -L. -lbsdiskinfo -lcam -Wl,-rpath,. -o $(CLI_NAME)
|
|
|
|
# Conditional compilation path for sub-modules
|
|
modules_all: $(LIB_SOLINK) $(LIB_NAME)
|
|
.ifndef WITHOUT_LUA
|
|
@if [ -d modules/lua ]; then \
|
|
cd modules/lua && $(MAKE) LUA_VER=$(LUA_VER); \
|
|
fi
|
|
.endif
|
|
.ifndef WITHOUT_PERL
|
|
@if [ -d modules/perl ]; then \
|
|
cd modules/perl && if [ ! -f Makefile ]; then perl Makefile.PL; fi && $(MAKE); \
|
|
fi
|
|
.endif
|
|
|
|
clean:
|
|
rm -f $(LIB_NAME) $(LIB_SONAME) $(LIB_SOLINK) $(CLI_NAME)
|
|
@if [ -d modules/lua ]; then \
|
|
cd modules/lua && $(MAKE) clean; \
|
|
fi
|
|
@if [ -d modules/perl ]; then \
|
|
cd modules/perl && if [ -f Makefile ]; then $(MAKE) realclean; fi && rm -f ppport.h Makefile.old; \
|
|
fi
|
|
|
|
install: $(LIB_SOLINK)
|
|
mkdir -p $(DESTDIR)/usr/local/lib
|
|
mkdir -p $(DESTDIR)/usr/local/include
|
|
install -m 755 $(LIB_SOLINK) $(DESTDIR)/usr/local/lib/
|
|
ln -sf $(LIB_SOLINK) $(DESTDIR)/usr/local/lib/$(LIB_NAME)
|
|
install -m 644 include/bsdiskinfo.h $(DESTDIR)/usr/local/include/
|
|
|
|
.ifndef WITHOUT_CLI
|
|
mkdir -p $(DESTDIR)/usr/local/sbin
|
|
install -m 755 $(CLI_NAME) $(DESTDIR)/usr/local/sbin/
|
|
.endif
|
|
.ifndef WITHOUT_LUA
|
|
@if [ -d modules/lua ]; then \
|
|
cd modules/lua && $(MAKE) install DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) LUA_VER=$(LUA_VER); \
|
|
fi
|
|
.endif
|
|
.ifndef WITHOUT_PERL
|
|
@if [ -d modules/perl ]; then \
|
|
cd modules/perl && $(MAKE) install DESTDIR=$(DESTDIR); \
|
|
fi
|
|
.endif
|
|
|
|
.PHONY: all clean install modules_all
|
|
|
|
|