1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#makeAll.sh
SHELL=/bin/sh
prefix=/usr/local
OS=$(shell uname || uname -s)
ARCH=$(shell arch || uname -m)
all: lib
ifndef DC
ifneq ($(strip $(shell which dmd 2>/dev/null)),)
DC=dmd
else ifneq ($(strip $(shell which ldc 2>/dev/null)),)
DC=ldc
else
DC=gdc
endif
endif
ifeq ("$(DC)","gdc")
DCFLAGS=-O2
LINKERFLAG=-Xlinker
UNITTESTFLAG=-funittest
DDOCFLAGS=-fdoc-file=$@
output=-o $@
else
DCFLAGS=-O
LINKERFLAG=-L
UNITTESTFLAG=-unittest
DDOCFLAGS=-o- -Df$@
output=-of$@
endif
ifeq ("$(OS)","Linux")
LDFLAGS+=$(LINKERFLAG)-ldl
endif
ifeq ("$(ARCH)", "x86_64")
DCFLAGS+=-m64
LDFLAGS+=-m64
endif
AR=ar
RANLIB=ranlib
QUANTUMDEPTH = $(lastword $(shell MagickCore-config --version))
MAGICKVERSION = $(subst .,,$(firstword $(shell MagickCore-config --version)))
ifneq ("$(QUANTUMDEPTH)","Q16")
DCFLAGS+= -version=$(subst Q,Quantum,$(QUANTUMDEPTH))
endif
ifneq ("$(MAGICKVERSION)","672")
DCFLAGS+= -version=MagickCore_$(MAGICKVERSION)
endif
#######################################################################
LIBNAME_DMAGICK = libDMagick.a
SOURCES_DMAGICK = $(sort $(wildcard dmagick/*.d)) \
$(sort $(wildcard dmagick/c/*.d))
OBJECTS_DMAGICK = $(patsubst %.d,%.o,$(SOURCES_DMAGICK))
DOCS_DMAGICK = $(patsubst dmagick/%.d,docs/%.html,$(SOURCES_DMAGICK))
#######################################################################
lib: $(LIBNAME_DMAGICK)
$(LIBNAME_DMAGICK): $(OBJECTS_DMAGICK)
$(AR) rcs $@ $^
$(RANLIB) $@
#######################################################################
%.o : %.d
$(DC) $(DCFLAGS) -c $< $(output)
#######################################################################
/tmp/stubmain.d:
$(shell echo "void main(){}" > /tmp/stubmain.d)
unittest: /tmp/stubmain.d $(SOURCES_DMAGICK)
$(DC) $(DCFLAGS) $(UNITTESTFLAG) $(LINKERFLAG)-lMagickCore $^ $(output)
./$@
#######################################################################
html: docs
docs: $(DOCS_DMAGICK)
#######################################################################
docs/%.html : dmagick/%.d
$(DC) $(DCFLAGS) $< $(DDOCFLAGS)
#######################################################################
install: lib
install -d $(DESTDIR)$(prefix)/include/d
(echo $(SOURCES_DMAGICK) | xargs tar c) | (cd $(DESTDIR)$(prefix)/include/d; tar xv)
install -d $(DESTDIR)$(prefix)/lib
install -m 644 $(LIBNAME_DMAGICK) $(DESTDIR)$(prefix)/lib
uninstall:
rm -rf $(DESTDIR)$(prefix)/include/d/dmagick
rm -f $(DESTDIR)$(prefix)/lib/$(LIBNAME_DMAGICK)
clean:
-rm -rf $(LIBNAME_DMAGICK) $(OBJECTS_DMAGICK) unittest.o unittest docs
|