2525# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2626# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2727# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28- # OF THE POSSIBILITY OF SUCH DAMAGE
28+ # OF THE POSSIBILITY OF SUCH DAMAGE.
2929#
3030
31- MAJOR = @LIB_MAJOR@
32- MINOR = @LIB_MINOR@
31+ DESTDIR=/usr/local
3332
34- CFLAGS = -g -Iinclude \
33+ ifeq ($(CYGWIN), 1)
34+ CYGWIN_LIBXML = -L/bin -lxml2-2
35+ CYGWIN_CURL = -L/bin -lcurl-4
36+ POS_FLAG = -U__STRICT_ANSI__
37+ TEST_LDFLAGS = -L . lib@
[email protected] $(CYGWIN_CURL)
38+ else
39+ POS_FLAG = -fPIC
40+ TEST_LDFLAGS = -L . -l@LIB_NAME@
41+ endif
42+
43+ CFLAGS = -g -Iinclude \
3544 $(shell xml2-config --cflags) \
3645 $(shell curl-config --cflags) \
37- -W -Wall -Wmissing-prototypes -Werror -std=c99 -fPIC
46+ -W -Wall -Wmissing-prototypes -Werror -std=c99 $(POS_FLAG)
3847
3948LDFLAGS = -g $(shell xml2-config --libs) \
40- $(shell curl-config --libs) \
41- -Wl,-rpath,$(shell pwd)
49+ $(shell curl-config --libs) \
50+ -Wl,-rpath,$(shell pwd) $(CYGWIN_LIBXML )
4251
4352# -h for Solaris
4453SONAME_LDFLAG ?= -soname
45- # -R /usr/sfw/$(LIBDIR) -shared for Solaris
54+ # -R /usr/sfw/lib -shared for Solaris
4655SHLIB_CFLAGS ?= -shared
4756
4857# ginstall for Solaris
49- INSTALL = install
50- INSTALL_DIR = $(INSTALL) -d -m0755 -p
51- INSTALL_DATA = $(INSTALL) -m0644 -p
58+ INSTALL_DIR = install -d -m0755 -p
59+ INSTALL_DATA = install -m0644 -p
5260
53- LIBXENAPI_HDRS = $(wildcard include/*.h)
61+ LIBXENAPI_HDRS_INT = $(wildcard include/*.h)
62+ LIBXENAPI_HDRS = $(wildcard include/xen/api/*.h)
5463LIBXENAPI_OBJS = $(patsubst %.c, %.o, $(wildcard src/*.c))
5564
56- TEST_PROGRAMS = test/test_vm_ops test/test_event_handling \
57- test/test_failures test/test_vm_async_migrate \
58- test/test_enumerate test/test_get_records
65+ TEST_PROGRAMS = $(patsubst %.c, %, $(wildcard test/*.c))
5966
60- TARBALL_DEST = lib@LIB_NAME@-$(MAJOR).$(MINOR)
67+ TARBALL_DEST = lib@LIB_NAME@-@LIB_MAJOR@.@LIB_MINOR@
6168
6269.PHONY: all
6370all: $(TEST_PROGRAMS)
6471
65- 72+ 6673 ln -sf $< $@
6774
68- lib@
[email protected] .
$(MAJOR) : lib@
[email protected] .
$(MAJOR).$(MINOR) 75+ lib@
[email protected] .
@LIB_MAJOR@ : lib@
[email protected] .
@LIB_MAJOR@.@LIB_MINOR@ 6976 ln -sf $< $@
7077
71- lib@
[email protected] .
$(MAJOR).$(MINOR) : $(LIBXENAPI_OBJS)
72- $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,lib@
[email protected] .
$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^
78+ lib@
[email protected] .
@LIB_MAJOR@.@LIB_MINOR@ : $(LIBXENAPI_OBJS)
79+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,lib@
[email protected] .
@LIB_MAJOR@ $(SHLIB_CFLAGS) -o $@ $^
7380
7481lib@
[email protected] : $(LIBXENAPI_OBJS)
7582 $(AR) rcs lib@
[email protected] $^
7683
7784$(TEST_PROGRAMS): test/%: test/%.o lib@
[email protected] 78- $(CC) -o $@ $< -L . -l@LIB_NAME@ $(LDFLAGS)
85+ $(CC) -o $@ $< $(TEST_LDFLAGS) $(LDFLAGS)
7986
8087
8188.PHONY: install
82- install: all
83- $(INSTALL_DIR) $(DESTDIR)/usr/include/xen/api
84- $(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR)
85- $(INSTALL_PROG) lib@
[email protected] .$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)
86- ln -sf lib@
[email protected] .$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/lib@
[email protected] .$(MAJOR)
87- ln -sf lib@
[email protected] .$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/lib@
[email protected] 88- $(INSTALL_DATA) lib@
[email protected] $(DESTDIR)/usr/$(LIBDIR)
89+ install: all lib@
[email protected] 90+ $(INSTALL_DIR) $(DESTDIR)/include/xen/api
91+ $(INSTALL_DIR) $(DESTDIR)/lib
92+ $(INSTALL_DATA) lib@
[email protected] .@LIB_MAJOR@.@LIB_MINOR@ $(DESTDIR)/lib
93+ ln -sf lib@
[email protected] .@LIB_MAJOR@.@LIB_MINOR@ $(DESTDIR)/lib/lib@
[email protected] .@LIB_MAJOR@
94+ ln -sf lib@
[email protected] .@LIB_MAJOR@ $(DESTDIR)/lib/lib@
[email protected] 95+ $(INSTALL_DATA) lib@
[email protected] $(DESTDIR)/lib
96+ for i in $(LIBXENAPI_HDRS_INT); do \
97+ $(INSTALL_DATA) $$i $(DESTDIR)/include/; \
98+ done
8999 for i in $(LIBXENAPI_HDRS); do \
90- $(INSTALL_DATA) $$i $(DESTDIR)/usr/ include/xen/api; \
100+ $(INSTALL_DATA) $$i $(DESTDIR)/include/xen/api; \
91101 done
92102
93103
@@ -112,10 +122,13 @@ $(TARBALL_DEST).tar.bz2: all
112122
113123
114124.PHONY: clean
115- clean:
125+ clean: cleantests
116126 rm -f `find -name *.o`
117127118128129+
130+ .PHONY: cleantests
131+ cleantests:
119132 rm -f $(TEST_PROGRAMS)
120133
121134
0 commit comments