Files
open-simh.simtools/extracters/vhd-util/Makefile
Timothe Litt b00e213506 Windows support for libvhd and vhd-util
Added windows support for libvhd and vhd-util.

Includes bug fixes as well.

See the README for details.
2016-03-25 12:37:44 -04:00

116 lines
2.7 KiB
Makefile

# -*- Makefile -*-
# Builds vhd-util and the libvhd shared library.
PREFIX = /usr/local
LIBDIR = $(PREFIX)/lib
BINDIR = $(PREFIX)/bin
CPPFLAGS = -D_GNU_SOURCE -I include -I $(LIBVHD)/include
CFLAGS = -O4
LDFLAGS = -L. -L $(LIBVHD)
LDLIBS = -lvhd-util -luuid -lvhd
LDCONFIG_D = /etc/ld.so.conf.d/vhd-util
LIBVHD = ../libvhd
SRCS = atomicio.c \
libvhd-journal.c \
vhd-util-check.c \
vhd-util-coalesce.c \
vhd-util-create.c \
vhd-util-fill.c \
lvm-util.c \
vhd-util-modify.c \
vhd-util-query.c \
vhd-util-read.c \
vhd-util-repair.c \
vhd-util-resize.c \
vhd-util-revert.c \
vhd-util-scan.c \
vhd-util-set-field.c \
vhd-util-snapshot.c
OBJS = $(SRCS:.c=.o)
LIBVHDSO = libvhd.so
LIBVHDSONAME = $(LIBVHDSO).2
LIBVHDSOFILE = $(LIBVHDSONAME).1.0
all: vhd-util $(LIBVHD)/$(LIBVHDSO)
# The utility
libvhd-util.a : $(OBJS)
$(AR) -rs libvhd-util.a $(OBJS)
vhd-util : vhd-util.o libvhd-util.a $(LIBVHD)/$(LIBVHDSO)
$(CC) $(LDFLAGS) -Wl,-rpath,$(LIBDIR) -o vhd-util vhd-util.o $(LDLIBS)
# The sharable library
$(LIBVHD)/$(LIBVHDSOFILE) : $(LIBVHD)/libvhd.c $(LIBVHD)/relative-path.c
$(CC) -shared -o $(LIBVHD)/$(LIBVHDSOFILE) -Wl,-soname,$(LIBVHDSONAME) $(CPPFLAGS) $(CFLAGS) -fPIC $(LIBVHD)/libvhd.c $(LIBVHD)/relative-path.c -luuid
# The symlinks in the local directory necessary for linking
$(LIBVHD)/$(LIBVHDSO) : $(LIBVHD)/$(LIBVHDSOFILE)
ldconfig -n $(LIBVHD)
ln -sf $(LIBVHD)/$(LIBVHDSOFILE) $(LIBVHD)/$(LIBVHDSO)
# Install (note that to run the utility before installation, you must set
# LD_LOAD_LIBRARY to $(VLDLIB)
install: all
cp -p $(LIBVHD)/$(LIBVHDSOFILE) $(LIBDIR)/
cp -p vhd-util $(BINDIR)/
echo "$(LIBDIR)" >$(LDCONFIG_D)
ldconfig
ln -sf $(LIBVHDSONAME) $(LIBDIR)/$(LIBVHDSO)
# Un-install
uninstall:
rm -f $(BINDIR)/vhd-util $(LIBDIR)/$(LIBVHDSOFILE) $(LIBDIR)/$(LIBVHDSONAME) $(LIBDIR)/$(LIBVHDSO)
ldconfig
rm -f $(LDCONFIG_D)
# Clean working area
clean: tidy
rm -f vhd-util vhd-util.exe $(LIBVHD)/$(LIBVHDSOFILE) $(LIBVHD)/$(LIBVHDSONAME) $(LIBVHD)/$(LIBVHDSO)
# Clean intermediate files only, leaving outputs
tidy:
rm -f $(OBJS) libvhd-util.a vhd-util.o
KITFILES = \
vhd-util/README \
vhd-util/INSTALL \
vhd-util/COPYING \
vhd-util/*.c \
vhd-util/include/*.h \
vhd-util/vhd-util \
vhd-util/vhd-util.exe \
vhd-util/Makefile \
vhd-util/vhd-util.vcxproj \
vhd-util/vhd-util.vcxproj.filters \
\
libvhd/*.c \
libvhd/libvhd.so* \
libvhd/libvhd.sln \
libvhd/libvhd.vcxproj \
libvhd/libvhd.vcxproj.filters \
libvhd/include/*.h \
KITEXES = \
vhd-util/vhd-util \
vhd-util/vhd-util.exe \
libvhd/libvhd.so*
kit: all
cd .. && chown -h $(USER).$(USER) $(KITFILES) && chmod -x $(KITFILES) && chmod +x $(KITEXES) && tar -czf vhd-tools.tgz $(KITFILES)